c/c++语言开发共享产生随机数与相应的猜拳小游戏

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


一、简介

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

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

 1 #include <iostream>  2 #include <cstdlib>  3 using namespace std;  4 int main()  5 {  6     int i;  7     srand(1);  8     for (i = 0; i < 10; i++)  9     { 10         cout << rand() << " "; 11     } 12 }

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

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

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

二、产生随机数

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

 1 #include <iostream>  2 #include <ctime>  3 #include <cstdlib>  4 using namespace std;  5 int main()  6 {  7     int i;  8     srand((unsigned)time(null));  9     for (i = 0; i < 10; i++) 10     { 11         cout << rand() << " "; 12     } 13     return 0; 14 }

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

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

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

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

三、猜拳小游戏

 1 #include<stdio.h>  2 #include<stdlib.h>  3 #include<time.h>  4 int main()  5 {  6     char x;  7     int a;  8     int b;  9     while (1) { 10         printf("请选择你要出的:n"); 11         printf("a:剪刀n"); 12         printf("b:石头n"); 13         printf("c:布n"); 14         printf("d:不玩了n"); 15  16         scanf_s("%c%*c", &x); 17  18         switch (x) { 19         case 65 | 97: 20             x = 4; break; 21         case 66 | 98: 22             x = 7; break; 23         case 67 | 99: 24             x = 10; break; 25         case 68 | 100: 26             return 0; 27         default: 28             printf("error!"); 29             getchar(); 30             system("cls"); 31             return 0; 32             break; 33         } 34         srand((unsigned)time(null)); 35         a = rand() % 3; 36         b = (int)x + a; 37  38         printf("电脑出了"); 39         switch (a) { 40         case 0: 41             printf("剪刀nn"); break; 42         case 1: 43             printf("石头nn"); break; 44         case 2: 45             printf("布nn"); break; 46         } 47  48         printf("你出了"); 49         switch (x) { 50         case 4: 51             printf("剪刀nn"); break; 52         case 7: 53             printf("石头nn"); break; 54         case 10: 55             printf("布nn"); break; 56         } 57  58         printf("结果是:nn"); 59         if (b == 6 || b == 7 || b == 11)printf("你赢了!nn"); 60         if (b == 5 || b == 9 || b == 10)printf("电脑赢了!nn"); 61         if (b == 4 || b == 8 || b == 12)printf("平局!nn"); 62  63         system("pause>nul&&cls"); 64     } 65     return 0; 66 }

产生随机数与相应的猜拳小游戏第一次。

产生随机数与相应的猜拳小游戏第二次。

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

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

 

www.ctvol.com true Article c/c++语言开发共享产生随机数与相应的猜拳小游戏

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/608300.html

(0)
上一篇 2021年5月15日 上午4:47
下一篇 2021年5月15日 上午4:49

精彩推荐