猜數字遊戲

package com.lovo.homework;java

import java.util.Scanner;dom

public class GuessGame {

private int[] backNum = new int[4];

private int[] inputNum = new int[4];

//主控方法
public void run(){
this.autoGenerate();
for(int i = 0; i < 7; i++){
System.out.println("第" + (i + 1) + "次猜想:");
this.inputNumber();
String result = this.compare();
System.out.println("您本次猜想的結果是:" + result);
if(result.equals("4A0B")){
System.out.println("恭喜,恭喜。天才!!");
break;
}else if(i == 6){
System.out.print("惋惜了.....結果是:");
this.showBackNum();
}
}

}


//做弊方法
private void showBackNum(){
for(int i = 0; i < 4; i++){
System.out.print(this.backNum[i]);
}
System.out.println();
}

//生成後臺數
private void autoGenerate(){
for(int i = 0; i < this.backNum.length; i++){
this.backNum[i] = (int)(Math.random() * 10);
for(int j = 0; j < i; j++){
if(this.backNum[i] == this.backNum[j]){
i--;
break;
}
}
}
}

//接收輸入
private void inputNumber(){
while(true){
System.out.println("請輸入一個四位數:");
int input = new Scanner(System.in).nextInt();
if(input < 100 || input >= 10000){
System.out.println("輸入有誤,請保證輸入的是一個每不重複的四位數");
continue;
}

this.inputNum[0] = input / 1000;
this.inputNum[1] = input / 100 % 10;
this.inputNum[2] = input / 10 % 10;
this.inputNum[3] = input % 10;

boolean flag = this.examInput();
if(flag){
break;
}
}

}

//校驗輸入重複位
private boolean examInput(){
for(int i = 1; i < this.inputNum.length; i++){
for(int j = 0; j < i; j++){
if(this.inputNum[i] == this.inputNum[j]){
System.out.println("您輸入的數中有相同位,請從新輸入");
return false;
}
}
}
return true;
}

private String compare(){
String result = "";
int numA = 0;
int numB = 0;
for(int i = 0; i < this.inputNum.length; i++){
for(int j = 0; j < this.backNum.length; j++){
if(this.inputNum[i] == this.backNum[j] && i == j){
numA ++;
}else if(this.inputNum[i] == this.backNum[j]){
numB ++;
}
}
}
result = numA + "A" + numB + "B";
return result;
}


}this

相關文章
相關標籤/搜索