0

这是我正在尝试制作的游戏。您以$1500开始游戏,每次要玩游戏都必须支付$100。(选择1玩)(按2阅读规则)(按3查看高分)游戏是抛硬币游戏. 游戏开始时,底池中有 4 美元。当它出现正面时,底池中的钱翻倍,你再次翻转。当它是尾巴时,您将获得底池中的所有钱。当您的资金少于 100 美元时,您就破产了(游戏结束)。你回到开始菜单......我希望让这个游戏记录你的最高奖金(高分)所以这就是我到目前为止得到的......

public class COINFLIP
{
public static void main(String[] args)
{
int tail = 0;//tail
int head = 0;//head
int x = 0;//tries
while (x < 1)
{
    int coin;//coin
    coin = (int) (Math.random() * 2);
    x++;
    if (coin == 0) {
    headCount++; // int type
    wasHeads = true; // boolean type
    wasTails = false;
  } else {
    tailCount++;
    wasHeads = false; // boolean type
    wasTails = true;
 }
    int sm = 1500;//starting money
    int cm;//current money
    int pm = 4;//money in the pot
    cm = sm - 100 + pm;
}
if (wasHeads)
{
pm = pm * 2;
}
else if (wasTails)
{
System.out.println("Your money is: $" + cm);
}
if (cm < 100);
System.out.println("Sorry, but you are broke!!!");
}
}

错误:

C:\Users\Loyal Xie\Documents\COINFLIP.java:14: error: cannot find symbol
    headCount++; // int type
    ^
symbol:   variable headCount
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:15: error: cannot find symbol
    wasHeads = true; // boolean type
    ^
symbol:   variable wasHeads
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:16: error: cannot find symbol
    wasTails = false;
    ^
symbol:   variable wasTails
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:18: error: cannot find symbol
   tailCount++;
   ^
symbol:   variable tailCount
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:19: error: cannot find symbol
    wasHeads = false; // boolean type
    ^
symbol:   variable wasHeads
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:20: error: cannot find symbol
    wasTails = true;
    ^
symbol:   variable wasTails
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:27: error: cannot find symbol
if (wasHeads)
    ^
symbol:   variable wasHeads
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:27: error: illegal start of type
if (wasHeads)
   ^
C:\Users\Loyal Xie\Documents\COINFLIP.java:29: error: cannot find symbol
pm = pm * 2;
^
symbol:   variable pm
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:29: error: cannot find symbol
pm = pm * 2;
     ^
symbol:   variable pm
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:31: error: cannot find symbol
else if (wasTails)
         ^
symbol:   variable wasTails
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:31: error: illegal start of type
else if (wasTails)
        ^
C:\Users\Loyal Xie\Documents\COINFLIP.java:33: error: cannot find symbol
System.out.println("Your money is: $" + cm);

                                        ^
symbol:   variable cm
location: class COINFLIP
C:\Users\Loyal Xie\Documents\COINFLIP.java:35: error: cannot find symbol
if (cm < 100);
    ^
symbol:   variable cm
location: class COINFLIP
14 errors

但是有很多错误,我的语句仍然有错误......我认为问题出在 if 语句中,我认为我仍然无法设置 head = true 然后在 if 语句中使用它......有什么想法吗?

4

2 回答 2

0

如果您更正了缩进,您可能会注意到

if (coin == 0)  
{
    headCount++; // int type   
}
    wasHeads = true; // boolean type

wasHeads不在 if 语句中,将 100% 的时间执行。对于wasTails = true;

这意味着稍后您的测试if (wasHeads)将始终执行。

另外,为什么要把它放在一个while循环中,因为它只会执行一次。

编辑

关于您的错误,您需要先定义变量,然后才能使用它们。

例如

headCount++; 

首先需要定义为

int headCount = 0;
于 2014-09-01T04:07:42.937 回答
0

您对布尔值的分配不在它们各自的测试用例中(您应该更喜欢简单的else)。所以像,

if (coin == 0) {
  headCount++; // int type
  wasHeads = true; // boolean type
  wasTails = false;
} else {
  tailCount++;
  wasHeads = false; // boolean type
  wasTails = true;
}
于 2014-09-01T04:08:17.880 回答