欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

简易大富翁游戏

发布时间:2023/12/14 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 简易大富翁游戏 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目:大富翁游戏——控制台界面

题目要求:

 @@ 两人重合时
 A 玩家1
 B 玩家2
 ¤ 幸运轮盘
 ★ 地雷
 ■ 暂停
 〓 时空隧道
 ∷ 普通格
地图样式

∷∷∷∷∷★¤∷∷■∷∷∷★∷∷∷★∷∷〓∷∷¤∷〓∷■∷∷∷
                          ∷
                         ∷
                         ★
                         ∷
∷★〓∷∷■∷∷∷∷∷∷∷∷∷★∷∷∷∷〓∷∷∷∷¤∷★∷∷∷



¤∷∷〓∷∷∷∷∷∷∷★∷∷¤∷∷∷∷〓∷〓∷∷■★∷∷∷∷∷

游戏规则说明:

  • 双方重叠,则后来者将前面的一位打回到起点
  • 幸运轮盘:
    两种玩法:
    (1). 交换位置
    (2). 轰炸, 将对方打回六格
  • 踩到地雷,自己退六格
  • 时空隧道: 前进10格
  • 暂停:下次暂停一次.
  • 分析:

    如果两玩家重合输出@@在同一位置–》将此位置的字符替换为@@
    也就是说将每次都需判断是否在同一位置
    不在同一位置那么输出代号—》将此位置的字符替换成代号

    类: 规则(裁判)
    玩家
    玩家属性:位于地图中的位置
    玩家动作:
    地图
    地图用数组储存
    测试类

    代码

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

    总结

    以上是生活随笔为你收集整理的简易大富翁游戏的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。