对于Loop Card游戏卡住了

时间:2014-10-07 11:55:57

标签: java loops if-statement

我正在尝试用java设计一款纸牌游戏,在5张牌的手牌中连续3张或更多张牌中每张牌得1分(不一定是同一套牌)。例2,3,K,3,4 = 2次运行(2,3,4& 2,3,4) - (交换3)

但是我仍然坚持如何编写此代码..有人可以引导我朝正确的方向发展吗?

这是我到目前为止所做的:

public static int[] card; 

public static void main(String args[]) {
    int[] card = new int[5];

    for (card1 = 0; card1 <= 4; card1++) {
        if (card[1] == card[0] + 1) {
            for (card2 = card1 + 1; card2 <= 4; card2++) {
                if (card[2] == card[1] + 1) {
                    countvalueforRun++;
                }

                for (card3 = card2 + 1; card3 <= 4; card3++) {
                    if (card[3] == card[2] + 1) {
                        countvalueforRun++;
                    }

                    for (card4 = card3 + 1; card4 <= 4; card4++) {
                        if (card[3] == card[3] + 1) {
                            countvalueforRun++;
                        }
                    }
                }
            }
        }
    }
    System.out.println((countvalueforRun));
}

1 个答案:

答案 0 :(得分:0)

因为你只是在这里询问方向:

假设您已经为用户输入或随机设置了卡输入方法,我会按如下方式解决问题:

步骤1:首先通过使用嵌套的&amp; amp;初始化另一个阵列cardArranged [card.length]来按升序排列排列。如果循环。

步骤2:在2个嵌套for循环中运行cardArranged,检查每个卡是否在包中有“运行”。此外,当序列越过(计数)3时,您的countvalueforRun会给出+1。

for(int i=0;i<cardArranged.length;i++)
    {
    int sequence = 0; 
    int cardCount=0;
    for(int j=i;j<cardArranged.length;j++) //j=i because cards are arranged in ascending order
    {
     if(cardArranged[i]==cardArranged[cardCount]+1)
      { 
       sequence++;
      } 
     cardCount++;
     }

     if(sequence>=3)
     {
       countvalueforRun++;
      }

第3步:打印countvalueforRun

希望有所帮助!!