欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

构建自己的应用: JAVA编程思想导论(猜字谜游戏1.0)- 系列三

最编程 2024-08-14 17:19:24
...

3.1 需求:

构建一个简单猜字谜游戏1.0。要求:

  • 猜数字范围在1~100的整数。
  • 每个用户都有十次机会。

3.面向对象如何把握

如图3.2所示,由于JAVA的编程思想是面向对象。换句话说,也就是抽象是问题本身,所以决定了我们的方向——面向需求。

而在这其中我们从3.1中可以提取到几点关键需求。我们首先需要为玩家提供一个交互平台(input-outputI/O),让用户可以在控制上输入数字,以及游戏的反馈信息。接下来,我们需要模拟随机数生成器,用来产生我们需要的随机数数值。

现在假设我们已经可以得到1~100之间的随机数,那么下面就需要实现游戏规则。我们需要诸如whileif的条件语句用以描述规则。

规则:用户每个人有十次机会猜测一个1~100之间的随机整数。

最后,我们还需要一个计数器用来统计用户的操作次数。对了,还有最重要的一件事,用户的输入是否符合规则。

为此,我们就可以抽象出四个部分:

1、 一个可以读写控制台的接口。

2、 一个生成1~100之间随机数的生成器。

3、 一个比较用户输入数据是否正确且与生成器生成数字相等的比较器。

4、 一个循环计数器。

在对象定义出来以后,我们需要定义一下数据结构即在程序中定义数据的类型和存储方式。因为在这个程序中我们需要的是整数变量,所以我们都定义成int类型:

  • int 类型变量 num :用于记录用户猜测数字的总次数。
  • int 类型数据 temp :用于存储数字生成器生成的数字。
  • int 数据类型 input :用于储存用户输入数据。

末了,我们开始定义功能模块即生成器模块(generate())、I/O交互模块(Scanner())和判断比较循环模块。

 

3.2 程序思维流程

3.3 算法流程

3.4 具体实现代码

package NumGame;
import java.util.Scanner;
 
public class NumGame {
 
    /**
     * 一个简易的猜数字游戏
     * @param num 表示用户猜测次数。
     * @param temp 存储生成器生成的随机数
     * @param input 用户输入数字
     */
    public static void main(String[] args) {
         
        int num = 0;
        Scanner s = new Scanner(System.in);
        int temp = generate();
        System.out.println("欢迎来参加猜数字游戏!");
         
        //游戏比较循环功能主体结构
        while (num<=10){
             
            //判断用户剩余次数。
             if(num == 10){
                    System.out.println("您已经超过了10次机会!请重新来过。");
                    break;
                }
              
             //接收输入并判断输入是否符合规则
            System.out.println("你还有"+(10-num)+"次!请输入你的数字(1~100):");
            int input = s.nextInt();
            if (input<1||input>100){
                System.out.println("请重新开始!输入正确的数字(1~100)!");
                break;
            }
             
            //比较用户输入数字与生成的随机数
            else if(input > temp){
                System.out.println("您输入的数字大了!");   
                num=num+1;
            }
            else if(input < temp){              
                System.out.println("您输入的数字小了!");
                num=num+1;
            }
            else if(input == temp){
                System.out.println("您赢了!谢谢参与~~");
                break;
            }
        }
        s.close();
}
    /**
     * 生成(1~100)之间的随机数
     * @param return 存储随机数字
     */
 
    private static int generate() {
        int temp = (int)(Math.random()*100+1);
        return temp;
    }
}



 

推荐阅读