VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1050|回复: 7

求JAVA扑克代码

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-10 15:40:01 | 显示全部楼层 |阅读模式
很简单,每次每人发5张牌,比大小就可以.  
比如顺子大于对子 ,对子大于散牌.
一共54张,小于10张时重新发牌
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-7 12:15:01 | 显示全部楼层
两张司令牌怎么算
回复

使用道具 举报

1

主题

51

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-2-18 10:00:01 | 显示全部楼层
google baidu
回复

使用道具 举报

0

主题

23

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-7-29 22:00:01 | 显示全部楼层
你没有说老王怎么判断,我就没办法了,写了一个,希望对你有帮助,这个程序没有对牌的比较,首先是不知道老王这两张牌你想怎么比,还有就是懒得写了.请看吧.


import java.util.*;


class Pockers extends Stack  //这是一副牌的类,里面有54张牌,wash方法为洗牌,继承堆栈,因为摸牌本来就是取上面一张.
{
  public Pockers()
  {
    this.add(new Pocker(Pocker.JOCKER_BLACK));
    this.add(new Pocker(Pocker.JOCKER_RED));  //加入两个老王
    for(int i=2;i<=14;i++)
      for(int j=1;j<=4;j++)
      {
        this.add(new Pocker(i,j));     //加入牌,j为花色
      }
    for(int i=1;i<=4;i++) wash();   //洗牌四次
  }
  public void wash()
  {
    Pocker temp=null;
    Random r=new Random();
    for(int i=0;i<54;i++)
    {
      temp=(Pocker)this.pop();
      this.insertElementAt(temp,Math.abs(r.nextInt()%54));  //将第i张牌插入到这副牌随机位置
    }
  }
  public boolean needReWash()  //判断是否要重洗.
  {
    return this.elementCount<10;
  }
  
  public void output()  //这个是写程序测试用的.
  {
    for(int i=0;i<54;i++)
    {
      ((Pocker)this.get(i)).output();
    }
  }
}

class Player  //玩家类
{
  String name;
  public Pocker[] recieve=new Pocker[5];
  public Player(int i)
  {
    if(i==1) name="玩家1";
    else name="玩家2";
  }
  public void getPocker(Pocker pocker,int queue)  //得牌一张
  {
    recieve[queue]=pocker;
  }
  public void showPocker()  //显示玩家的牌
  {
    System.out.println(name+"的牌为:");
    for(int i=0;i<5;i++)
    {
      recieve[i].output();
    }
    System.out.println();
  }
}

class Judge  //裁判
{
  public static void compare(Player player1,Player player2)  //比较玩家的牌
  {
   
  }
  public static void give(Pockers p,Player p1,Player p2)    //发牌.
  {
    for(int i=0;i<5;i++)
    {
      p1.getPocker((Pocker)p.pop(),i);
      p2.getPocker((Pocker)p.pop(),i);
    }
  }
}

class Pocker   //一张牌类
{
  static int BLOCK=1;
  static int FLOWER=2;
  static int HEART=3;
  static int PEACH=4;  //本来开始打算用的花色字段,可惜没有用上.唉
  static int JOCKER_RED=20;
  static int JOCKER_BLACK=10;  
  
  public int number,flower;
  public Pocker(int number,int flower)  //构造1,它是对一般牌的构造
  {
    this.number=number;
    this.flower=flower;
  }
  public Pocker(int flower) //这个构造是用来构造jocker牌的.
  {
    this(100,flower);
  }
  public void output()  //输出这一张牌,这儿用的是"(大小,花色)"格式.
  {
    System.out.print("("+number+","+flower+")");
  }
}

public class a  //游戏主函数.
{
  public static void main(String[] args)
  {
    Pockers p=new Pockers();
    Player player1=new Player(1);
    Player player2=new Player(2);
    Judge.give(p,player1,player2);
    player1.showPocker();
    player2.showPocker();
    /*
    Judge.compare(player1,player2);  //这儿没有写比较函数,这个浪费时间,懒得写,而且你没有说明JOCKER这张牌该怎么算,写了也白写,这个要你自己去写了,呵呵,方法写在Judge类的compare方法里,你可以适当的改一下,或者新建一个类什么的.呵呵.
    */
  }
}
回复

使用道具 举报

0

主题

23

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-7-29 22:15:01 | 显示全部楼层
结果只能到这样:因为没有比较牌

玩家1的牌为:
(2,4)(7,2)(13,4)(2,1)(9,3)
玩家2的牌为:
(4,3)(6,1)(4,2)(9,4)(11,1)
.......
回复

使用道具 举报

0

主题

9

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-8-4 21:45:01 | 显示全部楼层
mark
回复

使用道具 举报

2

主题

11

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-8-5 09:15:02 | 显示全部楼层
完全的面向对象啊,学习ing
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-9-1 15:15:01 | 显示全部楼层
有收获  写的号!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表