猜字符游戏之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 ...
随机推荐
- IUnknown(TVarData(Params[0]).VPointer) as Range
IUnknown(TVarData(Params[0]).VPointer) as Range 修改为 IUnknown(TVarData(Params[0]).VPointer) as WOrd_ ...
- iOS 类的判断方法
-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例 -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例 -( ...
- VC++ 截屏代码,并保存为想要的格式(BMP,JPG,PNG,GIF等格式)
void CCaptionScreenDlg::Screen(char* filename) { HDC hdcSrc = ::GetDC(NULL); int nBitPerPixel = GetD ...
- Mybatis之关联查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- C# WebBrowser 网页缩放的方法
1.引用COM:MicroSoft Internet Controls 2. 核心代码如下: private void button2_Click(object sender, EventArgs e ...
- Android笔记:DrawerLayout抽屉布局的使用
DrawerLayout(抽屉布局),在各种app中经常出现,比如csdn.. 如下示,只要从屏幕侧边滑一下,或者点击左上角的图标,抽屉就会出来. DrawerLayout要点: 1.使用Drawer ...
- sql server数据库区分大小写
来源http://blog.sina.com.cn/s/blog_457d6e63010108tv.html 未测试过 SQL SERVER 2000/2005中默认不区分大小写,可以通过collat ...
- JS中变量名作为if条件的 true/flase
在Javascript中,可以直接将变量名放到if条件中, var a;//甚至不定义 if (a){ //... } 以下情况被认为是flase: 1.''空的字符串 2.数字0 3.对象null ...
- oc 单例
单例模式: //static id _instace; // //+ (id)allocWithZone:(struct _NSZone *)zone //{ // static dispatch_o ...
- JavaScript基础认知
此文只适用于初学者,大神们就不要看了,嘿嘿~ 一.定义变量 关键字 var,由此关键字定义变量,例如:var a =21:就把21这个数定义给了变量a 二.基本数据类型 1.Number类型 表示数字 ...