我正在创建一个程序,该程序具有一副纸牌的双数组列表。有两个“手”将从这一套牌中处理。必须将 5 张独特的牌发给“comHand”,这是一个存储 5 张牌的双数组。第一个 [] 存储正在处理的牌的迭代(第一张牌、第二张牌等),第二个 [] 将牌的花色存储在 [0] 中,将牌的编号存储在 [1] 中。
我简化了代码以确保获得 3 次独特的抽奖。只有一套花色和 3 个可能的号码可供选择。我的代码在 /// 上方运行良好(这两个数字始终是唯一的)。但是,下面的代码有时不会产生唯一的数字。我可以得到一些帮助来辨别这是为什么吗?
int comHand [][] = new int [5][2];
card1 = (int) (Math.random()*1);
card2 = (int) (Math.random()*3);
comHand[0][0] = card1;
comHand[0][1] = card2;
card1 = (int) (Math.random()*1);
card2 = (int) (Math.random()*3);
while (card1 == comHand[0][0] && card2 == comHand[0][1]){
card1 = (int) (Math.random()*1);
card2 = (int) (Math.random()*3);}
comHand[1][0] = card1;
comHand[1][1] = card2;
///
card1 = (int) (Math.random()*1);
card2 = (int) (Math.random()*3);
while (card1 == comHand[0][0] && card2 == comHand[0][1]){
card1 = (int) (Math.random()*1);
card2 = (int) (Math.random()*3);}
while (card1 == comHand[1][0] && card2 == comHand[1][1]){
card1 = (int) (Math.random()*1);
card2 = (int) (Math.random()*3);}
comHand[2][0] = card1;
comHand[2][1] = card2;