用Java寫一個簡易猜數遊戲

用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();
									}						
					}
}}
}

本章要點:流程語句,數組排序,及數組去重

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章