首页 > IT职业 > IT生活 > Java--简易扑克牌游戏
package com.test.demo;
import java.util.*;
/*
* 玩家类
*/
public class Player {
private int ID;
private String name;
private List handCards; //有序 手牌List
public Player(int ID,String name)
{
this.ID = ID;
this.name = name;
this.handCards = new ArrayList();
}
public List getHandCards()
{
return handCards;
}
public void setHandCards(List handCards)
{
this.handCards = handCards;
}
public int getID()
{
return ID;
}
public String getName()
{
return name;
}
}
package com.test.demo;
import java.util.*;
public class PokerCard implements Comparable {
/*
* 扑克牌类
*/
private String Color;
private String Points;
public PokerCard(String Color,String Points)
{
this.Color = Color;
this.Points = Points;
}
public String getCardColor()
{
return Color;
}
public String getCardPoints()
{
return Points;
}
public String getCardInfo()
{
return Color + Points;
}
@Override
public int compareTo(PokerCard o) {
final String[] cardPointsArr = {"A","2","3","4","5","6","7","8","9","10"
,"J","Q","K"};
final String[] cardColorArr = {"","","",""};
List cardPointsList = Arrays.asList(cardPointsArr);
List cardColorList = Arrays.asList(cardColorArr);
int thisPointIndex = cardPointsList.indexOf(Points);
int comparaPointIndex = cardPointsList.indexOf(o.Points);
if(thisPointIndex == comparaPointIndex)
{
int thisColorIndex = cardColorList.indexOf(Color);
int comparaColorIndex = cardColorList.indexOf(o.Color);
return thisColorIndex - comparaColorIndex;
}
else
{
return thisPointIndex - comparaPointIndex;
}
}
}
package com.test.demo;
import java.util.*;
public class PlayCardDemo {
private final String[] cardPoints = {"A","2","3","4","5","6","7","8","9","10"
,"J","Q","K"};
private final String[] cardColor = {"","","",""};
private List pcs;//定义一副牌
private List players;//定义一群玩家
private List playersNewList;//定义一群手牌排序后的玩家
private Scanner in;
public PlayCardDemo()
{
pcs = new ArrayList();
players = new ArrayList();
}
private void cratePokerCards()
{
for(int i = cardColor.length - 1;i >= 0;i--)
{
for(int j = 0;j ();
for(Player p : players)
{
Player playNew = new Player(p.getID(),p.getName());
ListpcNewList = new ArrayList();
for(PokerCard pc:p.getHandCards())
{
pcNewList.add(pc);
}
playNew.setHandCards(pcNewList);
playersNewList.add(playNew);
}
}
/*
* 判断输赢
*/
private void getWinner()
{
List maxCards = new ArrayList();
for(Player p : playersNewList)
{
maxCards.add(p.getHandCards().get(0));
}
Collections.sort(maxCards);
PokerCard maxCard = maxCards.get(0);
System.out.println("最大的牌是"+maxCard.getCardInfo());
String winner = "";
for(Player p : playersNewList)
{
if(p.getHandCards().contains(maxCard))
{
winner = p.getName();
break;
}
}
System.out.println("玩家:"+winner+"获胜");
}
/*
* 先是玩家手中的牌
*/
private void showHandCards()
{
for(Player p:players)
{
StringBuilder sbd = new StringBuilder();
sbd.append(p.getName()+":[");
for(PokerCard pc:p.getHandCards())
{
sbd.append(pc.getCardInfo()+",");
}
System.out.println(sbd.substring(0,sbd.length()-1)+"]");
}
}
public static void main(String[] args) {
System.out.println("-----------------创建扑克牌-----------------");
PlayCardDemo pcd = new PlayCardDemo();
pcd.cratePokerCards(); //创建扑克牌
System.out.println("-----------------扑克牌创建成功!-----------------");
pcd.showPokerCards(); //显示所创建扑克牌
System.out.println("-----------------开始洗牌-----------------");
pcd.shuffleCard(); //洗牌
System.out.println("-----------------洗牌结束!-----------------");
System.out.println("-----------------创建玩家-----------------");
pcd.in = new Scanner(System.in);
for(int i = 1;i 来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3356/viewspace-2807679/ ,如需转载,请注明出处,否则将追究法律责任。