问: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");
- }
- }
复制代码
上面是自己些的 但是 我不知道怎么考虑各种输入不合法的情况 应该如何弄。。 |
|