【憤怒的小鳥】專案編寫記錄
阿新 • • 發佈:2018-12-21
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("沒有您要進行的操作!請重新輸入!"); } } } }