C++实现产生随机数与相应的猜拳小游戏

栏目: C++ · 发布时间: 7年前

内容简介:c++中,产生随机数的通用方法就是调用 srand()和 rand()  函数。值得注意的是,所有程序中“产生”的随机数其实是伪随机数,本质是调用存储在计算机里的一组无序数值序列。因此在初始化随机数种子时,如果初始化相同的种子数值,得到的“随机数”会是一样的数值。#include <iostream>

一、简介

c++中,产生随机数的通用方法就是调用 srand()和 rand()  函数。值得注意的是,所有程序中“产生”的随机数其实是伪随机数,本质是调用存储在计算机里的一组无序数值序列。

因此在初始化随机数种子时,如果初始化相同的种子数值,得到的“随机数”会是一样的数值。

#include <iostream>

#include <cstdlib>

using namespace std;

int main()

{

int i;

srand(1);

for (i = 0; i < 10; i++)

{

cout << rand() << " ";

}

}

C++实现产生随机数与相应的猜拳小游戏 第一次运行的结果。

C++实现产生随机数与相应的猜拳小游戏 第二次运行的结果,可以看出并不是真正意义上的随机数。

但是在运行同一次程序时,可以把这些数字看成是随机数。

二、产生随机数

关键是调用 time 函数初始化随机数种子,达到种子随变。此时需要调用 <ctime>头文件。

#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std;

int main()

{

int i;

srand((unsigned)time(NULL));

for (i = 0; i < 10; i++)

{

cout << rand() << " ";

}

return 0;

}

C++实现产生随机数与相应的猜拳小游戏 第一次运行结果。

C++实现产生随机数与相应的猜拳小游戏 第二次运行结果,可以看成真正意义上的随机数。

当需要(0-x)的随机数时,只需要在 rand() % x 即可。

当需要(0-1)的小数随机数时,只需要 ( rand() % x ) /x 即可,其中 x 与精度有关,可取 x=100 小数后两位。

三、猜拳小游戏

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

int main()

{

char x;

int a;

int b;

while (1) {

printf("请选择你要出的:\n");

printf("A:剪刀\n");

printf("B:石头\n");

printf("C:布\n");

printf("D:不玩了\n");

scanf_s("%c%*c", &x);

switch (x) {

case 65 | 97:

x = 4; break;

case 66 | 98:

x = 7; break;

case 67 | 99:

x = 10; break;

case 68 | 100:

return 0;

default:

printf("Error!");

getchar();

system("cls");

return 0;

break;

}

srand((unsigned)time(NULL));

a = rand() % 3;

b = (int)x + a;

printf("电脑出了");

switch (a) {

case 0:

printf("剪刀\n\n"); break;

case 1:

printf("石头\n\n"); break;

case 2:

printf("布\n\n"); break;

}

printf("你出了");

switch (x) {

case 4:

printf("剪刀\n\n"); break;

case 7:

printf("石头\n\n"); break;

case 10:

printf("布\n\n"); break;

}

printf("结果是:\n\n");

if (b == 6 || b == 7 || b == 11)printf("你赢了!\n\n");

if (b == 5 || b == 9 || b == 10)printf("电脑赢了!\n\n");

if (b == 4 || b == 8 || b == 12)printf("平局!\n\n");

system("pause>nul&&cls");

}

return 0;

}

C++实现产生随机数与相应的猜拳小游戏

第一次。

C++实现产生随机数与相应的猜拳小游戏

第二次。

代码里x的值是考虑了不重复问题。

电脑a | 玩家x 4剪刀 7石头 10布
0剪刀 4 7 10
1石头 5 8 11
2布 6 9 12

Linux公社的RSS地址: https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-09/153952.htm


以上所述就是小编给大家介绍的《C++实现产生随机数与相应的猜拳小游戏》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First JavaScript Programming

Head First JavaScript Programming

Eric T. Freeman、Elisabeth Robson / O'Reilly Media / 2014-4-10 / USD 49.99

This brain-friendly guide teaches you everything from JavaScript language fundamentals to advanced topics, including objects, functions, and the browser’s document object model. You won’t just be read......一起来看看 《Head First JavaScript Programming》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具