用Java寫一個簡易猜數遊戲
遊戲規則:猜數字的遊戲,由系統隨機生成一個不同的四個數(0—9),例如(1234), 然後由用戶輸入四個不同的數字,如果輸入的數字 與系統生成的數字相同並且位置相同 用 A 表示,
如果數字相同位置不同用B表示,例如輸入(1245)結果顯示: 2A1B 給用戶10次輸入的機會。
代碼如下:
package com.guess;
import java.util.Scanner;
/**
*
* @author 小zz
*創建時間2019年5月8日下午5:09:35
*@version 1.0
*猜數遊戲
*系統生成4個不同隨機數
*用戶輸入四個不同數字
*/
public class Guess {
public static void main(String[] args) {
/**注:computer用於裝電腦生成的數據,
* user用於裝用戶輸入的數據
* contA,contB分別用於裝A和B的個數
* panduan用於判斷用戶輸入的是否爲4個單個數字,若是則可以進行下一步操作
* panduan2用於,若所有的條件滿足則進行下一步
* time爲用戶的遊戲次數
* */
Scanner scanner = new Scanner(System.in);
int[] computer=new int[4];
int[] user=new int[4];
int contA=0;int contB=0;
int panduan=10;
int panduan2=10;
int time=3;
/**電腦隨機生成*/
for(int i=0;i<computer.length;i++) {
computer[i]=(int) Math.floor(Math.random()*10);
}
// 排序
for(int i=0;i<computer.length-1;i++) {
for(int j=0;j<computer.length;j++) {
if(computer[i]>computer[j]) {
int stemp=computer[i];
computer[i]=computer[j];
computer[j]=stemp;
}
}
}
// 去重
for(int i=0;i<computer.length;i++) {
for(int j=computer.length-1;j>=0;j--) {
if(computer[i]==computer[j]&&i!=j) {
computer[j]=(int) Math.floor(Math.random()*10);
}
}
}
/**用於打印電腦生成的隨機數*/
/*for(int i=0;i<computer.length;i++) {
System.out.print(computer[i]);
}*/
System.out.println("---------------------------遊戲開始!---------------------------");
while(time>0) {
panduan=10;
panduan2=10;
/**用戶輸入*/
for(int i=0;i<user.length;i++) {
System.out.println("請輸入第"+(i+1)+"個數:");
user[i]=scanner.nextInt();
}
/**判斷輸入是否正確*/
/**判斷是否爲4個單個數字*/
for(int i=0;i<user.length;i++) {
if(user[i]>=10) {
System.out.println("大哥!!填寫錯誤,四個單個數字");
panduan=5;
panduan2=5;
break;
}
}
/**判斷輸入的四個數字是否相同*/
if(panduan==10) {
// 去重
for(int i=0;i<user.length;i++) {
for(int j=user.length-1;j>=0;j--) {
if(user[i]==user[j]&&i!=j) {
System.out.println("請輸入四個不同的數字!!");
panduan2=5;
break;
}
}
}
}
/**若所有的條件滿足則判斷結果*/
if(panduan2==10) {
time--;
for(int i=0;i<computer.length;i++) {
for(int j=0;j<computer.length;j++) {
/**位置不同*/
if(computer[i]==user[j]&&i!=j) {
contB++;
break;
}
/**位置相同*/
if(computer[i]==user[j]&&i==j){
contA++;
break;
}
}
}
if(contA==4) {
System.out.println("恭喜您全部猜對,獎勵一點巴巴掌");
time=0;
}else {
System.out.println(contA+"A"+contB+"B");
System.out.println("您還有"+time+"此機會");
System.out.println("您上次的輸入爲:");
for(int t=0;t<user.length;t++) {
System.out.print(user[t]);
}
System.out.println();
}
}
}}
}
本章要點:流程語句,數組排序,及數組去重