我正在尝试在 c++ 上制作石头、纸、剪刀游戏,需要一些建议

I am trying to make a rock, paper, scissors game on c++ and need some advice

本文关键字:游戏 c++ 石头      更新时间:2023-10-16

这些是说明:

实现C++模拟 石头剪刀布游戏对抗计算机。在两个之间播放时 人,每个人都选择三个选项之一(通常用手显示) 手势)同时,确定获胜者。在游戏中, 摇滚打败剪刀,剪刀打败纸,纸打败摇滚。这 程序应随机选择三个选项之一(没有 显示它),然后要求用户输入(选择岩石、纸或 剪刀),最后与用户的选择进行比较。在这一点上, 程序显示两个选项并打印一个语句,指示是否 用户赢了,计算机赢了,或者平局。申请应保持 跟踪当前分数(即用户赢、输的次数和 领带)并在每次播放后更新屏幕。应提示用户 每场比赛后,如果他们想继续玩。在开头 程序还应该询问用户姓名和游戏 显示分数时显示此名称。您不需要使用任何 此赋值的用户定义函数,但您可以添加任何内容 只要本文档末尾的标准是 遇到。但是,不会给予任何奖励分数。

除上述要求外,作为此任务的一部分,您 是实现将游戏数据存储到文本文件中。游戏应该 始终要求输入用户名(必须至少为 8 个字符)并且 将游戏结果存储在与用户名同名的文件中 (用户名.txt)。 如果用户以前玩过该游戏,则数据 应该从文件中读取并在屏幕上显示,然后再开始 新游戏。在游戏结束时,统计数据应保存在 相同的文件。 游戏不应允许相同的用户名,除非它是 同一用户。这意味着游戏应该检查现有的 用户名,并在以下情况下提示新用户进行进一步身份验证 需要。这也将保证每个用户都将拥有唯一的 游戏数据统计信息存储且未被其他用户覆盖 相同的用户名。

这就是我到目前为止想出的:

#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
string PlayerUsername;
string Playerinput;
string Winner;
int Wins;
int Draws;
int Losses;
int RNG = rand() % 3 + 1;
std::cout << "Print your name.n";
cin >> PlayerUsername;
std::cout << "Hello >>PlayerUsername>>. This is a rock, paper, scissors game. The rules are as follows: rock beats scissors, paper beats rock, and scissors beats paper. The computer will randomly pick one of the three. Print n1 for rock, print n2 for paper, print n3 for scissors. Input your choice if you wish to play. Otherwise close the program.n";
if (RNG == "1" && Playerinput == "rock") { std::cout << "The outcome of this game was a tie." << endl; }
else if (RNG == "2" && Playerinput == "scissors") { std::cout << "Computer wins." << endl; }
else if (RNG == "2" && Playerinput == "paper") { std::cout << "The outcome of this game was a tie." << endl; }
else if (RNG == "2" && Playerinput == "rock") { std::cout << "Computer wins." << endl; }
else if (RNG == "3" && Playerinput == "scissors") { std::cout << "The outcome of this game was a tie." << endl; }
else if (RNG == "3" && Playerinput == "paper") { std::cout << "Computer wins." << endl; }
else {
std::cout << "You win." << endl;
}
cin >> Playerinput
}

