卡牌类

package pukepai;

public class Cards implements Comparable{

private String huase;

private String shuzi;

//定义扑克的所有属性

public static String[] HUASE = new String[]{"黑桃", "红桃", "梅花","方块"};

public static String[] DAXIAO = new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

//Cards 构造函数 对属性进行赋值

public Cards(String huase, String shuzi) {

super();

this.huase = huase;

this.shuzi = shuzi;

}

public Cards() {

// TODO 自动生成的构造函数存根

}

public String getHuase() {

return huase;

}

public void setHuase(String huase) {

this.huase = huase;

}

public String getShuzi() {

return shuzi;

}

public void setShuzi(String shuzi) {

this.shuzi = shuzi;

}

@Override

public String toString() {

return this.huase+this.shuzi;

}

public int compareTo(Cards o) {

// TODO 自动生成的方法存根

if(getIntDaxiao(this)==getIntDaxiao(o)){

if(getintHuase(this)

return 1;

}else if(getIntDaxiao(this)

return -1;

}else

{

return 0;

}

return 0;

}

//获得花色的数组索引号

int getintHuase(Cards card){

for(int i = 0;i<4;i++){

if(card.getHuase().equals(HUASE[i])){

return i;

}

}

return -1;

}

//获得卡牌大小的数组索引号

int getIntDaxiao(Cards card){

for(int i = 0;i <13; i++){

if(card.getShuzi().equals(DAXIAO[i])){

return i;

}

}

return -1;

}

//比较较大的卡牌

Cards bigCard(Cards ca){

if(this.getIntDaxiao(this)==ca.getIntDaxiao(ca)){

if(this.getintHuase(this)==ca.getintHuase(ca)){

return ca;

}

}else if(this.getIntDaxiao(this)

return ca;

}else{

return this;

}

return ca;

}

}

用户类

package pukepai;

import java.util.ArrayList;

import java.util.List;

public class Users implements Comparable{

private int ID;

private String name;

// 每个用户手中的手牌

public List cards = new ArrayList();

public Users(int iD, String name) {

this.ID = iD;

this.name = name;

}

public Users() {

super();

}

public int getID() {

return ID;

}

public void setID(int iD) {

this.ID = iD;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

//重写比较方法

public int compareTo(Users o) {

// TODO 自动生成的方法存根

int compare = this.cards.get(1).compareTo(o.cards.get(1));

return compare;

}

}

主类

package pukepai;

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashMap;

import java.util.InputMismatchException;

import java.util.List;

import java.util.Map;

import java.util.Scanner;

public class Main {

static int k=0;

public static void main(String[] args) {

// TODO 自动生成的方法存根

//创建一个card 的引用

Cards card = new Cards();

//创造一副新扑克牌

Cards[] cards = new Cards[52];

//用于保存洗乱后的扑克牌

Cards[] newCards = new Cards[52];

//对扑克牌进行初始化

for(int i = 0; i<52; i++){

cards[i] = new Cards(card.HUASE[i/13],card.DAXIAO[i%13]);

}

System.out.println("----------创建扑克牌----------");

System.out.println("---------初始化扑克牌---------");

for(int i =0;i<52;i++){

System.out.print(cards[i].toString()+" ");

}

//生成一组1-52的乱序数

List cardlist = new ArrayList();

List user = new ArrayList();

Users user1 = new Users();

Users user2 = new Users();

user.add(user1);

user.add(user2);

for(int i = 0; i < 52; i++){

cardlist.add(i);

}

//开始洗牌

Collections.shuffle(cardlist);

//洗牌结束

System.out.println("\n--------------洗牌结束------------");

for(int i = 0; i<52; i++){

newCards[i]=cards[cardlist.get(i)];

}

// for(int i = 0; i<52; i++){

// System.out.print(newCards[i].toString()+" ");

// }

Scanner input = new Scanner(System.in);

System.out.println("\n--------------创建玩家------------");

try{

System.out.println("请输入第一个玩家的Id和姓名:");

System.out.println("输入ID:");

user1.setID(input.nextInt());

System.out.println("输入姓名:");

user1.setName(input.next());

System.out.println("请输入第二个玩家的Id和姓名:");

System.out.println("输入ID:");

user2.setID(input.nextInt());

while(user2.getID()==user1.getID()){

System.out.println("输入错误!请重新输入:");

user2.setID(input.nextInt());

}

System.out.println("输入姓名:");

user2.setName(input.next());

}catch(InputMismatchException e){

System.out.println("输入类型不匹配!");

}

System.out.println("------欢迎玩家:"+user1.getName());

System.out.println("------欢迎玩家:"+user2.getName());

System.out.println("---------开始发牌---------");

for(int i = 0; i < 4; i++){

if(i%2==0){

System.out.println("--------玩家:"+user1.getName()+"拿牌");

user1.cards.add(newCards[k++]);

}else{

System.out.println("--------玩家:"+user2.getName()+"拿牌");

user2.cards.add(newCards[k++]);

}

}

System.out.println("-----------------发牌结束------------------");

System.out.println("-----------------开始游戏------------------");

//对手牌进行排序

Collections.sort(user1.cards);

Collections.sort(user2.cards);

Collections.sort(user);

System.out.println("---------恭喜玩家:"+user.get(1).getName()+"获胜");

System.out.println("---------玩家:"+user1.getName()+"最大手牌为:"+user1.cards.get(1));

System.out.println("---------玩家:"+user2.getName()+"最大手牌为:"+user2.cards.get(1));

System.out.println("---------玩家:"+user1.getName()+"手牌为"+user1.cards.get(0)+" "+user1.cards.get(1));

System.out.println("---------玩家:"+user2.getName()+"手牌为"+user2.cards.get(0)+" "+user2.cards.get(1));

System.out.println("---------恭喜玩家:"+user.get(1).getName()+"获胜");

}

}

php简单扑克游戏,完整版简易扑克牌游戏代码开发相关推荐

