猜字符游戏之java
package days06;
//需求。。。。。。,问题,为什么要用do{}while???
import java.util.Scanner;
public class RepeatOfGussingGame {
public static void main(String[] args) {
/*在main()函数中,需要制造一个死循环,目的是:假如用户猜错了重新猜,猜对了跳出(break),错了反复猜
*注意: 因为用户输入的是字符串,我们在check方法中比较的是数组,需要将字符串转为字符数组
*加入等级,实则增加难度,字母越多难度越大,直接将随机生成的字母加入变化的int参数值,在做相应的判断和变换即可
*/
Scanner scan = new Scanner(System.in);
int count = 0;
//char[] chs = genran(); //接收,调用
//调试输出
System.out.println("游戏开始!");
// 表示游戏等级,默认为5
int level = 5;
do {
System.out.println("GuessingGame>请输入游戏级别(5、7、9)?");
level = scan.nextInt();
} while (level != 5 && level != 7 && level != 9);
// 表示猜测的字符串
char[] chs = genran(level);
System.out.println(chs);
while(true){ //自造死循环,错了一直猜,对了就跳出循环,
System.out.println("猜吧!");
String str = scan.next(); //接收输入的字符串
char[] input =str.toCharArray();//转换为字符数组,下一步调用比较方法接收结果
int[] result = check(chs,input);
if(result[1]==chs.length){ //假如位置对了
int score = result[0]*100-count*10;
System.out.println("恭喜你,猜对了!得分:"+score);
break;
}else{
System.out.println("位置对了"+result[1]+"个,字符对了"+result[0]+"个!");
count++;
}
}
}
//随机输入
public static char[] genran(int level){
char[] chs = new char[level];
char[] letters = {'A','B','C','D','E','F','G','H',
'I','J','K','L','M','N',
'O','P','Q','R','S','T',
'U','V','W','X','Y','Z'};
boolean[] flags = new boolean[letters.length];//默认false,开关标志
for(int i=0;i<chs.length;i++){
int index;
do{
index = (int)(Math.random()*letters.length);
}while(flags[index]==true);
chs[i]= letters[index];
flags[index] = true;
}
return chs;
}
//对比
public static int[] check(char[] chs,char[] input){
int[] result = new int[2];//result[1]位置,result[0]字符对
for(int i=0;i<chs.length;i++){ //两层循环
for(int j=0;j<input.length;j++){
if(chs[i]==input[j]){ //比较字符对不对
result[0]++;
if(i==j){ //位置
result[1]++;
break;
}
}
}
}
return result;
}
}
猜字符游戏之java的更多相关文章
- day06-java-(方法,猜字符小游戏)
day05-java-(方法,猜字符小游戏) 1.方法: 1)用于封装一段特定的逻辑功能 2)方法应尽可能的独立,只干一件事 3)方法可以被反复的调用多次 4)避免代码重复,有利于代码的维护, ...
- java转换 HTML字符实体,java特殊字符转义字符串
为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希 ...
- 猜字母游戏(Java)
我的代码: package day20181025; import java.util.Arrays; import java.util.Scanner; /** * 猜字母 * @author Ad ...
- 最新 乐游网络java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.乐游网络等10家互联网公司的校招Offer,因为某些自身原因最终选择了乐游网络.6.7月主要是做系统复习.项目复盘.Leet ...
- 【字符编码】Java字符编码详细解答及问题探讨
一.前言 继上一篇写完字节编码内容后,现在分析在Java中各字符编码的问题,并且由这个问题,也引出了一个更有意思的问题,笔者也还没有找到这个问题的答案.也希望各位园友指点指点. 二.Java字符编码 ...
- 【字符编码】Java编码格式探秘
一.前言 在分析Comparable和Comparator的时候,分析到了String类的compareTo方法,String底层是用char[]数组来存放元素,在比较的时候是比较的两个字符串的字符, ...
- 牛客网程序员面试金典:1.1确定字符互异(java实现)
问题描述: 请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同, ...
- 【java】io流之字节流转为字符流:java.io.OutputStreamWriter和java.io.InputStreamReader
package 文件操作; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impo ...
- 【java】io流之字符输出流:java.io.Writer类及子类的子类java.io.FileWriter
package 文件操作; import java.io.File; import java.io.FileWriter; import java.io.IOException; import jav ...
随机推荐
- ASP.NET之Cookie(坑爹的Response.Cookies.Remove)(转)
在web开发中Cookie是必不可少的 .NET自然也有一个强大的Cookie操作类,我们用起来也非常方便,不过在使用中我们会发现一个坑爹的事情Response.Cookies.Remove删除不 ...
- navDemo
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 循序渐进Python3(十二) --2-- web框架之django简单实现oracle数据库操作
在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接. 产能在软 ...
- -moz-transform: rotate(-5deg);
目前越来越多的浏览器兼容CSS3标准了,就连IE浏览器老大哥也开始向CSS3低头,微软宣布IE9浏览器支持更多的CSS3属性,IE9更注重 HTML5标准.不过CSS3里有一个使对象旋转的属性tran ...
- LeetCode 214 Shortest Palindrome
214-Shortest Palindrome Given a string S, you are allowed to convert it to a palindrome by adding ch ...
- Qt之QMutex
概述 QMutex 类使得线程之间可序列化,文档中的描述为provides access serialization between threads 它被设计的初衷是用来保护一个对象.数据结构.代码段 ...
- 我的新博客:www.wangyufeng.org
新博客:www.wangyufeng.org 博客园的博客不更新啦.
- SpringMVC接收页面表单参数
一个普通的表单. 表单的代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8&q ...
- call
-------siwuxie095 call 调用另一个批处理程序或自身程序段,调用完,程序会回到原来 call 的地方继续执行 如果在脚本或批处理文件外使用 call,则不会在命令行起作用 语法 c ...
- 关于一个程序的编译过程 zkjg面试
http://blog.csdn.net/gengyichao/article/details/6544266 一 以下是C程序一般的编译过程: 从图中看到: 将编写的一个c程序(源代码 )转换成可以 ...