package com.zyy.java;import java.util.List;public class Bull {private static CreatPlayers cplayers;private static CreatPoker cpoker;private static Shuffle shuffle;private static SendPoker spoker; // 发牌private static View view;private static Player dealer; // 庄家private static List washedCards; // 洗过的牌private static Player[] players0; // 建好的玩家private static Player[] players1; // 发好牌的玩家public static void main(String[] args) {System.out.println("欢迎来到文字牛牛游戏");System.out.println("正在建牌中,请稍等");cpoker = new CreatPoker(); // 牌已经建好List cardsAll = cpoker.getCardsAll(); // 一、获取建好的牌int flag = 0;for (Object obj : cardsAll) {if (flag++ % 13 == 0) {System.out.println();}System.out.print(obj + " ");}shuffle = new Shuffle(cardsAll); // 二、洗牌washedCards = shuffle.getWashedCards(); // 三、获取一副洗好了的牌cplayers = new CreatPlayers(); // 四、创建玩家players0 = cplayers.getPlayers();// System.out.println(players0[1]); //检验是否建立好玩家dealer = new Dealer().getDealer(players0); // 五、从四名玩家中选出一名庄家System.out.println("\n\n" + "本局庄家是:" + dealer.getName() + " " + "\n\n");spoker = new SendPoker(); // 发牌players1 = spoker.sendPoker(players0, washedCards); // 牌发完Player player = new Player();for (int i = 0; i < 4; i++) {player.getBiggestCards(players1[i].getPocket());// System.out.println(players1[i].getOneOfPocket(3));// System.out.println(player.getBiggestCards(players1[i].getPocket()));}for (int i = 0; i < 4; i++) {Compare.pointOfBull(players1[i]);Compare.isBull(players1[i]);// System.out.println(players1[i].getPointOfBull());}view = new View();view.view(players1);}}package com.zyy.java;public  class Compare {public static void isBull(Player player) { // 判断手牌手否有牛for (int i = 0; i < 3; i++) {for (int j = i + 1; j < 4; j++) {for (int k = j + 1; k < 5; k++) {if ((player.getIndexOfPoker(i).getPoints()+ player.getIndexOfPoker(j).getPoints()+ player.getIndexOfPoker(k).getPoints()) % 10 == 0) {player.setIsBull(true); // 如果玩家手中的任意三张牌之和是10的倍数,则有牛}}}}}public static void pointOfBull(Player player) { // 判断手牌为牛几int allPoints = 0; // 五张牌的总点数for (int i = 0; i < 5; i++) {allPoints += player.getIndexOfPoker(i).getPoints();}player.setPointOfBull(allPoints % 10);}public Player compare(Player p1, Player p2) {if (p1.getIsBull() && p2.getIsBull()) {if (p1.getPointOfBull() > p2.getPointOfBull()) { // 如果谁牛的点数大,就返回谁return p1;} else if (p1.getPointOfBull() < p2.getPointOfBull()) {return p2;} else {                                   // 如果牛的点数相同,则比较最大牌if (p1.getBiggestCard().getCount() > p2.getBiggestCard().getCount()) {return p1;} else {return p2;}}}else{return null;}}}package com.zyy.java;import java.util.Arrays;public class CreatPlayers {Player[] players =new Player[4];    //建立四个玩家public CreatPlayers() {players[0] = new Player("张钰洁");players[1] = new Player("周颜颖");players[2] = new Player("毛繁宇");players[3] = new Player("李慧敏");}public Player[] getPlayers(){return players;}@Overridepublic String toString() {return "CreatPlayers [players=" + Arrays.toString(players) + "]";}}
package com.zyy.java;import java.util.ArrayList;
import java.util.List;//建好52张按照默认排序的牌
public class CreatPoker {private List cardsAll = new ArrayList();private static final String[] colors = { "黑桃", "红桃", "梅花", "方块" };private static final String[] points = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };public CreatPoker() {
//      StringBuffer c = new StringBuffer();for (int i = 0; i < 4; i++) {for (int j = 0; j < 13; j++) {cardsAll.add(new Poker(colors[i] , points[j]));}}}public List getCardsAll(){return cardsAll;}
}
package com.zyy.java;import java.util.List;//选出 庄家
public class Dealer {public Player getDealer(Player[] players){int index = (int)(Math.random() * players.length);return players[index];}}
package com.zyy.java;import java.util.Arrays;public class Player {private String name;private Poker[] pocket = new Poker[5]; // 玩家手上的5张牌private Boolean isBull = false; // 手牌是否有牛private int pointOfBull; // 牛几private Poker biggestCard; // 最大的是哪张牌public Player() {super();}public Player(String name) {super();this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Poker[] getPocket() {return pocket;}public void setPocket(Poker[] pocket) {this.pocket = pocket;}public void setOneOfPocket(int index, Poker poker) {this.pocket[index] = poker;}public Poker getOneOfPocket(int index) {return pocket[index];}public Boolean getIsBull() {return isBull;}public void setIsBull(Boolean isBull) {this.isBull = isBull;}public int getPointOfBull() {return pointOfBull;}public void setPointOfBull(int pointOfBull) {this.pointOfBull = pointOfBull;}public Poker getBiggestCard() {return biggestCard;}public void setBiggestCard(Poker biggestCard) {this.biggestCard = biggestCard;}public Poker getIndexOfPoker(int index) {return pocket[index];}@Overridepublic String toString() {return name + "的手牌为" + Arrays.toString(pocket);}public Poker getBiggestCards(Poker[] pocket) { // 获取手牌中的最大牌:有个问题没解决,如果出现点数相同,花色不同Poker poker = new Poker();int count = 0;for (int i = 0; i < 5; i++) {if (pocket[i].getCount() > count) {poker = pocket[i];count = pocket[i].getCount();}}return poker;
//      System.out.println(poker);
//      System.out.println(this.getBiggestCard());}}
package com.zyy.java;//牌类
public class Poker {private String color;private String point;public String getColor() {return color;}public void setColor(String color) {this.color = color;}public String getPoint() {return point;}public void setPoint(String point) {this.point = point;}public Poker() {super();}public Poker(String color, String point) {super();this.color = color;this.point = point;}@Overridepublic String toString() {return color +  point;}public int getPoints() {        // 比牛时的点数,A为1,J、Q、K为10int points = 0;switch (this.point) {case "A":points = 1;break;case "2":points = 2;break;case "3":points = 3;break;case "4":points = 4;break;case "5":points = 5;break;case "6":points = 6;break;case "7":points = 7;break;case "8":points = 8;break;case "9":points = 9;break;case "10":points = 10;break;case "J":points = 10;break;case "Q":points = 10;break;case "K":points = 10;break;}return points;}public int getCount() { // 每张牌的实际点数int count = 0;switch (this.point) {case "A":count = 1;break;case "2":count = 2;break;case "3":count = 3;break;case "4":count = 4;break;case "5":count = 5;break;case "6":count = 6;break;case "7":count = 7;break;case "8":count = 8;break;case "9":count = 9;break;case "10":count = 10;break;case "J":count = 11;break;case "Q":count = 12;break;case "K":count = 13;break;}return count;}public int valuesOfColor(Poker poker) { // 花色的权值int values = 0;switch (poker.point) {case "黑桃":values = 4;break;case "红桃":values = 3;break;case "梅花":values = 2;break;case "方块":values = 1;break;}return values;}
}
package com.zyy.java;import java.util.List;public class SendPoker {// Player[] players = new Player[4];public Player[] sendPoker(Player[] ps, List washedCards) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 5; j++) {Poker temp = new Poker();temp = (Poker) washedCards.get(i * 4 + j);ps[i].setOneOfPocket(j, temp);}}return ps;}}
package com.zyy.java;import java.util.Collections;
import java.util.List;
//洗牌
public class Shuffle {List washedCards;public Shuffle(List cardsAll){washedCards = cardsAll;Collections.shuffle(washedCards);}public List getWashedCards(){return washedCards;}
}
package com.zyy.java;public class View {Player player = new Player();public void view(Player[] players) {for (int j = 0; j < 4; j++) {System.out.print(players[j].getName() + "的牌为:");for (int i = 0; i < 5; i++) {System.out.print(players[j].getOneOfPocket(i) + "\t");}// System.out.println(players[j].getIsBull());if ((players[j].getIsBull() == true) && (players[j].getPointOfBull() != 0)) {System.out.println(" 【牛" + players[j].getPointOfBull() + "】"  + ": 最大的牌是"+ player.getBiggestCards(players[j].getPocket()).getColor() + player.getBiggestCards(players[j].getPocket()).getPoint());} else if((players[j].getIsBull() == true) &&  (players[j].getPointOfBull() == 0)){System.out.println(" 【牛牛】"  + ": 最大的牌是"+ player.getBiggestCards(players[j].getPocket()).getColor() + player.getBiggestCards(players[j].getPocket()).getPoint());}else{System.out.println("   没牛:最大的牌是" + player.getBiggestCards(players[j].getPocket()).getColor()+ player.getBiggestCards(players[j].getPocket()).getPoint());}}}
}

java实现牛牛游戏源代码相关推荐

  1. java怎么跑游戏_RunGame java赛跑小游戏源代码和素材,适合新手入门练手。 Develop 272万源代码下载- www.pudn.com...

    文件名称: RunGame下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1650 KB 上传时间: 2017-03-11 下载次数: 0 提 供 者: kek ...

  2. java制作纯字rpg小游戏_求java rpg小游戏源代码 最好是文字rpg 不需要很复杂 只是交作业用...

    展开全部 连连看的小源码 package Lianliankan; import javax.swing.*; import java.awt.*; import java.awt.event.*; ...

  3. java开发桌球游戏源代码_Java学习的开端小游戏----桌球游戏

    此小游戏只为让Java初学者感受到学习Java的乐趣,不为严谨. 以下是完整代码: package com.bjsxt.game; import java.awt.Graphics; import j ...

  4. java打字小游戏源码_求JAVA编写打字游戏源代码!

    展开全部 package chen; import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; ...

  5. java版扫雷游戏源代码

    package com.bomb.UI; import javax.swing.JButton; import java.awt.*; import javax.swing.*; import jav ...

  6. java web小游戏_用java web小游戏源代码。期末结课老师让做,急用,谢了

    展开全部 import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import javax. ...

  7. java桌球小游戏源代码,下载量瞬秒百万

    蚂蚁花呗第一次技术面(60min): Java容器有哪些?哪些是同步容器,哪些是并发容器? ArrayList和LinkedList的插入和访问的时间复杂度? java反射原理, 注解原理? 说说一致 ...

  8. 推箱子游戏 java源代码_java推箱子游戏源代码(含推箱子的判断)

    <java推箱子游戏源代码(含推箱子的判断)>由会员分享,可在线阅读,更多相关<java推箱子游戏源代码(含推箱子的判断)(6页珍藏版)>请在人人文库网上搜索. 1.第一个Ja ...

  9. eclipse如何做java游戏,:#急需基于eclipse的JAVA小游戏源代码!!!#-南开游戏网...

    #急需基于eclipse的JAVA小游戏源代码!!!# 2020-11-07 10:21:13 广告 急需基于eclipse的JAVA小游戏源代码!!! maxueruby001@163.COM 楼主 ...

最新文章

  1. 更快的 Maven 来了!!!性能提升 300%
  2. 关于Qt的事件循环以及QEventLoop的简单使用
  3. Python 抓取数据存储到Mysql中
  4. jQuery clearQueue
  5. 12.1、Libgdx的图像之持续性和非持续性渲染
  6. jQuery用正则查找元素:jQuery选择器使用
  7. 基于FPGA实现uart串口模块(Verilog)--------发送模块及整合
  8. robot frame基础知识--变量
  9. ( # #@ ## 在define中的应用)或( 连接两个字符串或者两个数字、强制转化成单引号、强制转化成双引号 )附加字符串强制转化成数字...
  10. python编程正方形面积_编程里面的算法真的很难吗?
  11. iOS开发:报错The sandbox is not in sync with the Podfile.lock. Run ‘pod install‘ …的解决方法
  12. 酷!有人把火星车都造出来了,教程全面开源
  13. 基于Python的COVID-19背景下的网络社会心态变化数据分析
  14. Vue-cli的安装与基本操作
  15. MCtalk对话尚德机构:AI讲师,假套路还是真功夫?
  16. ECCV2020超分辨率方向论文整理笔记
  17. 【HDR学习】HDR视频相关知识讲解(一)
  18. 数据结构算法---八大排序
  19. 08级北京大学计算机学院李益,保送北京大学2008届的研究生花名册.pdf
  20. JS手机号码检验正则表达式

热门文章

  1. 图像处理之_ARToolKit自定义Marker
  2. mac pro M1(ARM)安装:ubuntu桌面版虚拟机(五)
  3. ai水墨晕染效果_AI可能是一位优秀的西方画家,但它在中国水墨画中表现良好吗?...
  4. 关于傅立叶变换的频率分辨率,采样时间,采样率关系
  5. webstorm2020背景和字体_怎么为WebStorm更换主题 修改字体样式
  6. Xcode 禁用indexing
  7. 校园网服务器系统方案设计,校园网服务器系统项目设计方案.pdf
  8. 面试官:为什么 MySQL 使用 B+ 树?
  9. “远端www服务支持TRACE请求“验证及修复jetty,非框架,内嵌版本
  10. 图片处理算法工程师面试及笔试