转载

Java实现简单的抽牌游戏

本文实例为大家分享了Java实现简单抽牌游戏的具体代码,供大家参考,具体内容如下

Main类

package com.company;

import java.util.*;

public class Main
{

  public static void main(String[] args)
  {
    Poke p = new Poke();
    p.shuffle();
    System.out.println("您想抽几张牌?");
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    System.out.println("抽取了"+n+"张牌,分别为:");
    Card[] c = p.draw(n);
    for (Card g :c ) System.out.print(g);
    System.out.println();
    p.sortOut(c);
    System.out.println("理牌完成!");
    for (Card g :c ) System.out.print(g);
  }
}

Poke类

package com.company;

import java.util.Arrays;

/**
 * Created by ttc on 16-11-2.
 */
public class Poke
{
  Card[] m_card = null;
  int[] values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
  String[] colors = {"♡", "♠", "♢", "♧"};

  public Poke()
  {
    m_card = new Card[52];
    for (int i = 0; i < colors.length; i++)
    {
      for (int j = 0; j < values.length; j++)
      {
        m_card[i * values.length + j] = new Card(values[j], colors[i]);
      }
    }
  }

  public void outPut()
  {
    //展示当前牌序
    for (int i = 0; i < m_card.length; i++)
    {
      if (i % 13 == 0) System.out.println();
      System.out.print(m_card[i]);
    }
  }

  public void shuffle()
  {
    //洗牌
    Card tempC = null;
    for (int i = 0; i < 52; i++)
    {
      tempC = m_card[i];
      int j = (int) (Math.random() * 51);
      m_card[i] = m_card[j];
      m_card[j] = tempC;
    }
    System.out.print("洗牌完成!");
  }

  public Card[] draw(int n)
  {
    //抽N张牌
    Card[] c = new Card[n];
    for (int i = 0; i < n ; i++) c[i] = m_card[i];
    return c;
  }

  public void sortOut(Card[] c)
  {
    //理牌
    Arrays.sort(c);
  }
}

Card类

package com.company;

/**
 * Created by ttc on 16-11-2.
 */
public class Card implements Comparable
{
  private int m_values;
  private String m_colors;

  public Card(int m_values, String m_colors)
  {
    this.m_values = m_values;
    this.m_colors = m_colors;
  }

  @Override
  public int compareTo(Object o)
  {
    if (this.m_values > ((Card)o).m_values) return 1;
    else if(this.m_values == ((Card)o).m_values) return 0;
    else return -1;
  }

  @Override
  public String toString()
  {
    String strtmp;
    switch (m_values)
    {
      case 1:
        strtmp = "A";
        break;
      case 11:
        strtmp = "J";
        break;
      case 12:
        strtmp = "Q";
        break;
      case 13:
        strtmp = "K";
        break;
      default:
        strtmp = String.valueOf(m_values);
    }
    return m_colors + strtmp + "/t";
  }
}

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

时间:2020-04-22

使用java对一副扑克牌建模

