简化版21点小游戏

一 、题目描述

两个参与者 ✦

这个简化版的21点游戏,只有两个参与者,一个是玩家,另一个就是NPC。

NPC:

NPC开局会有一个抽牌和n(1≤n≤21),你需要用随机数生成n。

玩家:

允许玩家每次抽一张1-13之间的牌(可重复,用随机数生成),每抽一次牌,计算当前玩家抽牌的和m,如果和m>21直接输掉,反之询问玩家要不要继续抽牌,Y代表抽牌,N代表不抽牌。

玩家选择N之后,比较玩家抽牌和以及电脑抽牌和,谁更靠近21点谁赢

简化版21点小游戏

二、   题目分解

固定范围的随机数 ✦

玩家和npc都会有一个固定范围的随机数,这里涉及到随机数的知识点,稍微讲一下。

rand()方法可以帮助我们产生随机数,计算机产生的随机数是通过一种算法计算出来的伪随机数,单纯的只是用rand()方法产生的随机数是固定的,那这样就达不到获取随机数的效果。

这种情况下就需要一个参照物去帮助rand()产生随机数即设置随机数种子,我们知道时间每分每秒都在变动,那么我们可以通过获取当前的时间去产生随机数,时间改变获取的随机数也随之改变

获取当前时间可以用time()方法。rand()方法和time()方法直接使用前提是使用万能头文件<bits/stdc++.h>

简化版21点小游戏

1、通过循环去不断地抽牌,当满足某些条件时结束循环。这种不确定循环次数的一般采用while循环。

这里可以提前设置一个bool条件flag=true,根据这个flag是否为真去判断是否继续执行抽牌的循环。

  bool flag=true;

  while(flag){

        //循环语句;

  }

那在什么情况下flag的条件变为false?

简化版21点小游戏

2、还有一个需要注意的地方。输出玩家的名字及npc对应的分数。这里的话比较简单的写法是采用格式化输出方法printf(“格式化字符串”,对应的参数)比较快捷方便,在格式化字符串中想要表示的字符串和整数分别用%s和%d来表示

例如玩家赢的情况:

简化版21点小游戏

%s和%d按照从前往后的顺序,依次表示字符串“player”和npc对应的点数。

完整的如下:

简化版21点小游戏

三 、所有代码

代码合并 ✦

以上比较关键的代码合并起来如下,可以给同学们参考一下

(0)
上一篇 2023年4月17日 下午2:29
下一篇 2023年5月30日 下午2:51

猜你喜欢

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注