梭哈游戏

package shGame;

import java.util.List;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;

public class ShowHand {
private final int PLAY_NUM =5;
private String [] types= {“方块”,“梅花”,“红心”,“黑桃”};
private String [] values= {“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,
“J”,“Q”,“K”,“A”};
private List cards=new LinkedList();
private String[] players =new String [PLAY_NUM];
private List[] playersCards=new List[PLAY_NUM];
public void initCards() {
for (int i = 0; i < types.length; i++) {
for (int j = 0; j < values.length; j++) {
cards.add(types[i]+values[j]);

		}
	}
	Collections.shuffle(cards);
}
public void initPlayer(String...names)
{
	if(names.length>PLAY_NUM||names.length<2)
	{
		System.out.println("玩家数量不对");
		return;
	}
	else
	{
		for (int i = 0; i < names.length; i++) {
			players[i]=names[i];
		}
	}
}
public void initPalyerCards() {
	for (int i = 0; i < players.length; i++) {
		if(players[i]!=null&&!players[i].equals(""))
		{
			playersCards[i]=new LinkedList<String>();
		}
	}
}
public void showAllCard() {
	for (String card : cards) {
		System.out.println(card);
	}
}
public void deliverCard(String first)
{
	int firstPos=ArrayUtils.search(players,first);
	for (int i = firstPos; i < PLAY_NUM; i++) {
		if(players[i]!=null)
		{
			playersCards[i].add(cards.get(0));
			cards.remove(0);
		}
	}
	for (int i = 0; i < firstPos; i++) {
		if(players[i]!=null)
		{
			playersCards[i].add(cards.get(0));
			cards.remove(0);
		}
	}
}
public void showPlayerCards() {
	for (int i = 0; i < PLAY_NUM; i++) {
		if(players[i]!=null)
		{
			System.out.print(players[i]+":");
			for (String card : playersCards[i]) {
				System.out.print(card+"\t");
			}
		}
		System.out.print("\n");
	}	
}
public static void main(String[] args) {
	ShowHand sh=new ShowHand();
sh.initPlayer("电脑玩家","孙悟空");
sh.initCards();
sh.initPalyerCards();
System.out.println("------------------------------------");
sh.deliverCard("孙悟空");
sh.showPlayerCards();
sh.deliverCard("电脑玩家");
sh.showPlayerCards();	
}

}

public class ArrayUtils {
public static int search(String[] array, String target)
{
for (int i = 0 ; i < array.length ; i++ )
{
if (array[i] != null && array[i].equals(target))
{
return i;
}
}
return -1;
}

}

梭哈(来自英文showhands)是从扑克牌中借鉴过来的。每人五个骰子,摇出后,依其点数牌形可分为:散牌(五个骰子点数各不一样)、一对(五个骰子中仅有两个骰子点数一样,其余皆不一样)、两对(两个对子加一个其他点数,如一对二加一对四加一个三)、三条(三个骰子的点数一致,余下两个骰子点数各不相同,如三个四加一个二和一个六)、葫芦(也就是扑克牌中的三条带一对:三个骰子点数同为某数,余下两个骰子点数同为另一数,如三个三加一对二)、(其中四个骰子的点数一致,如四个一加一个五)、顺子(五个骰子点数呈连续分布,如12345和23456)、豹子(五个骰子点数全一样)。  胜负规则为豹子>顺子>炸弹>葫芦>三条>两对>对子>散牌。若属于同一类型,则依次比较类型构成主次要成分的骰子点数大小。如先比较四个相同骰子的点数,再比较散牌;葫芦先比较三个相同骰子再比较对牌;两对先比较较大的对,再比较稍小的对,最后比较散牌;如此类推。比较点数时1>6>5>4>3>2。试举例,如双方均为葫芦,一人为三个五带对二,另一人为三个四带对六,前者胜;又若双方均为两对,同有对二、对六,但一方散牌为五、另一方为一,则后者胜。 ◦ 要求:请编程实现如下功能:  分别产生六组随机数(对应六个玩家),根据上面的规则判断所产生的骰子点数牌型,并输出。  比较六个玩家的胜负,并输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值