php简单扑克游戏,简易扑克游戏(随手写的)

纸牌类

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) < o.cardNumber.charAt(0)) {

return -1;

} else {

return this.getCardName().compareTo(o.cardNumber);

}

}

}

玩家类

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 < cardName.length; i++) {

for (int j = 0; j < cardNumber.length; j++) {

pokerCards.add(new PokerCard(cardName[i], cardNumber[j]));

}

}

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

}

// 洗牌方法

public void washCards() {

Random random = new Random();

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

/*

* 随机将牌组的任意一张放在最上面,重复任意次数

*/

for (int i = 0; i < random.nextInt(52) + 1; i++) {

PokerCard temp = pokerCards.get(i);

pokerCards.remove(i);

pokerCards.add(0, temp);

}

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

}

// 发牌方法

public void dealCard(Gamer gamer01, Gamer gamer02) {

int i = 1;

Iterator 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 < 3; i++) {

System.out.println("请输入第" + i + "位玩家的ID和名字");

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

String id = input.next();

System.out.println("请输入名字");

String name = input.next();

gamers.add(new Gamer(id, name));

}

pd.dealCard(gamers.get(0), gamers.get(1));//发牌

pd.beginGame(gamers.get(0), gamers.get(1));//开始游戏

pd.showHandCards(gamers.get(0), gamers.get(1));//展示手牌

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值