21xrx.com
2024-11-22 05:34:02 Friday
登录
文章检索 我的文章 写文章
学习:使用数组基础玩转C++石头剪刀布游戏
2023-07-06 01:12:32 深夜i     --     --
数组 C++ 石头剪刀布 游戏 基础

石头剪刀布游戏是一款简单又有趣的游戏,它可以让我们了解如何使用数组基础来实现C++的编程。这篇文章将带领你学习如何使用数组来实现石头剪刀布游戏。

首先,我们需要了解游戏规则。石头、剪刀和布是游戏中的三种手势,分别代表“石头”、“剪刀”和“布”。游戏的规则是这样的:石头可以打败剪刀,剪刀可以打败布,布可以打败石头。玩家可以选择其中一种手势,与电脑进行比较,最终胜者将获得胜利。

然后,我们需要了解如何用数组表示游戏中的三种手势。在这个游戏中,我们可以使用一个字符串数组来代表石头、剪刀和布。代码如下:


string gestures[] = "布";

这个数组中包含了三个字符串,分别代表游戏中的三种手势。

现在,我们需要学习如何生成随机手势。在这个游戏中,电脑的手势是随机生成的。我们可以使用random函数来生成一个0到2之间的随机数字,然后使用这个数字来选择电脑的手势。代码如下:


int computerGesture = rand() % 3;

string computerGestureStr = gestures[computerGesture];

在这个代码中,我们使用rand()函数来生成一个0到2之间的随机数字,然后使用这个数字来选择电脑的手势。最后,我们将电脑手势转换成字符串类型的computerGestureStr。

接下来,我们需要学习如何让玩家选择手势,并比较双方手势的胜负。我们可以让用户输入手势的数字代号,然后使用这个数字来选择玩家的手势。然后,我们可以将电脑的手势和玩家的手势进行比较,判断谁是胜者。代码如下:


int playerGesture;

cout << "请出拳(0代表石头,1代表剪刀,2代表布):" << endl;

cin >> playerGesture;

string playerGestureStr = gestures[playerGesture];

if (playerGesture == computerGesture)

  cout << "平局" << endl;

else if ((playerGesture + 1) % 3 == computerGesture)

  cout << "电脑胜利!" << endl;

else

  cout << "恭喜你获得胜利!" << endl;

在这个代码中,我们首先让用户输入手势的数字代号,然后使用这个数字来选择玩家的手势。接着,我们使用if语句来判断双方手势的胜负。当玩家的手势和电脑的手势相同时,输出“平局”。当玩家的手势可以打败电脑的手势时,输出“电脑胜利!”。否则,输出“恭喜你获得胜利!”。

最后,我们需要将这些代码整合在一起,完成这个游戏。完整代码如下:


#include <iostream>

#include <string>

#include <cstdlib>

using namespace std;

int main() {

  string gestures[] = "剪刀";

  int computerGesture = rand() % 3;

  string computerGestureStr = gestures[computerGesture];

  int playerGesture;

  cout << "请出拳(0代表石头,1代表剪刀,2代表布):" << endl;

  cin >> playerGesture;

  string playerGestureStr = gestures[playerGesture];

  if (playerGesture == computerGesture)

    cout << "平局" << endl;

   else if ((playerGesture + 1) % 3 == computerGesture)

    cout << "电脑胜利!" << endl;

   else

    cout << "恭喜你获得胜利!" << endl;

  

  return 0;

}

这个游戏虽然简单,但是却教会了我们如何使用数组基础来实现C++编程。我们使用了数组来表示游戏中的三种手势,使用了random函数来生成随机手势,让玩家输入手势的数字代号,并使用if语句来比较双方手势的胜负。现在,你可以使用这个技能来实现其他有趣的游戏,尽情地发挥你的创造力吧!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复