用java程序编写一个发牌的程序。。。跪求了。。。。

用java程序编写一个发牌的程序。。。跪求了。。。。,第1张

1、设计二维数组a[13][4],13代表2,3,4,5,...,K,A , 4代表红黑方梅 13*4=52

2、这样a[0][0]就是红让升销桃2,a[12][3]就是梅花A

按照这么来随机发牌就很简单了,直接随机个一个a[i][j]就可以了。i和j都分别在笑族13和4以内

思路明确了,代码还是自己坦游写比较好

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

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12391710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存