当前位置: 代码迷 >> Eclipse >> [砸金花游戏]跪求各位大侠帮帮解决下有关问题
  详细解决方案

[砸金花游戏]跪求各位大侠帮帮解决下有关问题

热度:23   发布时间:2016-04-23 13:53:06.0
[砸金花游戏]跪求各位大侠帮帮解决下问题
这是个砸金花的游戏,可是我运行后每次发的牌貌似都是一样的,没有实现随机发牌



[code=Java][/code]package JavaZJH;

import java.util.Scanner;

public class lx {

public static void main(String[] args) {
int[][] cs = dispatch(2, 3, new int[] { 500, 600 });
Scanner sca = new Scanner(System.in);
System.out.println("游戏开始!请输入起始堵住金额:");
int cMoney, uMoney;
cMoney = sca.nextInt();
uMoney = cMoney;
int n = 1;
while (cMoney > 0 && uMoney > 0) {
System.out.println("第" + n + "局:请下注!");
int mon = sca.nextInt();
for (int i = 0; i < cs.length; i++) {
System.out.print("第" + i + "手牌: ");
for (int j = 0; j < cs[i].length; j++) {
dispalyCard(cs[i][j]);
System.out.print(" ");
}
System.out.println();
}
int result = compare(cs[0], cs[1]);
if (result > 0) {
System.out.println("电脑获胜!");
cMoney += mon;
uMoney -= mon;
} else if (result < 0) {
System.out.println("恭喜你获胜!");
uMoney += mon;
cMoney -= mon;
} else {
System.out.println("平局!");
}
n++;
System.out.println("当前剩余赌注:电脑:" + cMoney + "你:" + uMoney);
}
System.out.println("回家拿钱吧!");

}// main end

public static void dispalyCard(int card) {
if (card == 500) {
System.out.print("小王");

}
if (card == 600) {
System.out.print("大王");

}
switch (card / 100) {
case 1:
System.out.print("黑桃");
break;
case 2:
System.out.print("红桃");
break;
case 3:
System.out.print("方块");
break;
case 4:
System.out.print("梅花");
break;
}
switch (card % 100) {
case 14:
System.out.print("A");
break;
case 13:
System.out.print("K");
break;
case 12:
System.out.print("Q");
break;
case 11:
System.out.print("J");
break;
default:
System.out.print(card % 100);
break;
}
}

public static int[][] dispatch(int players, int cards, int[] limit) {
if (players <= 0 || cards <= 0) {
System.out.println("无效的发牌参数:玩家人数和每手牌张数大于零");
return null;
}
if (players * cards > 54 - limit.length) {
System.out.println("无效的发牌参数:发牌总数大于扑克的张数");
return null;
}
int[] allCards = new int[54];
int k = 0;
for (int i = 1; i <= 4; i++) {
for (int j = 2; j <= 14; j++) {
allCards[k] = i * 100 + j;
k++;
}
}
allCards[k++] = 500;// 小王
allCards[k++] = 600;// 大王

int[] limitedCards = new int[54 - limit.length];
k = 0;
for (int i = 0; i < allCards.length; i++) {
boolean flag = true;
for (int j = 0; j < limit.length; j++) {
if (allCards[i] == limit[j]) {
flag = false;
break;
}

}// inner for
if (flag) {
limitedCards[k++] = allCards[i];

}

}

int[] dispatchCards = new int[players * cards];
int num = 0;
outer: while (num < dispatchCards.length) {
int index = (int) (Math.random() * limitedCards.length);
for (int i = 0; i < num; i++) {
if (dispatchCards[i] == limitedCards[index]) {
continue outer;
}

}
dispatchCards[num++] = limitedCards[index];
}

int[][] cs = new int[players][cards];
int index = 0;
for (int i = 0; i < cs[0].length; i++) {
for (int j = 0; j < cs.length; j++) {
  相关解决方案