本文实例为大家分享了java对一副扑克牌建模的具体代码,供大家参考,具体内容如下 第一步:使用枚举法对一副扑克牌(52张牌,不包括大小王)进行建模:一副扑克牌共有四种花色分别是:黑桃,方块,梅花,红心:而每种花色的牌一共有13张: import java.util.EnumMap; import java.util.EnumSet; public class EnumSetTest { //枚举类型Suit enum Suit{"HEART ","SPADE ",&

java和js实现的洗牌小程序

这几天刚学了java和javascript,简单写了个用java和javascript的小程序 JavaScript的 // An highlighted block var colors = ['红桃','梅花','方片','黑桃'] var numbers = ['2','3','4','5','6','7','8','9','10','J','Q','K','A'] var puke = new Array(); var cards = new Array(); for (var i =

Java实现扑克牌洗牌和发牌

本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下 实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中:通过把集合数据排序打乱实现洗牌操作,然后在通过循环把牌抽出来实现发牌操作. 下面是实现代码: import java.util.ArrayList; import java.util.Collections; public class Card { private static ArrayList<String> list = new Array

java用扑克牌计算24点

一副扑克牌的每张牌表示一个数(J.Q.K 分别表示 11.12.13,两个司令都表示 6).任取4 张牌,即得到 4 个 1~13 的数,请添加运算符(规定为加+ 减- 乘* 除/ 四种)使之成为一个运算式.每个数只能参与一次运算,4 个数顺序可以任意组合,4 个运算符任意取 3 个且可以重复取.运算遵从一定优先级别,可加括号控制,最终使运算结果为 24.请输出一种解决方案的表达式,用括号表示运算优先.如果没有一种解决方案,则输出 -1 表示无解. 输入格式: 输入在一行中给出 4 个整数,每个

Java扑克牌速算24的方法

已知一副扑克牌有54张,去除大王和小王,剩余52张.在其中随机抽取4张牌,利用加减乘除进行计算得到24. 从A到10,他们的值分别为1到10. 从J到K,他们对应的值是减去10以后的值.编写程序生成一副扑克牌,随机抽取4张,进行计算是否能得到24. 如果可以,列出可能的计算表达式,可能有多种计算形式. 主要思想就是先生成除去大小王的52张扑克牌,然后从中随机抽取四张.接着用排列组合的方式找到能计算得到24的表达式. package Poker; import java.util.Random;

java实现简易扑克牌游戏

本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下 游戏功能描述 1.创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 2.创建两名玩家(or多名) 玩家至少要有ID,姓名,手牌等属性,手牌为扑克牌的集合 3.将创建好的扑克牌进行随机洗牌 4.从洗牌后的扑克牌的第一张开始,发给每个玩家,按照一人一张的方式,每人发两张(or多张) 5.比较两名玩家手中的扑克牌,比较规则为:取两人各自手中点数最大的牌进行比较,点数大的赢:若

java实现24点纸牌游戏

本文题目为大家分享了java实现24点纸牌游戏的具体代码,供大家参考,具体内容如下 题目 24点游戏是经典的纸牌益智游戏. 常见游戏规则: 从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏. 基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题. 分析 用穷举法列出四个数加上三个运算符号所构成的表达式所有

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模拟实现斗地主发牌小程序

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

java实现模仿斗地主发牌

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

Java 中模仿源码自定义ArrayList

Java 中模仿源码自定义ArrayList 最近看了下ArrayList的源码,抽空根据ArrayList的底层结构写了一个功能简单无泛型的自定义ArrayLsit,帮助自己更好理解ArrayList:,其实现的底层数据结构为数Object组,代码如下: /** * 自己实现一个ArrayList * */ public class MyArrayList { private Object[] elementData; private int size; public int size(){

Java实现洗牌发牌的方法

本文实例讲述了Java实现洗牌发牌的方法.分享给大家供大家参考.具体如下: import java.util.*; public class Main { /** * @param args the command line arguments */ static int numbersOfPlayers = 4; static int numbersOfHandCard = 13; public static void main(String[] args) { // TODO code ap

python模拟实现斗地主发牌

题目:趣味百题之斗地主 扑克牌是一种非常大众化的游戏,在计算机中有很多与扑克牌有关的游戏.例如,在Windows操作系统下自带的纸牌.红心大战等.在扑克牌类的游戏中,往往都需要执行洗牌操作,就是将一副牌完全打乱,使其排列没有规律. 要求: 1.54张扑克牌发个3个玩家,农民17张,地主20张. 2.自动生成一幅扑克牌组:洗牌:发牌到玩家手中:将玩家手中扑克牌按花色大小整理好.** ''' 趣味百题-发扑克牌-斗地主 请编程实现发扑克牌 Version: 0.1 Author: jasn Date

java简单模仿win10计算器

Java实现简单的抽牌游戏

本文实例为大家分享了Java实现win10计算器的具体代码,供大家参考,具体内容如下 这个小demo是我上学时的远古代码(嘻嘻嘻),今天整理代码时看到的,看着以前的代码,突然感觉这些是啥?看不懂了都,而且写得也不规范. 运行一下,还是可以的,先截张图 试了一下,bug还是有的,但是可以基本的运算,有兴趣的可以试一下 代码就贴在这里: package com.waking.call; import java.awt.BorderLayout; import java.awt.Dimension;

java编程基础之模仿用户登录代码分享

上一篇文章我们了解了Java背包问题求解实例代码,接下来我们看看Java中模仿用户登录的相关代码,下面是具体内容. 基于用户从控制台输入模拟的简陋用户登录验证Demo原理: 利用 Scanner 类中 nextLine() 提取用户从控制台输入的字符串信息 利用 String 类的 equals 方法进行用户输入验证 import java.util.Scanner; public class Login { public static void main(String[] args) { //

Java模拟扑克牌洗牌实现生成52张扑克的方法示例

本文实例讲述了Java模拟扑克牌洗牌实现生成52张扑克的方法.分享给大家供大家参考,具体如下: 要求: 生成52张扑克,模拟扑克牌洗牌,并输出. 实现代码: package com.NCU.ZHANGhuirong; import java.util.ArrayList; import java.util.Collections; public class Card { public String poker(int num) { String str = ""; String[] f

java模仿windows计算器示例

Java实现简单的抽牌游戏

这个计算器的界面模仿Windows自带的简易计算器,包括交互界面和和对各种输入的响应.目前尚未实现菜单栏和记忆类按钮的功能 复制代码 代码如下: import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import

详解java实现简单扫码登录功能(模仿微信网页版扫码)

Java实现简单的抽牌游戏

java实现简单扫码登录功能 模仿微信pc网页版扫码登录 使用js代码生成qrcode二维码减轻服务器压力 js循环请求服务端,判断是否qrcode被扫 二维码超时失效功能 二维码被扫成功登录,服务端产生sessionId,传到页面使用js保存cookie 多线程 生成qrcode相关js jquery.qrcode.js 代码 页面div <div class="pc_qr_code"> <input type="hidden" id="

java实现斗地主游戏

Java实现简单的抽牌游戏

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

原文  https://www.zhangshengrong.com/p/LKa40qo3aQ/
正文到此结束
Loading...