我正在尝试用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));
}
答案 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
希望有所帮助!!