黑马程序员技术交流社区
标题:
一个小程序 《猜数字》
[打印本页]
作者:
Troy123
时间:
2014-8-24 14:13
标题:
一个小程序 《猜数字》
问:2014年年初,有一个网游叫《浩天奇缘》,里面有个活动叫秀智商活动,其实就是一个猜数字游戏 ;
游戏规则:系统随机取一个四位数,每个数字各不相同,然后你猜,没猜一次,系统给一次提示,如 系统取得数字是1234,而你猜的是2354,系统提示:1A2B,A表示位置也对数字也对的个数(数字4),B表示数字对了位置没对的个数(2和3),直到猜对了位置
然后通过Java程序实现,从控制台输入,然后系统给出提示,直到猜对了程序结束,并且要考虑各种输入不合法的情况
import java.util.Scanner;
public class GuessNumber {
/**
* ---猜数字游戏---!
* 游戏规则:系统随机取一个4位数(4个数字各不相同),然后从控制台输入数字进行猜测,每猜一次,系统会给一个提示
* 如系统取得数字式1234,而你猜的是1437,系统会提示2A1B,2A表示有两个数数字猜对了位置也对(1和3),1B表示
* 数字对了但位置没对(4)......
*/
static int flag=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String guess = null;
guess = sc.nextLine();
String str = "1234";
while(flag<2){
guessNumber(str,guess);
if(flag<2){
guess =sc.nextLine();
}
}
}
private static void guessNumber(String str, String guess) {
// TODO Auto-generated method stub
int counta = 0;
int countb = 0;
char[] x = str.toCharArray();
char[] y = guess.toCharArray();
for(int i=0;i<x.length;i++){
if(x[i]==y[i]){
counta = ++counta;
}
for(int z=0;z<x.length;z++){
if(x[i]==y[z] && i!=z){
countb = ++countb;
}
}
}
if(counta==4){
System.out.println("猜对了");
flag=2;
}
System.out.println(counta+"A"+countb+"B");
}
}
复制代码
上面是自己些的 但是 我不知道怎么考虑各种输入不合法的情况 应该如何弄。。
作者:
a6511631
时间:
2014-8-24 20:22
使用try、catch,catch中抛出异常,提示信息写:输入非法
作者:
paul.li
时间:
2014-8-24 20:51
这个很吊的样子
作者:
—Jimmy—
时间:
2014-8-24 20:56
判断一下啊,不是合法数字,要求重新输入就好了
作者:
轩辕苍穹
时间:
2014-8-24 21:44
现在看代码就眼乱
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2