  1. 数据结构几个最简单的阐述完整版(带你入门:链表,栈,队列,哈希表,树)通俗易懂简单明了

    数据结构几个最简单的阐述完整版 一.链表(Linked list): 如下图是一个链表: 1.链表是无须存储在连续的空间内,一般都是分散存储于内存中.(指针是指向下一个数据的内存地址) 2.所有要访问 ...

  2. Java入门第三季-综合实战:简易扑克牌游戏

    一.概述 第三季的综合实战部分是写一个简易扑克牌游戏,功能实现要求如下: 1.创建一副扑克牌 包括四种花色: 黑桃 红桃 梅花 方片 十三种点数 2-10,JQKA,不考虑大小王 2.创建两名玩家 玩 ...

  3. 7-1简易扑克牌游戏-洗发牌Easy版

    7-1简易扑克牌游戏-洗发牌Easy版 代码下载地址 http://download.csdn.net/download/qq_29132907/10253247 1.Gamer.java packa ...

  4. Unity源码分享-黄金矿工游戏完整版

    Unity源码分享-黄金矿工游戏完整版 项目地址:https://download.csdn.net/download/Highning0007/88118933

  5. 老男孩Python自动化开发12期完整版(含作业代码课件)

    老男孩Python自动化开发12期完整版(含作业代码课件) 链接:https://pan.baidu.com/s/1zCKn_VjstbCfTYCHCBKZgQ 密码:zujz 转载于:https:/ ...

  6. 简易扑克牌游戏JAVA源码_新手上路

    下面来看看具体代码的实现: 一.entity包 1.裁判类 package entity; /*** 裁判* @author Geek* @version 1.0* @date 2018年6月22日 ...

  7. 扑克牌游戏java代码_java实现简易扑克牌游戏

    本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下 游戏功能描述 1.创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 2. ...

  8. java编写简易扑克牌游戏

    游戏功能描述 创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 创建两名玩家(or多名) 玩家至少要有ID,姓名,手牌等属性,手牌为扑克牌的集合 将创建 ...

  9. c语言 扑克牌大小,C语言实现简易扑克牌游戏

    将一副扑克牌平均分成两份,每人拿一份.a先拿出手中的第一张扑克牌放在桌上,然后b也拿出手中的第一张扑克牌,并放在a刚打出的扑克牌的上面,就像这样两人交替出牌.出牌时,如果某人打出的牌与桌上某张牌的牌面 ...

最新文章

  1. 《HTML5与CSS3实例教程》
  2. 已拿30K offer!感谢这几个公众号提供的各种学习教程
  3. 算法 --- 删除数组中重复项
  4. Python文件操作-文件的增删改查
  5. Eclipse Juno上带有GlassFish的JavaEE 7
  6. python监听键盘库_python监听、操作键盘鼠标库pynput详细教程|python基础教程|python入门|python教程...
  7. CentOS 7.4 ifconfig, ip/ss, nmcli, nmtui, 配置文件 修改ip信息用法
  8. 网关gateway解决跨域问题
  9. Redis面试刁难大全
  10. 一步一步学Entity Framework 4(2)
  11. js数组常用方法总结(包括ES6)
  12. STM32F103ZET6利用DAC产生噪声
  13. 最新教程:M1芯片的Mac电脑进入恢复模式?
  14. Spring Boot 2.0.3 修改 Servlet 容器(服务器)配置
  15. 分享一些查询资源的网站
  16. [论文写作] Wrong vs Mistake vs Error vs Incorrect vs Erroneous
  17. 5G工业无线RTU TG511功能配置
  18. 【程序源代码】小电影小程序
  19. 这套表情包,居然开源了!!
  20. CODE[VS] 3837 台风 题解

热门文章

  1. 前端:医院挂号平台(html+css+jquery)
  2. AD中给大电流开窗时把顶层动态铺铜Polygon变成阻焊层静态Region的方法
  3. Markdown之改变 字体、字号与颜色
  4. acacm icpc java_Java在acm-icpc的应用
  5. python xpath入门_xpath 的使用
  6. 安卓基础-day03-20180118
  7. 程序员的上帝视角(3)-纯粹
  8. ArcGIS license server administrator无法启动问题
  9. JavaFX学习资料,超详细
  10. JVET H.266编码技术amp;JEM编码平台关键技术整理分析