A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Troy123 中级黑马   /  2014-8-24 14:13  /  1414 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问:2014年年初,有一个网游叫《浩天奇缘》,里面有个活动叫秀智商活动,其实就是一个猜数字游戏 ;
游戏规则:系统随机取一个四位数,每个数字各不相同,然后你猜,没猜一次,系统给一次提示,如 系统取得数字是1234,而你猜的是2354,系统提示:1A2B,A表示位置也对数字也对的个数(数字4),B表示数字对了位置没对的个数(2和3),直到猜对了位置
然后通过Java程序实现,从控制台输入,然后系统给出提示,直到猜对了程序结束,并且要考虑各种输入不合法的情况
  1. import java.util.Scanner;

  2. public class GuessNumber {

  3.         /**
  4.          *  ---猜数字游戏---!
  5.          * 游戏规则:系统随机取一个4位数(4个数字各不相同),然后从控制台输入数字进行猜测,每猜一次,系统会给一个提示
  6.          * 如系统取得数字式1234,而你猜的是1437,系统会提示2A1B,2A表示有两个数数字猜对了位置也对(1和3),1B表示
  7.          * 数字对了但位置没对(4)......
  8.          */
  9.         static int flag=0;
  10.         public static void main(String[] args) {
  11.                 // TODO Auto-generated method stub
  12.                
  13.                 Scanner sc = new Scanner(System.in);
  14.                 String guess = null;
  15.                 guess = sc.nextLine();

  16.                 String str = "1234";
  17.                 while(flag<2){
  18.                         guessNumber(str,guess);
  19.                         if(flag<2){
  20.                                 guess =sc.nextLine();
  21.                         }
  22.                 }
  23.         }


  24.         private static void guessNumber(String str, String guess) {
  25.                 // TODO Auto-generated method stub
  26.                 int counta = 0;
  27.                 int countb = 0;
  28.                 char[] x = str.toCharArray();
  29.                 char[] y = guess.toCharArray();
  30.                 for(int i=0;i<x.length;i++){
  31.                         if(x[i]==y[i]){
  32.                                 counta = ++counta;
  33.                         }       
  34.                         for(int z=0;z<x.length;z++){
  35.                                 if(x[i]==y[z] && i!=z){
  36.                                         countb = ++countb;
  37.                                 }
  38.                         }
  39.                 }
  40.                 if(counta==4){
  41.                         System.out.println("猜对了");
  42.                         flag=2;
  43.                 }
  44.                 System.out.println(counta+"A"+countb+"B");
  45.         }

  46. }
复制代码

上面是自己些的  但是 我不知道怎么考虑各种输入不合法的情况  应该如何弄。。

4 个回复

正序浏览
现在看代码就眼乱
回复 使用道具 举报
判断一下啊,不是合法数字,要求重新输入就好了
回复 使用道具 举报
这个很吊的样子
回复 使用道具 举报
使用try、catch,catch中抛出异常,提示信息写:输入非法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马