首页 > IT职业 > IT图书 > Java入门第三季7.1简易扑克牌编码
所有的代码放在一个文件里就可以运行,文件名是:入口类名.java
卡牌的比较是通过将点数和花色放在不同的数组里,然后利用数组下标来比较大小
洗牌是通过不断将第一个位置的卡牌插入随机位置来实现的
用户的ID设定必须是数字且不能相同
下边是代码,注释还是很完备的,有问题留言,我们一起交流一下
PS:我再也不发原创了,太麻烦了T_T
入口类
import java.util.*;
public class PalyCard
{
public static void main(String[] args)
{
Game gm=new Game();
gm.setCards();//获取卡牌
gm.shuffle();//洗牌
gm.setPlayers();//获取用户
gm.dealCards();//发牌
gm.playCards();//开始游戏
gm.showCards();//展示卡牌
}
} 游戏主体
class Game
{
private List cards;
private List players;
Game(){
cards=new ArrayList();
players=new ArrayList();
}
//初始化卡牌
void setCards(){
System.out.println("-----------创建扑克牌--------------");
String[] suits={"黑桃","红桃","梅花","方片"};//花色
String[] numbers={"2","3","4","5","6","7","8","9","10",
"J","Q","K","A"};//点数
for(int i=0;i0 ? players.get(0).name:players.get(1).name;//条件语句,相当于if...else
System.out.println("-----------玩家:"+name+"获胜!--------------");
}
//展示手牌
void showCards(){
System.out.println("-----------玩家手牌展示--------------");
System.out.println(players.get(0)+""+players.get(0).cards);
System.out.println(players.get(1)+""+players.get(1).cards);
}
} 用户类
//用户类,为了防止ID重复,重写了equals,这样可以调用contains判断
class Player
{
public String id;
public String name;
public List cards;
Player(String id, String name){
this.id=id;
this.name=name;
cards=new ArrayList();
}
void setCards(Card c){
cards.add(c);
}
//重写toString只是为了写程序的时候测试用着方便
public String toString(){
return "Name:"+name;
}
public boolean equals(Object o){
if(this==o)return true;
if(o==null)return false;
if(!(o instanceof Player))return false;
Player p=(Player)o;
return Objects.equals(id,p.id);
}
} 卡牌类
//要比较卡牌的大小,所以要添加比较方法
class Card implements Comparable
{
public String suit;//花色
public String number;//点数
Card(String suit, String number){
this.suit=suit;
this.number=number;
}
//展示卡牌信息用
public String toString(){
return suit+number;
}
//实现比较方法
public int compareTo(Card c){
if(this.getNumberNum()==c.getNumberNum())
return this.getSuitNum()-c.getSuitNum();
else return this.getNumberNum()-c.getNumberNum();
}
//获取点数排序
int getNumberNum(){
String[] numbers={"2","3","4","5","6","7","8","9","10",
"J","Q","K","A"};
for(int i=0;i 来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4571/viewspace-2798621/ ,如需转载,请注明出处,否则将追究法律责任。