1. 程式人生 > >【java】【憤怒的小鳥】專案編寫記錄

【java】【憤怒的小鳥】專案編寫記錄

package homework;

import java.util.Scanner;

public class AGbird2 {


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String playerArray[]= new String[50];  //玩家資訊
		int index = 0;  //玩家數量
		Scanner sc = new Scanner(System.in);
		while(true)
		{
			System.out.println("************************************************");
			System.out.println("");		
			System.out.println("\t\t憤怒的小鳥");
			System.out.println("");
			System.out.println("請選擇登入方式:1、玩家登陸\t 2、管理員登陸\t 0、退出");
			System.out.println("");
			System.out.println("************************************************");
			int loginCho = sc.nextInt();
			if(loginCho==0 || loginCho==1 || loginCho==2)
			{
				switch(loginCho)
				{
					case 1:
						System.out.println("************************************************");
						System.out.println("");		
						System.out.println("\t\t玩家登陸");
						System.out.println("");
						System.out.println("請輸入使用者名稱:\n"); 
						System.out.println("請輸入密碼:\n");
						System.out.println("");
						System.out.println("************************************************");
						String userName = sc.next();
						String userPwd = sc.next();
						if(userName.equals("admin") && userPwd.equals("admin"))
						{
							System.out.println("************************************************");
							System.out.println("");		
							System.out.println("\t\t憤 怒 的 小 鳥");
							System.out.println("");
							System.out.println("\t\t1、開 始 遊 戲");
							System.out.println("");
							System.out.println("\t\t2、查 看 成 績");
							System.out.println("");
							System.out.println("\t\t0、返 回 上 級");
							System.out.println("");
							System.out.println("************************************************");
						}
						int userCho = sc.nextInt();
						switch(userCho)
						{
						
							case 1:
							
								System.out.println("************************************************");
								System.out.println("");		
								System.out.println("\t\t請 選 擇 小 鳥");
								System.out.println("");
								System.out.println("\t1、紅色小鳥  攻擊力:80    命中率:50%");
								System.out.println("");
								System.out.println("\t2、黑色小鳥  攻擊力:200  命中率:30%");
								System.out.println("");
								System.out.println("\t3、藍色小鳥  攻擊力:50     命中率:80%");
								System.out.println("");
								System.out.println("\t0、返 回 上 級\n\n");
								System.out.println("請選擇(需選擇三個小鳥發起攻擊,可相同也可不同):\n");
								System.out.println("************************************************");
									
								System.out.println("************************************************");
								System.out.println("");		
								System.out.println("遊戲開始:");
								System.out.println("帥氣的飛了過來,它的攻擊力是:");
								System.out.println("帥氣的開始攻擊。。。。。。");
								System.out.println("“Boom!”打中了野豬大王!Lucky!(命中目標)");
								System.out.println("笨重的,它的攻擊力是:\n攻擊開始了。。。。。。");
								System.out.println("“額 額 。。。”沒有打中!衰!!(沒有命中)");
								System.out.println("最後發起攻擊的是:輕盈的,它的攻擊力是:");
								System.out.println("攻擊開始了。。。。。。");
								System.out.println("“Boom!”打中了野豬大王!Lucky!(命中目標)\n");
								System.out.println("攻擊結束:您的總分數是:XXX\n\n");
								System.out.println("1、再 玩 一 局");
								System.out.println("2、返 回 菜 單\n");
								System.out.println("************************************************");
								break;
							
							case 0:
								System.out.println("返回!");
								break;
							default:
								System.out.println("輸入錯誤!");
								
						}
						break;
						
					case 2:
						for(int i=1;i<=3;i++)
						{
							System.out.println("************************************************");
							System.out.println("");		
							System.out.println("\t\t管理員登陸");
							System.out.println("");
							System.out.println("請輸入使用者名稱:\n"); 
							System.out.println("請輸入密碼:\n");
							System.out.println("");
							System.out.println("************************************************");
							String managerName = sc.next();
							String managerPwd = sc.next();
							if(managerName.equals("admin") && managerPwd.equals("admin"))
							{
								String goOn;
								do {
									System.out.println("************************************************");
									System.out.println("");		
									System.out.println("\t\t系 統 管 理");
									System.out.println("");
									System.out.println("\t\t1、新增玩家");
									System.out.println("");
									System.out.println("\t\t2、修改玩家");
									System.out.println("");
									System.out.println("\t\t3、刪除玩家");
									System.out.println("");
									System.out.println("\t\t4、查詢玩家");
									System.out.println("");
									System.out.println("\t\t5、查詢遊戲");
									System.out.println("");
									System.out.println("\t\t6、分數統計");
									System.out.println("");
									System.out.println("\t\t7、引數設定");
									System.out.println("");
									System.out.println("\t\t0、返    回");
									System.out.println("************************************************");
									int managerCho=sc.nextInt();
									switch(managerCho)
									{
										case 1:
											System.out.println("******************新增玩家*******************");
											System.out.println("請輸入玩家的登入名:(必須要有字母,且在系統中唯一)");
											String playerName = sc.next();
											System.out.println("請輸入玩家的密碼:(必須要有字母和數字,且最少不能少於 6 位)");
											String playerPwd = sc.next();
											System.out.println("請輸入玩家暱稱:");
											String nickName = sc.next();
											System.out.println("請輸入玩家的性別:(只可輸入男或女)");
											String sex = sc.next();
											System.out.println("請輸入玩家的年齡:(只可輸入正整數,且最大不可大於 99)");
											int age = sc.nextInt();
											
											String playerMess = playerName+"&"+playerPwd+"&"+nickName+"&"+sex+"&"+age;
											playerArray[index] = playerMess;
											index++;
											System.out.println("新增玩家資訊成功!");
											break;
										
										case 2:
											System.out.println("*********************修改玩家*********************");
											//列出可修改的玩家
											System.out.println("請選擇要修改的玩家:");
											for(int count=0;count<index;count++)
											{
												String messStr = playerArray[count]; //玩家資訊字串
												String messArr[] = messStr.split("&"); //將玩家資訊拆分,放到字串中
												System.out.println((count+1)+"、"+messArr[0]);
											}
											System.out.println("請選擇(1~"+index+"):");
											
											int changeChoice;
											while(true) {
												changeChoice = sc.nextInt();
												if(changeChoice >= 1 && changeChoice <= index) {
													break;
												}else {//判斷是否有要修改的玩家
													System.out.println("沒有您要修改的玩家,請重新選擇:");
												}
											}
											
											//除了玩家名不能修改,其餘全部一起修改
											//輸入修改值之前提示原始值
											//要修改的元素的下標值為changeChoice-1
											String oldPlayerMess = playerArray[changeChoice-1];
											String oldPlayerMessArr[] = oldPlayerMess.split("&");
											System.out.println("玩家的原密碼是:["+oldPlayerMessArr[1]+"],請輸入新的密碼:");
											String newPwd = sc.next();
											System.out.println("玩家的原暱稱是:["+oldPlayerMessArr[2]+"],請輸入新的暱稱:");
											String newNickName = sc.next();
											System.out.println("玩家的原性別是:["+oldPlayerMessArr[3]+"],請輸入新的性別:");
											String newSex = sc.next();
											System.out.println("玩家的原年齡是:["+oldPlayerMessArr[4]+"],請輸入新的年齡:");
											int newAge = sc.nextInt();
											    
											//需要使用新的值替換舊值
											String newPlayerMess = oldPlayerMessArr[0]+"&"+newPwd+"&"+newNickName+"&"+newSex+"&"+newAge;
											//把新的字串替換原字串
											//重新賦值
											playerArray[changeChoice-1] = newPlayerMess;
											System.out.println("修改成功!");
											break;
											
										case 3:
											System.out.println("********************刪除玩家*****************");
											//基本與修改的步驟相同
											//要列出來可刪除的玩家
											System.out.println("請選擇要刪除的玩家:");
											for(int count = 0;count < index;count++) {
												String messStr = playerArray[count]; //玩家資訊字串
												String messArr[] = messStr.split("&"); //把字串資訊轉換成陣列資訊
												System.out.print((count+1)+"、"+messArr[0]+"\t");
											}
											System.out.println("\n請選擇(1-"+index+"):");
											
											//判斷是否有要刪除的玩家
											int deleteChoice;
											while(true) {
												deleteChoice = sc.nextInt();
												if(deleteChoice >= 1 && deleteChoice <= index) {
													break;
												}else {
													System.out.println("沒有您要刪除的玩家,請重新選擇:");
												}
											}
											
											//要刪除誰,就把誰的原字串改為 ""
											playerArray[deleteChoice-1] = "";
											System.out.println("刪除成功!");
											break;
											
										case 4:
											System.out.println("*********************查詢玩家*********************");
											for(int j = 0;j < index; j ++)
											{
												String messStr = playerArray[j];
												String messArr[] = messStr.split("&");
												for(String m:messArr)
												{
													System.out.print(m+"\t");
												}
												System.out.println("\n");
											}
											break;
											
										case 5:
											System.out.println("*********************刪除玩家*********************");
											break;
											
										case 6:
											System.out.println("*********************刪除玩家*********************");
											break;
											
										case 7:
											System.out.println("**********************修改引數*******************");
											System.out.println("");		
											System.out.println("\t\t請 選 擇 要 修 改 的 參 數 ");
											System.out.println("");
											System.out.println("\t1、紅色小鳥1  攻擊力:80    命中率:50%");
											System.out.println("");
											System.out.println("\t2、黑色小鳥  攻擊力:200  命中率:30%");
											System.out.println("");
											System.out.println("\t3、藍色小鳥  攻擊力:50     命中率:80%");
											System.out.println("");
											System.out.println("\t4、管理員登陸名");
											System.out.println("");
											System.out.println("\t5、管理員密碼");
											System.out.println("");
											System.out.println("\t6、管理員最大登陸次數");
											System.out.println("");
											System.out.println("\t0、返 回 上 級\n");
											System.out.println("************************************************");
											break;
											
									}
									System.out.println("請問是否繼續管理員操作(輸入y繼續,其他符號退出!)");
									goOn = sc.next();
								}while(goOn.equals("y"));
								
								break;
							}else {
									
									if(i==3)
									{
										System.out.println("三次輸入錯誤!退出程式!");
									}else {
										System.out.println("管理員名或密碼輸入錯誤!");
									}
								}
						}
					case 0:
						System.out.println("感謝使用!退出系統。。。");
						continue;
				}
			}else{
				System.out.println("沒有您要進行的操作!請重新輸入!");
			}
		}

	}
}