java斗地主发牌程序

Python013

java斗地主发牌程序,第1张

DeckOfCards()构造函数里面,注释掉的

//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.ArrayList

import 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

}

}