Java猜数字游戏控制台版GuessNumberConsole

猜数字游戏控制台版(GuessNumberConsole)

案例简介

猜数字游戏:让玩家在给定次数内猜测指定范围内的数字,若猜测的数字与游戏随机生成的数字相等,玩家获胜,询问玩家是否再玩一次。若再玩一次,重复以上过程,若不玩,游戏结束。若未猜中,游戏提示玩家猜测数字与游戏随机生成数字之间的大小关系,玩家继续猜测,直到猜中或猜测机会用完为止。控制台版的游戏只可在Windows系统的命令行、Linux系统的Terminal、Mac系统的控制台运行。

案例使用建议

  1. 讲解:通过讲解演示此案例的实现过程教授学生综合应用JAVA程序设计基础知识和技能。此使用方式需要教师将实现步骤与逻辑梳理清楚,并且能在讲解过程中突出涉及到的知识点与技能点,最好在讲解的最后对涉及的知识点与技能点进行总结归纳。建议采用此方式的过程中尽量多提案例相关知识点相关的问题,以便学生可以参与课堂,帮助学生回想相关知识点与技能点。
  2. 分析:通过讲解演示如何分析设计此案例的实现方案帮助学生学习如何设计程序。此使用方式需要教师提前梳理清楚开发人员分析设计程序的过程并将其设计为授课过程,在讲解过程中应循循善诱、多提问,引导学生自己思考设计出程序的实现方案。
  3. 填补:通过删除部分代码让学生补全的方式考察学生对JAVA程序设计基础知识与技能的掌握情况,同时给予学生练习JAVA程序设计基础知识与技能的机会。如果删除很少的代码,题型可以是程序阅读填空题。如果删除的代码为逻辑完整的整块代码,则可以考察学生对代码整体的理解和锻炼学生自主设计微型程序的能力。教师还可以通过添加注释的方式帮助学生完成任务。如:删除案例中do-while循环中的所有代码并添加注释说明后让学生完成。
  4. 扩展:通过布置扩展任务为学生提供练习JAVA程序设计基础知识与技能的机会。如:添加代码使得游戏可以识别出玩家输入的异常值并提示玩家输入有效的数字。

涉及知识点与技能点

  • 包的导入;
  • Scanner的使用:实例化、从标准输入读取内容、关闭;
  • 变量声明与赋值;
  • 字符串使用:声明、初始化、拼接、相等比较;
  • 基本数据类型使用;
  • 随机数生成;
  • 基本运算符的使用;
  • 表达式的使用;
  • if条件语句;
  • do-while循环;
  • while循环;
  • 标准输出使用;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String playAgain = "";
        do{
            int theNumber = (int)(Math.random() * 100 + 1);
            int guess = 0;
            int numberOfGames = 7;
            while(guess != theNumber){
                System.out.println("还有"+numberOfGames+"次机会,请猜一个1-100之间的整数:");
                guess = scan.nextInt();
                if(guess < theNumber){
                    System.out.print(guess + "小了! ");
                }else if(guess > theNumber){
                    System.out.print(guess + "大了!");
                }else{
                    System.out.print(guess + "就是那个数字!你猜对啦!");
                    break;
                }
                
                numberOfGames--;
                
                if(numberOfGames==0){
                    System.out.print("没机会啦,是否:");
                    break;
                }
            }
            System.out.println("再玩一次(y/n)?");
            playAgain = scan.next();
        }while(playAgain.equalsIgnoreCase("y"));
        scan.close();
    }
}
上一篇:day1-2 python


下一篇:第六章第二十二题(数学:平方根的近似求法)(Math: approximate the square root) - 编程练习题答案