//deck[count]=new Card(faces[count%13],suits[count/13])
是对的,下面那行除17是错的
另外,没有把大小王赋值到数组里
最后main函数里,打印方法错了。应该为,原本少了一个%-20s
System.out.printf("%-20s%-20s%-20s\n", myDeckOfCards.dealCard(), myDeckOfCards.dealCard(), myDeckOfCards.dealCard())
发牌完成以后剩下的3张牌就是保留的底牌
import java.util.Arrays
import java.util.Iterator
import java.util.LinkedList
import java.util.Random
public class Licensing {
public static void main(String[] args) {
LinkedList<Integer> card = new LinkedList<Integer>()
int max = 108
Random r = new Random()
/*下边的代码是定义一副牌*/
for(int i = 0i < 8++i)
for(int j = 1j <= 13++j)
card.add(j)
for(int k = 0k < 2++k){
card.add(14)
card.add(15)
}
Player[] p = new Player[6]//定义六个玩家
for(int i = 0i<6++i){
p[i] = new Player()
}
while(max > 0){//发牌
for(int m = 0m<6++m){
int index = r.nextInt(max)
max--
if(max < 0)
break
Integer a = card.get(index)
card.remove(a)
p[m].myCard.add(a)
}
}
int[] pp = new int[6]
for(int w = 0w<6++w)
pp[w] = p[w].pairs()
Arrays.sort(pp)
for(int e = 0e<6++e){
if(p[e].pairs()==pp[5])
System.out.println("第"+e+"位玩家获胜了")
}
}
}
class Player{
public LinkedList<Integer> myCard
public String name
public Player(){
myCard = new LinkedList<Integer>()
}
public int pairs(){
int sum = 0
if(myCard != null){
LinkedList<Integer> tempCard = myCard
Iterator<Integer> it = tempCard.iterator()
int in = 0
if(myCard != null){
while(it.hasNext()){
it.next()
++in
}
int c =-1
for(int i = 0i < in++i){
if(i == c)
continue
for(int j = i+1j<in++j){
if((int)tempCard.get(i) == (int)tempCard.get(j)){
++sum
c = j
break
}
}
}
}
}
return sum
}
}
import java.util.ArrayListimport java.util.Random
public class PokerDemo {
ArrayList<Card>poker = new ArrayList<Card>()
Player[] players
int n = 4
String[] name = {"Wang", "Zhang", "Li", "Yuan"}
public PokerDemo() {
players = new Player[n]
for(int i = 0i <players.lengthi++)
players[i] = new Player(name[i])
for(int i = 0i <4i++)
for(int j = 0j <13j++)
poker.add(new Card(i, j))
System.out.println("洗牌前: " + poker)
xipai()
System.out.println("洗牌后: " + poker)
fapai()
System.out.println("发牌后: ")
for(int i = 0i <players.lengthi++)
System.out.println(players[i])
}
public void xipai() {
Random r = new Random()
ArrayList<Card>tmp = new ArrayList<Card>()
while(!poker.isEmpty()) {
int index = r.nextInt(poker.size())
Card card = poker.get(index)
tmp.add(card)
poker.remove(index)
}
poker = new ArrayList<Card>(tmp)
}
public void fapai() {
int p = 0
while(!poker.isEmpty()) {
Card card = poker.get(0)
players[p].add(card)
p = (p + 1) % n
poker.remove(0)
}
}
public static void main(String[] args) {
new PokerDemo()
}
}
class Card {
int val, sty
final String[] value = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}
final String[] style = {"黑桃", "红心", "梅花", "方块"}
public Card(int s, int v) {
sty = s
val = v
}
public String toString() {
return style[sty]+ " " + value[val]
}
}
class Player {
ArrayList<Card>cards = new ArrayList<Card>()
String name
public Player(String n) {
name = n
}
public void add(Card card) {
cards.add(card)
}
public String toString() {
return name + ":\t" + cards
}
}