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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


用java简单的逻辑,以及随机数 和 输入类做的以前用诺基亚玩的几A几B小游戏
[Java] 纯文本查看 复制代码
import java.util.Random;
import java.util.Scanner;
public class NumGame {
        public static void main(String[] args){
                System.out.println("游戏说明:A代表数字完全正确B代表数字正确但位置不对!");
                System.out.println("例如:答案为1365。你输入1759 判断显示为1A1B 你输入数中1和5都有,1的位置与答案中1的位置正确记做1A,5答案中也有但位置不对记做1B");
                System.out.println("4A则完全正确!!");
                int[] arr=new int[4];
                do{
                        arr=arrNum();
                }while(!quChong(arr));
                int num=0;
                int count=0;
                do{
                        if(count>=10){
                                System.out.println("GameOver");
                                System.out.println("请重新开始");
                                return;
                        }
                        num=a4(num(),arr);
                        count++;
                        
                }while(num!=4);
                if(count<=2){
                        System.out.println("你超神了!!!赶紧去买彩票!!");
                }else if(count<=5){
                                System.out.println("厉害了!word哥!");
                }else{
                        System.out.println("能做出来也是棒棒哒!!!");
                }
        }
        //对比,输出结果
        public static int a4(int num,int[] arr){
                int q=num/1000;
                int b=num/100%10;
                int s=num/10%10;
                int g=num%10;
                int countA=0;
                int countB=0;
                for(int x=0;x<arr.length;x++){
                        if(arr[x]==q){
                                if(x==0){
                                        countA++;
                                }else{
                                        countB++;
                                }
                        }else if(arr[x]==b){
                                if(x==1){
                                        countA++;
                                }else{
                                        countB++;
                                }
                        }else if(arr[x]==s){
                                if(x==2){
                                        countA++;
                                }else{
                                        countB++;
                                }
                        }else if(arr[x]==g){
                                if(x==3){
                                        countA++;
                                }else{
                                        countB++;
                                }
                        }
                }
                System.out.println(countA+"A"+countB+"B");
                return countA;
        }
        //录入4个数字
        public static int num(){
                System.out.println("请输入1个4位数的整数!");
                Scanner sc = new Scanner(System.in);
                int num = sc.nextInt();
                return num;
        }
        //去重
        public static boolean quChong(int[] arr){
                for(int x=0;x<arr.length;x++){
                        for(int y=1;y<arr.length;y++){
                                if(arr[x]==arr[y]&&x!=y){
                                        return false;
                                }
                        }
                }
                return true;
        }
        //随机生成4个数字
        public static int[] arrNum(){
                Random rd = new Random();
                int[] arr=new int[4];
                for(int x=0;x<arr.length;x++){
                        arr[x]=rd.nextInt(10);
                }        
                return arr;
        }
}


做了很久了没时间发,也没时间精简代码.......就这样啦....嘿嘿嘿




点评

11111111111111111111111  发表于 2017-3-26 00:33

评分

参与人数 1黑马币 +5 收起 理由
橘子哥 + 5

查看全部评分

4 个回复

倒序浏览
LIHAI厉害
回复 使用道具 举报
看上去不错,比猜1-100的随机数要难多了
回复 使用道具 举报
111111111111111111111111
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马