猜数字游戏Java

目录

前言

实现思路

代码展示


前言

猜数字游戏是一款简单实现又十分有趣的游戏。它允许我们在无聊的时候,和众多程序猿们智慧的结晶Random标准库斗法。该游戏具备了游戏的一些基本特征,比如抽奖,最基本的人机交互,和一些基础的游戏判断。掌握该小游戏的制作原理对未来编写更有难度的游戏会有所裨益。

该游戏规则如下:玩家有三次猜数字的机会,看看自己写的数和随机库抽出的数是否相等,如果相等,则进入抽奖环节;如果三次机会用完后还没有猜中,则退出游戏;如果在游戏进行时想退出游戏,在控制台中输入0即可。补充一下,随机库抽出的数将会被控制在一个范围内,而该程序也会在控制台中打印出相应提示,也可以自行修改。


实现思路

这个游戏分为三部分。第一部分主要是初始化一些后面要用到的变量,第二部分是游戏主体,第三部分是赢家的抽奖环节。在第一部分中,由于我们是以人机交互的形式进行游戏,我们需要一个变量来接受玩家输入,在这里我们使用变量choice来接收,以及变量input去初始化Scanner类;我们需要计数cnt;我们需要用到isCorrect这个类型为布尔的变量,因为我们在第三部分的时候判断玩家是否猜中数字;我们还需要数组gift来储存奖品;最后我们需要一个随机变量randint来接收random库抽出的随机数。

第二部分的代码主体是while循环内的代码,他其实就是一个if...else条件判断。在cnt<2且!=0的情况下(之前提到过,输入为0代表退出游戏),如果玩家输入等于randint,则说明玩家猜中了,于是让isCorrect=true,然后退出循环;反之,若没有猜中,则继续猜,直到玩家猜中,输入0,或者用完三次猜测的机会——这三条每一条最后都会退出循环。

退出循环后到达第三部分。这里用到了判断语句——如果isCorrect==true,说明猜中了,则进行一次抽奖,索引是随机的;没猜中就什么都得不到了......

注:在代码中用到的random类的方法:nextInt(),表示随机整数。如果括号里面什么都没输入的话随机范围就是从0到int类型所能识别的最大值。若括号里面输入了一个值a,则随机范围就是从0~a(小于a)。如果是nextInt(a)+b,范围就变成了b~a+b(小于a+b)。


代码展示

package advance;

import java.util.Random;
import java.util.Scanner;

public class Guess_game_cls {//猜数字游戏,用到了Java随机库
	private int choice;
	private int cnt = 0;
	private boolean isCorrect = false;
	private String[] gift = {"50 penny", "thank you", "crisps" };
	private Scanner input = new Scanner(System.in);
	private int randint = new Random().nextInt(5) + 1;//随机数的范围:1~5

    //输入
	public void process() {
		System.out.println("enter a number(1 to 5):");
		this.choice = this.input.nextInt();//玩家输入
	}

    //游戏主体
	public void game() {
		System.out.println("guess the number the system record!");
		System.out.println("you have 3 chances\n(enter 0 to exit!)");
		this.process();
        //判断玩家输入是否与random随机数相等
		while (this.choice != 0 && this.cnt < 2) {//procedure
			if (this.choice == this.randint) {
				System.out.println("correct!");
				isCorrect = true;
				break;
			}else {
				System.out.println("incorrect!\n");
				cnt += 1;
				this.process();
			} 
        //判断玩家是否猜中数字
		}if (isCorrect)//gift
			System.out.println("you get rewards!\n" + gift[new Random().nextInt(gift.length)]);
		else
			System.out.print("process ended");
	}
};


//实例化类,并展示游戏
public class Main{
	public static void main(String[] args) {
		Guess_game_cls obj=new Guess_game_cls();
		obj.game();
	}
}

你可能感兴趣的:(java,游戏,eclipse)