みなさん、こんにちは。私はキャベツでアーチ型の豚です。
タイトル
ゲス番号ゲーム
-
0から9までの4つの整数をランダムに生成して、シーケンスを形成します(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();
}
}