如何使用Java代码实现一个简单的扑克牌游戏
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"如何使用Java代码实现一个简单的扑克牌游戏"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用Java代码实现一个简单的扑克牌游戏"文章
千家信息网最后更新 2025年01月19日如何使用Java代码实现一个简单的扑克牌游戏
这篇文章主要介绍"如何使用Java代码实现一个简单的扑克牌游戏"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何使用Java代码实现一个简单的扑克牌游戏"文章能帮助大家解决问题。
功能描述
1、创建扑克牌。包括四种花色(黑桃,红心,梅花,方块),十三种点数(2-10,J,Q,K),不考虑大小王。
2、创建两个玩家。包括玩家id、姓名、手牌等集合,手牌为扑克牌的集合。
3、洗牌。将创建好的扑克牌打乱。
4、发牌。将洗牌之后的扑克牌集合,从第一张开始,发给两个玩家,安装一人 一张的方式,每人发两张。
5、游戏。比较两名玩家手中的扑克牌。规则为:去两名玩家手上点数最大的牌进行比较,点数大的赢,若点数一样大,就按照色花进行比较。
难点分析:
1、洗牌,如何将扑克牌进行打乱。(主要知识点Random,list.contains())
2、扑克牌如何进行大小比较。(主要知识点collections.sort() , comparable)
实现代码
Card.java(扑克牌类)
package com.betty.dome2; public class Card implements Comparable{ // 牌面 private String num; // 花色 private String name; public Card(){ } public Card(String num,String name){ this.num = num; this.name = name; } public String getNum() { return num; } public void setNum(String num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((num == null) ? 0 : num.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Card other = (Card) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (num == null) { if (other.num != null) return false; } else if (!num.equals(other.num)) return false; return true; } // 获取牌面大小 private Integer getNumValue(String num){ switch(num){ case "A": return 12; case "2": return 13; case "3": return 1; case "4": return 2; case "5": return 3; case "6": return 4; case "7": return 5; case "8": return 6; case "9": return 7; case "10": return 8; case "J": return 9; case "Q": return 10; case "K": return 11; } return -1; } // 获取花色大小 private Integer getNameValue(String name){ switch(name){ case "黑桃": return 4; case "红心": return 3; case "梅花": return 2; case "方块": return 1; } return -1; } @Override public int compareTo(Card card) { // 如果牌面相同就看花色 int numCompare = getNumValue(this.num).compareTo(getNumValue(card.num)); if(numCompare == 0){ return getNameValue(this.name).compareTo(getNameValue(card.name)); } return numCompare; }}
Player.java(角色类)
package com.betty.dome2; import java.util.ArrayList;import java.util.List; public class Player { // 角色id private Integer ID; // 角色姓名 private String name; // 角色获得的牌 List cardList; public Player(){ } public Player(Integer ID,String name){ this.ID = ID; this.name = name; this.cardList = new ArrayList(); } public Integer getID() { return ID; } public void setID(Integer iD) { ID = iD; } public String getName() { return name; } public void setName(String name) { this.name = name; } }Welcome.java(主程序)package com.betty.dome2; import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;import java.util.Scanner; public class Welcome { String[] nums = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; String[] names = {"黑桃","红心","梅花","方块"}; List cardStartList; // 开始创建扑克牌时的序列 List cardEndList; // 洗牌后的序列 List playerList; // 玩家列表 public Welcome(){ this.cardStartList= new ArrayList(); this.cardEndList = new ArrayList(); this.playerList = new ArrayList(); } // 创建扑克牌 void createCard(){ System.out.println("-----------创建扑克牌---------------"); for (String name : names) { for (String num : nums) { cardStartList.add(new Card(num,name)); } } System.out.println("---------扑克牌创建成功--------------"); System.out.print("["); for(int i=0;i cardList = player.cardList; Collections.sort(cardList); Card card = cardList.get(cardList.size()-1); if(maxCard.compareTo(card)<0){ maxCard = card; winner = player; } System.out.println("----玩家:"+ player.getName() + "最大的牌为:" + card.getName()+ card.getNum()); } System.out.println("-----------玩家:"+winner.getName()+"获胜----------"); System.out.println("玩家各自的手牌为:"); for(int j=0;j关于"如何使用Java代码实现一个简单的扑克牌游戏"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
扑克
扑克牌
玩家
角色
输入
知识
代码
大小
姓名
方块
点数
梅花
知识点
红心
花色
黑桃
最大
两个
序列
整数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
文件夹服务器资源管理器
网络安全与情报研判报告
郑州软件开发
浪潮服务器键盘鼠标没反应
怎么搜索泰拉瑞亚国际服服务器ip
计算机软件开发技术视频
网络安全基地武汉大学
天津铭航网络技术有限公司
天龙八部武器数据库
武汉思远网络技术有限公司
攻击服务器 犯罪
汉沽软件开发
怎么查看网站数据库版本号
软件详细设计和软件开发
我的世界服务器怎么设置禁用指令
山东通用软件开发价格对比
通讯软件访问服务器需要哪些端口
怎么辨别联想服务器内存真假
河北软件开发外包
机动通信网络技术
长沙软件开发驻场费用是多少
服务器安全监测出超级用户
济宁网络安全免费培训班
安其大数据库
深度极客网络安全博客
sql分离数据库作用
正规软件开发定制
c语言链表如何检索数据库
网络安全宣传报8k
硕博论文数据库在哪