Java 猜数 升级版

Java 猜数 升级版

背景

小帅哥给我升级题目难度咯(尽管还是简单的)

题目简述:

生成一个0-99的随机数randomNum,有三个人来猜数,分别为A、B、C;A猜不中,则B猜,B猜不中,则C猜,C猜不中又回到A猜,如此循环,直至猜中,并输出是谁猜中的。

思路

第一步,生成一个0-99的随机数randomNum;
第二步,定义三个人A,B,C;
第三步,首先是A先猜数,判断A输入的数是否和随机数randomNum相等,相等则直接输出结果,不相等则接着由B猜数,相等则输出,不等则由C猜数,不相等则由A猜数,相等则输出,如此循环,直至猜中。
拓展:既然能三个人猜数,要是四个呢,五个呢(请参考代码二)

代码块

代码一,对应测试结果为图一

import java.util.Scanner; 

public class GuessingNumber {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		System.out.println("A input: ");
		// 定义三个人猜数:a、b、c
		int a = scan.nextInt(),b = -1,c = -1;
		// 生成随机数
		int randomNum = (int)(Math.random()*99);
		// 范围
		int leftNum = 0,rightNum = 99;
		// 输入的数
		int num = a;
		while(num != randomNum){
			if (num > randomNum && num < rightNum){
				rightNum = num;
				System.out.println(leftNum + "-" + num);
			} else if(num < randomNum && num > leftNum){
				leftNum = num;
				System.out.println(num + "-" + rightNum);
			} else {
				System.out.println(leftNum + "-" + rightNum);
			}
			if (num == a) {
				System.out.println("B input: ");
				b = scan.nextInt();
				num = b;
			} else if (num == b) {
				System.out.println("C input: ");
				c = scan.nextInt();
				num = c;
			} else if (num == c) {
				System.out.println("A input: ");
				a = scan.nextInt();
				num = a;
			}
		}
		if (num == a) {
			System.out.println("Congratulations A, you guessed it.");
		} else if (num == b) {
			System.out.println("Congratulations B, you guessed it.");
		} else if (num == c) {
			System.out.println("Congratulations C, you guessed it.");
		}
		
	}
}

代码二(优化后的版本)对应图二

import java.util.*; 

public class GuessingNumber {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		Random rm = new Random();
		// 生成随机数,count为猜数人数组下标
		int randomNum = rm.nextInt(100), count = 0;
		// 猜数人数组
		String people[] = {"peopleA", "peopleB", "peopleC"};
		// 左右范围,当前输入数
		int leftNum = 0,rightNum = 99, currentNum;
		// 当前猜数人
		String nowPlayer;
		System.out.println("game start...");
		while(true){
			System.out.println(leftNum + "-" + rightNum);
			nowPlayer = people[count];
			System.out.println(nowPlayer + " input: ");
			currentNum = scan.nextInt();
			if (currentNum == randomNum){
				break;
			} else if (currentNum > randomNum && currentNum < rightNum){
				rightNum = currentNum;
			} else if (currentNum < randomNum && currentNum > leftNum){
				leftNum = currentNum;
			}
			count = (count + 1) % (people.length);
		}
		System.out.println("Congratulations " + nowPlayer + ", you guessed it.");
		
	}
}

测试结果

图一:
这里写图片描述
图二:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/zcxbd/article/details/82460057
今日推荐