Java实现简单的斗地主游戏

本文实例为大家分享了Java实现斗地主游戏的具体代码,供大家参考,具体内容如下

原理图:

斗地主过程:

1、组合牌
 * 2、洗牌
 * 3、发牌
 * 4、看牌

代码实现:

package itcast.demo6;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

public class DouDiZhu {
 public static void main(String[] args) {
 //1、组合牌
 //创建Map集合,键:编号   值:牌
 HashMap<Integer,String> pooker = new HashMap<Integer,String>();
 //创建List集合,存储编号
 ArrayList<Integer> pookerNumber = new ArrayList<Integer>();
 //定义13个点数的数组
 String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
 //定义4个花色组合
 String[] colors = {"♠","♣","♥","♦"};

 //定义一个整数变量,作为Map的键
 int index = 2;
 //遍历数组,用花色+点数的组合,存储到Map集合中
 for(String number : numbers) {
  for(String color : colors) {
  pooker.put(index, color + number);
  pookerNumber.add(index);
  index++;
  }
 }
 //System.out.println(pooker);
 //System.out.println(pookerNumber);

 //单独存储大王和小王
 pooker.put(0, "大王");
 pookerNumber.add(0);
 pooker.put(1, "小王");
 pookerNumber.add(1);

 //洗牌,将牌的编号打乱
 Collections.shuffle(pookerNumber);
 //System.out.println(pookerNumber);

 //发牌,将牌编号,发给3个玩家集合+1个底牌集合
 ArrayList<Integer> player1 = new ArrayList<Integer>();
 ArrayList<Integer> player2 = new ArrayList<Integer>();
 ArrayList<Integer> player3 = new ArrayList<Integer>();
 ArrayList<Integer> buttom = new ArrayList<Integer>();
 //发牌,采用的是集合的索引%3
 for(int i = 0; i < pookerNumber.size();i++) {
  //现将底牌做好
  if(i<3) {
  //存到底牌去
  buttom.add(pookerNumber.get(i));
  //对索引%3判断
  }else if(i % 3 == 0) {
  //索引上的编号,发给玩家1
  player1.add(pookerNumber.get(i));
  }else if(i % 3 == 1) {
  //发给玩家2
  player2.add(pookerNumber.get(i));
  }else if(i % 3 == 2) {
  //发给玩家3
  player3.add(pookerNumber.get(i));
  }
 }
 //对玩家手中的编号进行排序
 Collections.sort(player1);
 Collections.sort(player2);
 Collections.sort(player3);

 //看牌,就是将玩家手中的编号,到Map集合中查找,根据键找值
 //定义实现方法
 look("包身工 ",player1,pooker);
 look("清洁工 ",player2,pooker);
 look("洗碗工 ",player3,pooker);
 look("底牌   ",buttom,pooker);
 }

 public static void look(String name,ArrayList<Integer> player,HashMap<Integer,String> pooker) {
 //遍历ArrayList集合,获取元素,作为键,到集合Map中找值
 System.out.print(name+" ");
 for(Integer key : player) {
  String value = pooker.get(key);
  System.out.print(value+" ");
 }
 System.out.println();
 }
}

运行结果:

