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++实现产生随机数与相应的猜拳小游戏》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

从零开始学微信公众号运营推广

从零开始学微信公众号运营推广

叶龙 / 清华大学出版社 / 2017-6-1 / 39.80

本书是丛书的第2本,具体内容如下。 第1章 运营者入门——选择、注册和认证 第2章 变现和赚钱——如何从0到100万 第3章 决定打开率——标题的取名和优化 第4章 决定美观度——图片的选取和优化 第5章 决定停留率——正文的编辑和优化 第6章 决定欣赏率——版式的编辑和优化 第7章 数据的分析——用户内容的精准营销 书中从微信运营入门开始,以商业变......一起来看看 《从零开始学微信公众号运营推广》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具