注意:代码未编译。 错误: *系统找不到指定的文件是我从视觉工作室社区获得的弹出窗口。 严重性代码说明项目文件行抑制状态错误(活动)E0065 应为";" 石头, 纸, 剪刀 C:\用户\FULVIO\来源\存储库\石头、纸、剪刀\石头、纸、剪刀.cpp 18 错误(活动) E0042 操作数类型不兼容("int"和"const char *") 石头、纸、剪刀 C:\用户\FULVIO\来源\存储库\石头、纸、剪刀\石头、纸、
剪刀.cpp 21
错误(活动) E0042 操作数类型不兼容("int"和"const char *") 石头、纸、剪刀 C:\用户\FULVIO\源\存储库\石头、纸、剪刀\石头、纸、剪刀.cpp 23 错误(活动) E0042 操作数类型不兼容("int"和"const char *") 石头, 纸, 剪刀 C:\用户\FULVIO\来源\存储库\石头, 纸, 剪刀\石头, 纸, 剪刀
.cpp 25
错误(活动) E0042 操作数类型不兼容("int"和"const char *") 石头, 纸, 剪刀 C:\用户\富尔维奥\来源\存储库\岩石, 纸、剪刀\石头、纸、剪刀.cpp 27 错误(活动) E0042 操作数类型不兼容("int"和"const char *") 石头, 纸, 剪刀 C:\用户\FULVIO\来源\存储库\石头, 纸, 剪刀\石头, 纸, 剪刀
.cpp 29
错误(活动) E0042 操作数类型不兼容("int"和"const char *") 石头, 纸, 剪刀 C:\用户\富尔维奥\来源\存储库\石头, 纸, 剪刀\石头, 纸, 剪刀.cpp 31
错误(活动)E0065 预期为";" 石头, 纸, 剪刀 C:\用户\FULVIO\来源\存储库\石头, 纸, 剪刀\石头, 纸, 剪刀.cpp 36 错误
C2146 语法错误: 标识符"玩家用户名"前缺少";" 石头, 纸, 剪刀 c:\用户\fulvio\来源\repos\石头, 纸, 剪刀\石头, 纸, 剪刀.cpp 18 错误
C2059 语法错误:";"' 石头, 纸, 剪刀 c:\用户\富尔维奥\来源\回购\石头, 纸, 剪刀\石头, 纸, 剪刀.cpp 18 错误 C2446 '==': 没有从"const char *"到"int"的转换 石头, 纸, 剪刀 c:\用户\fulvio\来源\repos\石头, 纸, 剪刀\石头, 纸, 剪刀
.cpp 21
错误 C2446 '==':没有从"const char *"到"int"的转换 石头, 纸, 剪刀 c:\用户\富尔维奥\源\存储库\岩石, 纸、剪刀\石头、纸、剪刀.cpp 23 错误 C2446 '==':没有从"const char *"转换为"int" 石头、纸、剪刀 c:\users\fulvio\source\repos\rock、paper、剪刀\rock、paper、剪刀
.cpp 25
错误 C2446 '==':没有从"const char *"到"int"的转换 石头, 纸, 剪刀 c:\用户\fulvio\source\repos\石头, 纸, 剪刀\石头, 纸, 剪刀.cpp 27
错误 C2446 '==':没有从"常量字符 *"转换为"int" 石头、纸、剪刀 c:\用户\fulvio\来源\repos\石头、纸、剪刀\石头、纸、剪刀.cpp 29
错误 C2446 '==':没有从"常量字符*"到"int"的转换 石头、纸、剪刀 c:\用户\fulvio\来源\repos\石头、纸、剪刀\石头、纸、剪刀.cpp 31
错误 C2146 语法错误:标识符"玩家输入"之前缺少";" 石头, 纸, 剪刀 c:\用户\fulvio\来源\repos\石头, 纸, 剪刀\石头, 纸, 剪刀.cpp 37 错误 C2143 语法错误: 在"}"之前缺少";" 石头, 纸, 剪刀 c:\用户\fulvio\来源\repos\石头, 纸, 剪刀\石头, 纸, 剪刀.cpp 37

我想知道: * 为什么此代码未运行。 * 如何添加一种在文本文件上保持分数的方法。

欢迎使用堆栈溢出。

你可以开始使用正确的语法询问玩家名称:

cin >> PlayerUsername;

然后在指令的显示和if/else链的开始之间,您应该要求玩家输入(而不是在最后询问)(并使用正确的语法)。

那么RNG是一个int. 所以你应该把它与整数而不是字符串文字进行比较(例如RND==1而不是RND=="1")。

改进建议:在确定谁获胜之前,最好显示计算机选择的内容和用户输入的内容。 因为仅仅结果就给人一种挫败感,当不清楚为什么赢或输时。

最后,对于您以后的问题,最好更好地解释您的问题和您无法理解的错误消息(这里有几个语法错误)。