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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题:刚学到面向对象,有个猜数字小游戏,改进了一下
一、每次游戏结束询问是否开始下一次
import java.util.Scanner;
class GuessMathGame {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);       
                int start = 1;                        //游戏开始的标记,1为开始,非1为结束
                int count = 0;                        //猜数字的次数
                for(int i=1; i==start; ) {
                        int key = (int)(Math.random()*1000)+1;                //先确定要猜的随机数字
                        System.out.println(key);
                        System.out.println("请输入你猜的数字0--1000:");
                        while(true) {
                                if(count>=15) {
                                        count = 0;
                                        break ;
                                }
                                int guess = sc.nextInt();                //输入你猜的数字
                                if(guess<key) {       
                                        count++;                //每输入一次,不管对错,都计数一次       
                                        System.out.println("你猜的数字小了,再猜!");
                                }else if(guess>key) {
                                        count++;
                                        System.out.println("你猜的数字大了,再猜!");
                                }else {
                                        count++;       
                                        if(count<=5) {
                                        System.out.println("你用了 "+count+" 次就猜对了!太厉害了!");
                                        }else {
                                        System.out.println("你用了 "+count+" 次才猜对!加油啊!");
                                        }
                                        count = 0;          //猜对之后,计数器清零
                                        start = 0;                  //标记重置为零
                                        break;
                                }
                        }
                        System.out.println("本次游戏结束!再来一次!");
                        System.out.println("重来请按‘1’,离开请按任意数字");
                        start = sc.nextInt();                //重新输入标记,决定是否再来一次
                }
        }
}



二、开始3条命,少于6步奖一条,多于9步罚一条
import java.util.Scanner;
class GuessMathGame2 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);       
                int life = 3;                        //生命数,可以玩的次数,等于0时结束
                int count = 0;                        //猜数字的次数
                f:for(int i=0; i<life; ) {
                        int key = (int)(Math.random()*1000)+1;                //先确定要猜的随机数字
                        System.out.println("key="+key);               
                        w:while(true) {
                                if(count>=9) {
                                        life--;               
                                        System.out.println("Loser!! 惩罚 life -1");
                                        System.out.println("life = "+life);
                                        count = 0;                         //count清零
                                        continue f;
                                }
                                int guess = sc.nextInt();                //输入你猜的数字
                                if(guess<key) {       
                                        count++;               
                                        System.out.println("你猜的数字小了,再猜!");
                                }else if(guess>key) {
                                        count++;
                                        System.out.println("你猜的数字大了,再猜!");
                                }else {
                                        count++;                //每输入一次,不管对错,都计数一次
                                        if(count<=5) {
                                                System.out.println("你用了 "+count+" 次就猜对了!太厉害了!奖励 life +1");
                                                life++;       
                                                System.out.println("life = "+life);
                                                }else {
                                                System.out.println("你用了 "+count+" 次才猜对!太low了!不奖不罚。life = "+life);                                               
                                        }
                                        count = 0;                //猜对之后,计数器清零
                                        System.out.println("再来一次,加油!");
                                        continue f;
                                }
                        }
                }
                System.out.println("GAME OVER! 重来请投币!");
        }
}

4 个回复

倒序浏览
刚开始学,请高手看一下,哪里不规范,哪里需要改进
回复 使用道具 举报
未进黑马的问下,晚上要干到几点
回复 使用道具 举报
我也刚到黑马,来学Java的,晚上到九点半吧
回复 使用道具 举报
棒棒棒啊66666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马