猜字符游戏之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 ...
随机推荐
- BZOJ2038: [2009国家集训队]小Z的袜子(hose)
Time Limit: 20 Sec Memory Limit: 259 MB Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天, ...
- JQuery 概况
- linux开机随笔
(1),linux开机流程: 固件是在软件与硬件之间的那部分,他们既不叫做硬件也不叫做软件, 开机自检 ,就是 在你按下开机键时,电脑就会自动检查你的硬盘 内存 cpu等器件, 那个CMOS是固 ...
- 设置Headers
import urllib import urllib2 url = 'http://www.server.com/login'user_agent = 'Mozilla/4.0 (compatibl ...
- scala数组
#scala数组 val A= new Array[T](N) val A = new Array[Int](10) ##变长数组 import scala.collection.mutable.Ar ...
- 初学c# -- 学习笔记(五) winfrom无边框四周阴影
刚用到这个功能,网上扯淡的东西太多了,都是2边阴影,还什么窗口叠加.ps作图啥的,什么玩意.还是老外实在,google找的,无边框窗体,四边透明阴影. public partial class For ...
- myeclipse中如何导入mysql-connector-java-5.1.8-bin.jar【环境配置和工具使用】
前提:我建立了一个java project,工程名字为Test,现在需要连接mysql数据库,所以提前从网上将java操作mysql数据库的mysql-connector-java-5.1.8-bin ...
- Eclipse安装部署(配图解)
Eclipse安装部署 前提:已经成功搭建配置JDK 下载 eclipse, 下载地址: http://www.eclipse.org/downloads/ 解压缩安装包(注意安装路径中不可以有空格) ...
- ZT 北大青鸟APTECH(南京泰思特)
北大青鸟APTECH(南京泰思特)授权培训中心诚招 高级软件测试/开发培训讲师 Posted on 2008-01-14 11:38 追求卓越 阅读(590) 评论(7) 编辑 收藏 北京阿博泰克北大 ...
- MySQL binlog基本操作
常用操作: 1. 设置启用binlog log-bin = binlog 2. 设置全备和增量备份 #crontab -e * 0 * * 7 /usr/bin/mysqldump mybinlog ...