大家好,我是被白菜拱的猪。
题目
猜数字游戏
-
随机生成4个0到9的整数,组成一个序列(使用LinkedList存储)
例如:3 6 4 4 -
然后要求用户循环猜这4个数子,在用户每猜一次之后,提示用户有几个数字的位置正确了。
例如:用户输入3 7 2 4 (3和4的位置正确了),则提示用户有2个数字正确(但不提示具体是哪2个数字正确,需要用户自行判断)。 -
使用LinkedList存储用户每次猜测是数字组合。用户可以随时查看之前自己的输入
例如:3 7 2 4
5 7 2 4
…… -
用户猜到第10次时,就没有机会,提示猜测失败。
注意:使用Math.random()方法获取0到1的随机数,然后扩大10倍,再转换成整型
形式:int a = (int)(Math.random() * 10);
此时a就是随机数,依此方法获取4个随机数
代码
package com.hzyc.lesson15.homework16;
import java.util.LinkedList;
import java.util.Scanner;
interface IGame {
void initRandom();
int guess();
void time();
void showHis();
}
class GuessGame implements IGame {
LinkedList<Integer> randomList = new LinkedList<Integer>();
LinkedList<String> hisList = new LinkedList<String>();
public void initRandom() {
for (int n = 1; n <= 4; n++) {
randomList.add((int)(Math.random() * 10));
}
}
public int guess() {
System.out.println("\n请输入4个数字");
Scanner scan = new Scanner(System.in);
int cnt = 0;
String once = "";
for (int i = 0; i < 4; i++) {
int userInNumber = scan.nextInt();
once += userInNumber + " ";
int fromListNumber = randomList.get(i);
if (userInNumber == fromListNumber) {
cnt++;
}
}
hisList.add(once + ", 正确:" + cnt);
return cnt;
}
public void time() {
for (int k = 1; k <= 10; k++) {
int count = guess();
if (count == 4) {
System.out.println("对了!!");
} else if (count == 0) {
System.out.println("没有正确的...");
} else {
System.out.println("有" + count + "个正确的");
}
System.out.println("输入“h”查看历史,输入其他继续");
Scanner scan = new Scanner(System.in);
String userChoose = scan.next();
if (userChoose.equals("h")) {
showHis();
}
}
}
public void showHis() {
System.out.println("----start----");
for (String temp : hisList) {
System.out.println(temp);
}
System.out.println("----end----");
}
public void start() {
initRandom();
time();
}
}
public class TestGame {
public static void main(String[] args) {
GuessGame g = new GuessGame();
g.start();
}
}