【发布时间】:2020-08-10 13:58:40
【问题描述】:
这是我第一次独立开发并遇到问题的代码。我用谷歌搜索了这个问题,但没有占上风。我正在制作一个剪刀石头布游戏,我有一个输入,您可以在其中选择石头布或剪刀,在您选择之后,程序会随机输出石头布或剪刀,现在我的问题是随机输出后的 If 语句,它只选择:
{
cout << ", you lose! Do you want to play again? (Yes / No)";
}
然而,这是我的代码:
#include <iostream>
#include <string>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
// yn = yes / no
string yn;
cout << "Do you want to play Rock, Paper, Scissors? (Yes / No) ";
cin >> yn;
if (yn == "Yes")
{
// rps = rock paper scissors
string rps;
cout << "Choose, Rock, Paper, or Scissors\n";
cin >> rps;
if (rps == "Rock")
{
// Randomizer
srand(time(0));
string rpslist[3] = { "Rock", "Paper", "Scissors " };
int rpsnumber = rand() % 3;
cout << "I choose: " << rpslist[rpsnumber];
if (rpslist[1] == "Rock")
{
cout << ", we draw! Do you want to play again? (Yes / No)";
}
if (rpslist[2] == "Paper");
{
cout << ", you lose! Do you want to play again? (Yes / No)";
}
if (rpslist[3] == "Scissors")
{
cout << ", you win! Do you want to play again? (Yes / No)";
}
}
【问题讨论】:
-
if检查“纸张”后有一个分号。 (无关,在检查获胜者时,您没有与正确的事物进行比较。) -
这不是问题,但对
stand(time(0));的调用应该在程序执行任何实际工作之前进行。在这种情况下,这无关紧要,但想法是您只调用一次,并且随着代码的开发使其可以玩多轮游戏,您必须移动它。跨度>