首页 > IT职业 > IT职场 > 简易扑克游戏(随手写的)
纸牌类
package com.imooc_pokergame.dengdi;
public class PokerCard implements Comparable {
private String cardName;//纸牌花色
private String cardNumber;//纸牌数字
public PokerCard() {
super();
// TODO Auto-generated constructor stub
}
public PokerCard(String cardName, String cardNumber) {
super();
this.cardName = cardName;
this.cardNumber = cardNumber;
}
public String getCardName() {
return cardName;
}
public void setCardName(String cardName) {
this.cardName = cardName;
}
public String getCardNumber() {
return cardNumber;
}
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return this.cardName + this.cardNumber;
}
/*
* 最大纸牌的比较方法
*/
@Override
public int compareTo(PokerCard o) {
if (this.cardNumber.charAt(0) > o.cardNumber.charAt(0)) {
return 1;
} else if (this.cardNumber.charAt(0) 玩家类
package com.imooc_pokergame.dengdi;
import java.util.ArrayList;
import java.util.List;
public class Gamer {
private String id;
private String name;
private List handCards= new ArrayList();//手牌
public Gamer() {
super();
// TODO Auto-generated constructor stub
}
public Gamer(String id, String name) {
super();
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List getHandCards() {
return handCards;
}
public void setHandCards(List handCards) {
this.handCards = handCards;
}
}
手牌中最大牌的比较方法
package com.imooc_pokergame.dengdi;
import java.util.Comparator;
public class HandCardsCompare implements Comparator{
/*
* 手牌最大的比较方法
*/
@Override
public int compare(PokerCard o1, PokerCard o2) {
if(o1.getCardNumber().compareTo(o2.getCardNumber())==0){
return o1.getCardName().compareTo(o2.getCardName());
}
return o1.getCardNumber().compareTo(o2.getCardNumber());
}
}
测试类
package com.imooc_pokergame.dengdi;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class PokerDemo {
private List pokerCards;//牌组
public PokerDemo() {
this.pokerCards = new ArrayList();
}
// 创建纸牌
public void setCards() {
System.out.println("-------------创建扑克牌---------------------");
String[] cardName = { "黑桃", "红桃", "梅花", "方片" };
String[] cardNumber = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
"J", "Q", "K", "A" };
for (int i = 0; i it = pokerCards.iterator();
System.out.println("-------------开始发牌---------------------");
/*
* 运用迭代器来遍历牌组,设置i数值来限制两个玩家手牌有几张牌
*/
while (it.hasNext()) {
System.out.println("玩家" + gamer01.getName() + "拿牌");
gamer01.getHandCards().add(it.next());
System.out.println("玩家" + gamer02.getName() + "拿牌");
gamer02.getHandCards().add(it.next());
if (i == 2)
break;
i++;
}
System.out.println("--------------发牌结束---------------------");
}
// 开始游戏
public void beginGame(Gamer gamer01, Gamer gamer02) {
System.out.println("---------------开始游戏---------------------");
//将两个玩家手牌排序
Collections.sort(gamer01.getHandCards(), new HandCardsCompare());
Collections.sort(gamer02.getHandCards(), new HandCardsCompare());
//取他们手牌最后一张,也就是最大的牌
System.out.println("玩家:" + gamer01.getName() + "最大手牌为:"
+ gamer01.getHandCards().get(1));
System.out.println("玩家:" + gamer02.getName() + "最大手牌为:"
+ gamer02.getHandCards().get(1));
/*
* 比较两个玩家的最大牌,返回的数值来选择输出
*/
switch (gamer01.getHandCards().get(1)
.compareTo(gamer02.getHandCards().get(1))) {
case 1:
System.out.println("------------玩家" + gamer01.getName()
+ "获胜-----------------");
break;
case -1:
System.out.println("------------玩家" + gamer02.getName()
+ "获胜-----------------");
break;
default:
System.out.println("------------平手------------------------------");
break;
}
}
public void showHandCards(Gamer gamer01, Gamer gamer02){
System.out.println("玩家各自的手牌为:");
System.out.println(gamer01.getName() + "["
+ gamer01.getHandCards() + "]");
System.out.println(gamer02.getName() + "["
+ gamer02.getHandCards() + "]");
}
public static void main(String[] args) {
PokerDemo pd = new PokerDemo();
//创建牌组
pd.setCards();
//循环遍历
for (PokerCard pc : pd.pokerCards) {
System.out.print(pc);
}
System.out.println();
pd.washCards();//洗牌
Scanner input = new Scanner(System.in);
List gamers = new ArrayList();
for (int i = 1; i 来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4414/viewspace-2807904/ ,如需转载,请注明出处,否则将追究法律责任。