Java实现棒子老虎鸡小游戏

avatar 2017年04月25日23:08:02 1 5403 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
有一种游戏称作棒子老虎鸡,即有木棒、老虎、鸡、虫四种族,吃法如下:棒子吃老虎,老虎吃鸡,鸡吃虫子,虫子吃棒子。其他情形为和局。现在要求编写程序实现如下功能:

1、用由四种族的对象若干组成红黑两队成员(成员数相同)。

2、让红、黑两队成员一一对搏,获胜得一分,否则得0分,总分高者赢。

3、输出对搏情况和总比分

(提示:四种族实现相同接口,使用instanceof操作符)



代码如下(由于初学,代码很low,大家可以在下方讨论)

Main.java
  1. package com.liuyanzhao;
  2. public class Main {
  3.     public static void main(String[] args) {
  4. //      String []red = {"棒子","老虎","鸡","虫","老虎"};
  5. //      String []black = {"虫","老虎","虫","鸡","棒子"};
  6.         棒子 棒子 = new 棒子();
  7.         老虎  老虎 = new 老虎();
  8.         鸡  鸡 = new 鸡();
  9.         虫 虫 = new 虫();
  10.         棒子.pk(虫);
  11.         老虎.pk(老虎);
  12.         鸡.pk(虫);
  13.         虫.pk(鸡);
  14.         老虎.pk(棒子);
  15.         int redScore = 棒子.c+老虎.c+鸡.c+虫.c;
  16.         int blackScore = 棒子.c1+老虎.c1+鸡.c1+虫.c1;
  17.         String result;
  18.         if(redScore>blackScore) {
  19.             result = "红方胜";
  20.         } else if(redScore<blackScore) {
  21.             result = "红方输";
  22.         } else {
  23.             result = "平局";
  24.         }
  25.         System.out.println("总比分: 红方VS黑方 = "+redScore+":"+blackScore+","+result);
  26.     }
  27. }



Player.java
  1. package com.liuyanzhao;
  2. public interface Player {
  3.     public static int c=0,c1=0;
  4.     public abstract void pk(Object obj);
  5. }



棒子.java
  1. package com.liuyanzhao;
  2. public class 棒子 implements Player {
  3.     public static int c=0,c1=0;
  4.     public void pk(Object obj) {
  5.         if(obj instanceof 棒子) {
  6.             System.out.println("棒子  VS  棒子  和局");
  7.         } else if(obj instanceof 老虎) {
  8.             System.out.println("棒子  VS  老虎  赢了");
  9.             c++;
  10.         } else if(obj instanceof 鸡) {
  11.             System.out.println("棒子  VS  鸡   和局");
  12.         } else if(obj instanceof 虫) {
  13.             System.out.println("棒子  VS  虫   红方输");
  14.             c1++;
  15.         }
  16.     }
  17. }



老虎.java
  1. package com.liuyanzhao;
  2. public class 老虎 implements Player{
  3.     public static int c=0,c1;
  4.     public void pk(Object obj) {
  5.         if(obj instanceof 棒子) {
  6.             System.out.println("老虎  VS  棒子  红方输");
  7.             c1++;
  8.         } else if(obj instanceof 老虎) {
  9.             System.out.println("老虎  VS  老虎  和局");
  10.         } else if(obj instanceof 鸡) {
  11.             System.out.println("老虎  VS  鸡   红方胜");
  12.             c++;
  13.         } else if(obj instanceof 虫) {
  14.             System.out.println("老虎  VS  虫   和局");
  15.         }
  16.     }
  17. }



鸡.java
  1. package com.liuyanzhao;
  2. public class 鸡 implements Player{
  3.     public static int c=0,c1=0;
  4.     public void pk(Object obj) {
  5.         if(obj instanceof 棒子) {
  6.             System.out.println("鸡   VS  棒子  和局");
  7.         } else if(obj instanceof 老虎) {
  8.             System.out.println("鸡   VS  老虎  红方输");
  9.             c1++;
  10.         } else if(obj instanceof 鸡) {
  11.             System.out.println("鸡   VS  鸡   和局");
  12.         } else if(obj instanceof 虫) {
  13.             System.out.println("鸡   VS  虫   红方胜");
  14.             c++;
  15.         }
  16.     }
  17. }



虫.java
  1. package com.liuyanzhao;
  2. public class 虫 implements Player {
  3.     public static int c=0,c1=0;
  4.     public void pk(Object obj) {
  5.         if(obj instanceof 棒子) {
  6.             System.out.println("虫   VS  棒子  红方胜");
  7.             c++;
  8.         } else if(obj instanceof 老虎) {
  9.             System.out.println("虫   VS  老虎  和局");
  10.         } else if(obj instanceof 鸡) {
  11.             System.out.println("虫   VS  鸡   红方输");
  12.             c1++;
  13.         } else if(obj instanceof 虫) {
  14.             System.out.println("虫   VS  虫   和局");
  15.         }
  16.     }
  17. }



后续还会更新,大家可以在下方讨论,贴出自己的代码也可以。

本文永久更新地址:http://liuyanzhao.com/3350.html

转载请注明

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0