包身工   大王 ♣2 ♥2 ♦2 ♦A ♦K ♣J ♥10 ♠9 ♣9 ♥9 ♦9 ♣5 ♦5 ♦4 ♠3 ♦3 
清洁工   小王 ♠K ♥K ♠Q ♣Q ♦Q ♦J ♠10 ♦10 ♥8 ♠7 ♥7 ♦7 ♥5 ♠4 ♣3 ♥3 
洗碗工   ♠2 ♥A ♣K ♥Q ♠J ♥J ♣10 ♠8 ♦8 ♣7 ♠6 ♣6 ♥6 ♦6 ♠5 ♣4 ♥4 
底牌       ♠A ♣A ♣8

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现模仿斗地主发牌

    本文实例为大家分享了java斗地主发牌的具体代码,供大家参考,具体内容如下 分析 这是一个模仿斗地主发牌的例子: 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 用0~53分别对应相应的花色和牌面值: 用shuffle随机打乱排序好的数字,起到洗牌的作用: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 实现方式 准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每

  • 详解java_ 集合综合案例:斗地主

    案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 1.准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色 集合与数字集合嵌套迭代完成每张牌的组装. 牌由Collections类的shuffle方法进行随机排序. 2.发牌 将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌. 3.看

  • java模拟实现斗地主发牌小程序

    一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程 首先,我们需要买牌,新买来的牌都是按顺序摆放的,因此下一步是洗牌,最后就是发牌了,不过发牌的时候要注意还要在最后留三张底牌. 主要使用的类有 ArrayList:用来存储扑克,Collections用来洗牌. import java.util.ArrayList; import java.util.Collections; /* * 模拟斗地主发牌 一共54张牌 * 买牌 * 洗牌 * 发牌 * */ public cl

  • Java实现斗地主简化版

    本文实例为大家分享了Java实现斗地主的具体代码,供大家参考,具体内容如下 package com.westos.chinesePoker; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; /*

  • java实现斗地主游戏

    感想: 第一次写博客,感觉编辑器挺复杂厉害的,感觉自己的内容挺简单的.有什么问题请多多指教! 思路: 1.创建一个扑克牌的实体类Poker,设置了四个参数:花色.数字.牌值(判断大小).是否地主牌,实现getset方法和构造方法: 2.创建一个玩家的实体类Player,设置了四个参数: 初始牌集合,排序后牌集合,牌值集合,是否地主,实现getset方法和构造方法: 3.洗牌:循环嵌套花色数组跟数字数组生成52个Poker,手动加入大小王Poker,放进map(int,Poker)里面,利用Col

  • java实现斗地主发牌系统

    本文实例为大家分享了java实现斗地主发牌系统的具体代码,供大家参考,具体内容如下 玩家类 package com.softeem.example; import java.util.ArrayList; import java.util.List; /** * 玩家类 * */ public class Player { private String name; //名字 private boolean landowner; //是否地主 private List<Card> cards =

  • Java实现斗地主案例

    本文实例为大家分享了Java实现斗地主的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; import java.util.Collections; public class DemoPoker { public static void main(String[] args) { /** *一.准备牌 普通牌:2 A K...3 花色:♥ ♠ ♣ ♦ 王牌:大王 小王 创建一个集合,把牌组装之后存进去 */ String[] numbers = {"2&

  • Java实现简单的斗地主游戏

    本文实例为大家分享了Java实现斗地主游戏的具体代码,供大家参考,具体内容如下 原理图: 斗地主过程: 1.组合牌  * 2.洗牌  * 3.发牌  * 4.看牌 代码实现: package itcast.demo6; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class DouDiZhu { public static void main(String[]

  • Java实现简单推箱子游戏

    本文实例为大家分享了Java实现简单推箱子游戏的具体代码,供大家参考,具体内容如下 *编写一个简易的推箱子游戏,使用10*8的二维字符数据表示游戏画面,H表示墙壁; &表示玩家角色: o表示箱子,表示目的地.玩家可以通过输入a.d.w. s字符控制角色 移动,当箱子推到目的地时显示游戏结束,运行结果如图所示. package test; import java.util.Random; import java.util.Scanner; public class test3 { public s

  • 基于Java实现简单贪吃蛇游戏

    本文实例为大家分享了Java实现简单贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇小游戏制作方法 首先需要的准备有: 1.掌握Java基础知识,即Java SE 2.了解一定的GUI知识 3.自定义的贪吃蛇图片(可以在网上找到) 如果以上三点都没有,也不要紧,完全可以看我之前的博文来进行学习!!!! 学习贪吃蛇的目的 一:了解GUI 对前端的知识进行了解 二:了解监听器的作用 熟练掌握监听器(重点) 三:为枯燥乏味的学习提高兴趣(大重点!!) 贪吃蛇小游戏运行效果 设计思路: 由Game

  • Java集合案例之斗地主游戏

    本文实例为大家分享了Java集合案例之斗地主游戏的具体代码,供大家参考,具体内容如下 题目要求: 通过自制54张扑克牌,发给3人,留下3张底牌,分别显示不同人的手牌与底牌达到斗地主的游戏需求 算法思想: 1.4种花色,每种13张牌,使用for嵌套循环,产生52张牌再加入大小王 创建牌与花色: String[] hs = {"♠", "♥", "♣", "♦"}; String[] number = {"3"

  • java实现简单五子棋小游戏(2)

    本文实例为大家分享了java实现简单五子棋小游戏游戏的具体代码,供大家参考,具体内容如下 讲解 在第一步实现的基础上,添加游戏结束条件.五子棋游戏中的相同棋子如果同时有五个连接成一条线就说明游戏结束. 代码实现如下: if(count!=0){                 //判断每一行                 for(int j=0;j<11;j++){                     for(int i=0;i<7;i++){                      

  • java实现简单五子棋小游戏(1)

    本文实例为大家分享了java实现简单五子棋小游戏的具体代码,供大家参考,具体内容如下 讲解 五子棋,实际上就是用一个数组来实现的.没有其他很复杂的结构.首先我们制作五子棋,先要有一个棋盘. public void setGraphics(Graphics g){         this.g=g;         for(int i=0;i<11;i++){             g.drawLine(100+Size*i, 100, 100+Size*i, 500);           

  • Java实现简单的迷宫游戏详解

    目录 前言 主要设计 功能截图 代码实现 窗口布局 核心算法 总结 前言 人类建造迷宫已有5000年的历史.在世界的不同文化发展时期,这些奇特的建筑物始终吸引人们沿着弯弯曲曲.困难重重的小路吃力地行走,寻找真相.迷宫类小游戏应运而生.在游戏中,迷宫被表现为冒险舞台里,藏有各式各样奇妙与谜题或宝藏的危险区域.型态有洞窟.人工建筑物.怪物巢穴.密林或山路等.迷宫内有恶徒或凶猛的生物(真实存在或想像物体都有)徘徊,其中可能会有陷阱.不明设施.遗迹等. <简单迷宫>游戏是用java语言实现,采用了sw

  • java实现简单三子棋游戏

    本文实例为大家分享了java实现简单三子棋游戏的具体代码,供大家参考,具体内容如下 JOptionPane类的使用 编写程序,实现简单的三子棋游戏.在三子棋中,双方在3×3的棋盘中轮流下棋,一方用*示,另一方用O表示.如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜.如果棋盘已被棋子占满,但没有一方获胜则出现平局.在程序中,一方为用户,用户在界面上输入每次下棋的位置:另一方下棋的位置为随机自动生成.示例界面如图所示. 提示:(1) 采用Scanner类或者JOptionPane类中提

  • Java实现简单的五子棋游戏示例代码

    目录 项目结构 核心代码 ArrComparator.java类 ChessMap.java类 ChessPanel.java类 效果图展示 项目结构 这个是在网上找的资源,出处记不得了,记录一下.程序的总体结构,很简单的: 核心代码 代码如下: ArrComparator.java类 import java.util.Comparator; /** * 排序 Comparator */ class ArrComparator implements Comparator<Object> { i

  • java实现简单美女拼图游戏

    拼图小游戏,学习阶段.很多不足,改进了一下 演示图片: J_Puzzle.java import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.GridBagConstraints; import java.a

随机推荐