简易大富翁游戏
題目:大富翁游戲——控制臺界面
題目要求:
?@@ 兩人重合時
?A 玩家1
?B 玩家2
?¤ 幸運輪盤
?★ 地雷
?■ 暫停
?〓 時空隧道
?∷ 普通格
地圖樣式
∷∷∷∷∷★¤∷∷■∷∷∷★∷∷∷★∷∷〓∷∷¤∷〓∷■∷∷∷
????????????????????????? ∷
?????????????????????????∷
?????????????????????????★
?????????????????????????∷
∷★〓∷∷■∷∷∷∷∷∷∷∷∷★∷∷∷∷〓∷∷∷∷¤∷★∷∷∷
∷
∷
∷
¤∷∷〓∷∷∷∷∷∷∷★∷∷¤∷∷∷∷〓∷〓∷∷■★∷∷∷∷∷
游戲規則說明:
兩種玩法:
(1). 交換位置
(2). 轟炸, 將對方打回六格
分析:
如果兩玩家重合輸出@@在同一位置–》將此位置的字符替換為@@
也就是說將每次都需判斷是否在同一位置
不在同一位置那么輸出代號—》將此位置的字符替換成代號
類: 規則(裁判)
玩家
玩家屬性:位于地圖中的位置
玩家動作:
地圖
地圖用數組儲存
測試類
代碼
Map類:
package com.yc.demo1;public class Map {private char temp1;private char temp2;private char []map={'∷','∷','∷','∷','∷','★','¤','∷','∷','■','∷','∷','∷','★','∷','∷','∷'//17,'★','∷','∷','〓','∷','∷','¤','∷','〓','∷','■','∷','∷','∷','∷','∷','★','∷','∷',//36'★','〓','∷','∷','■','∷','∷','∷','∷','∷','∷','∷','∷','∷','★','∷','∷','∷','∷','〓',//56'∷','∷','∷','∷','¤','∷','★','∷','∷','∷','∷','∷','∷','¤','∷','∷','〓','∷','∷','∷',//76'∷','∷','∷','∷','★','∷','∷','¤','∷','∷','∷','∷','〓','∷','〓','∷','∷','■','★','∷',//100'∷','∷','∷','∷'};public char[] getMap() {return map;}//輸出地圖public void showMap(Player p1,Player p2){//輸出棋子位置if(p1.getPosition()==p2.getPosition()){temp1=map[p1.getPosition()];temp2=map[p2.getPosition()];map[p1.getPosition()]='@';}else{temp1=map[p1.getPosition()];map[p1.getPosition()]='A';temp2=map[p2.getPosition()];map[p2.getPosition()]='B';}//輸出棋盤for(int i=0;i<31;i++){System.out.print(map[i]);}System.out.println();for(int i=31;i<35;i++){for(int j=0;j<91;j++){System.out.print(" ");}System.out.println(map[i]);}for(int i=35;i<65;i++){System.out.print(map[(map.length-i)+2]);}for(int i=65;i<70;i++){System.out.println(map[i]);}System.out.print(map[69]);for(int i=70;i<100;i++){System.out.print(map[i]);}//還原棋盤map[p1.getPosition()]=temp1;map[p2.getPosition()]=temp2;} }Player類:
package com.yc.demo1; import java.util.Scanner;; public class Player {private int position=0;private String name;private String coad;private Player player;public Player() {}public Player(int position) {this.position = position;}public Player(int position, Player player) {super();this.position = position;this.player = player;}//獲取的方法public int getPosition() {return position;}public void setPosition(int position) {this.position = position;}public Player getPlayer() {return player;}public void setPlayer(Player player) {this.player = player;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getCoad() {return coad;}public void setCoad(String coad) {this.coad = coad;}//獲取玩家名public Player playName(Player player,int j){Scanner sc=new Scanner(System.in);int i;do{System.out.println("請選擇角色:1.錢夫人 2.大老千 3.阿土伯 4.貝哥");System.out.print("請玩家"+j+"選擇角色:");i=sc.nextInt();switch(i){case 1:player.name="錢夫人";break;case 2:player.name="大老千";break;case 3:player.name="阿土伯";break;case 4:player.name="貝哥";break;default:System.out.println(" 您輸入的參數有誤,請重新輸入");break;}}while(i>4||i<0);return player;}}Rule類:
package com.yc.demo1; import java.util.Scanner; import java.util.Random; public class Rule {public void StartGame(){System.out.println("***************************************");System.out.println("// //");System.out.println("// 大富翁 //");System.out.println("// //");System.out.println("// //");System.out.println("***************************************");System.out.println();System.out.println();System.out.println();System.out.println("~~~~~~~~~~~~~~~雙人對戰~~~~~~~~~~~~~~~~~~");Player p1=new Player();Player p2=new Player();p1.setCoad("A");p2.setCoad("B");Map m1=new Map();choiceRole(p1,p2);System.out.println();System.out.println();System.out.println();gameStart(p1,p2,m1);}//選擇角色public void choiceRole(Player p1,Player p2){do{p1.playName(p1, 1);p2.playName(p2, 2);}while(p1.getName()==p2.getName());}//正式開始游戲public void gameStart(Player p1,Player p2,Map m1){System.out.println("***************************************");System.out.println(" GAME START ");System.out.println("***************************************");System.out.println("^_^"+p1.getName()+"您的代號為:"+p1.getCoad());System.out.println("^_^"+p2.getName()+"您的代號為:"+p2.getCoad());System.out.println();System.out.println("圖例:■暫停 ¤幸運輪盤 ★地雷 〓時空隧道 ∷普通");m1.showMap(p1,p2);System.out.println();dice(p1,p2,m1);}//擲骰子public void dice(Player p1,Player p2,Map m1){Scanner sc=new Scanner(System.in);Random rd=new Random();do{if(m1.getMap()[p1.getPosition()]!='■'){ //此if判斷句為“暫停”特殊事件System.out.println(p1.getName()+",請您按任意鍵啟動擲骰子:");sc.nextLine();int point=rd.nextInt(6)+1;p1.setPosition(p1.getPosition()+point);System.out.println("---------------");System.out.println("骰子數:"+point);System.out.println();specialEvents(p1,p2,m1);if(p1.getPosition()<99){System.out.println(p1.getName()+"當前的位置 :"+p1.getPosition());System.out.println(p2.getName()+"當前的位置:"+p2.getPosition());}else{p1.setPosition(99);System.out.println(p1.getName()+"當前的位置 :"+(p1.getPosition()+1));System.out.println(p2.getName()+"當前的位置:"+p2.getPosition());}System.out.println("---------------");m1.showMap(p1,p2);System.out.println();if(true==win(p1,p2)){System.out.println("***************************************");System.out.println(" GAME OVER ");System.out.println("***************************************");System.out.println("恭喜"+p1.getName()+"獲勝了!");return;}}if(m1.getMap()[p2.getPosition()]!='■'){ //此if判斷句為“暫停”特殊事件System.out.println(p2.getName()+"請您按任意鍵啟動擲骰子:");sc.nextLine();int point1=rd.nextInt(6)+1;p2.setPosition(p2.getPosition()+point1);System.out.println("---------------");System.out.println("骰子數:"+point1);System.out.println();specialEvents(p1,p2,m1);if(p2.getPosition()<99){System.out.println(p2.getName()+"當前的位置 :"+p2.getPosition());System.out.println(p1.getName()+"當前的位置:"+p1.getPosition());}else{p2.setPosition(99);System.out.println(p2.getName()+"當前的位置 :"+(p2.getPosition()+1));System.out.println(p1.getName()+"當前的位置:"+p1.getPosition());}System.out.println("---------------");m1.showMap(p1,p2);System.out.println();if(win(p1,p2)==true){System.out.println("***************************************");System.out.println(" GAME OVER ");System.out.println("***************************************");System.out.println("恭喜"+p2.getName()+"獲勝了!");return;}}}while(p1.getPosition()<=99||p2.getPosition()<=99);}//判斷是否勝利public boolean win(Player p1,Player p2){if(p1.getPosition()>=99||p2.getPosition()>=99){return true;}return false;}//特殊事件public void specialEvents(Player p1,Player p2,Map m1){Scanner sc=new Scanner(System.in);//幸運轉盤if(m1.getMap()[p1.getPosition()]=='¤'||m1.getMap()[p2.getPosition()]=='¤'){int choice = 0;do{System.out.println("◇◆◇◆◇◆◇◆歡迎進入幸運鍵盤◇◆◇◆◇◆◇◆");System.out.println("\t請選擇一種運氣:");System.out.println("1.交換位置\t\t2.轟炸");System.out.println("???????????????????????");choice=sc.nextInt();switch(choice){case 1://交換位置int temp3=p2.getPosition();p2.setPosition(p1.getPosition());p1.setPosition(temp3);;break;case 2://轟炸if(m1.getMap()[p1.getPosition()]=='¤'){if(p2.getPosition()-6<0){p2.setPosition(0);}else{p2.setPosition(p2.getPosition()-6);}}else if(m1.getMap()[p2.getPosition()]=='¤'){if((p1.getPosition()-6)<0){p1.setPosition(0);}else{p1.setPosition(p1.getPosition()-6);}}break;default:System.out.println("您輸入的參數有誤,請重新輸入...");break;}}while(choice!=1&&choice!=2);}//地雷if(m1.getMap()[p1.getPosition()]=='★'||m1.getMap()[p2.getPosition()]=='★'){System.out.println("呀!踩到了地雷,真可憐...退后六格吧...");if(m1.getMap()[p1.getPosition()]=='★'){if((p1.getPosition()-6)<0){p1.setPosition(0);}else{p1.setPosition(p1.getPosition()-6);}}if(m1.getMap()[p2.getPosition()]=='★'){if((p2.getPosition()-6)<0){p2.setPosition(0);}else{p2.setPosition(p2.getPosition()-6);}}}//時空隧道if(m1.getMap()[p1.getPosition()]=='〓'||m1.getMap()[p2.getPosition()]=='〓'){System.out.println("哇!進入了時空隧道,真好運...前進10格吧...");if(m1.getMap()[p1.getPosition()]=='〓'){if((p1.getPosition()+10)>99){p1.setPosition(99);}else{p1.setPosition(p1.getPosition()+10);}}if(m1.getMap()[p2.getPosition()]=='〓'){if((p2.getPosition()+10)>99){p2.setPosition(99);}else{p2.setPosition(p2.getPosition()+10);}}}} }測試類:
package com.yc.demo1;public class Test01 {public static void main(String []args){Rule r1=new Rule();r1.StartGame();} }總結
- 上一篇: 关于巨量算数jsvmp简单还原signa
- 下一篇: 基于单片机的环境监测系统设计(#0473