对于程序来说,核心算法至关重要。

关键词:输赢算法

回顾上一章的程序

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(1)

该程序主要的准备工作已经完成,因为没有算法加持,所以该程序还是一个壳子。

我们要做的就是 设计一个猜拳计算输赢的算法逻辑。逻辑由“比较胜负()”这个函数来处理,下面我们来分析一下:

元素总共有三个:石头、剪刀、布

输赢的标准是这样的:

石头 遇到 剪刀 石头赢

剪刀 遇到 布 剪刀赢

布 遇到 石头 布赢

它们是循环的,相同的遇到一起是平局。

比较的对象是两个,一个是人,一个是电脑。

根据上面的逻辑,我们开始设计算法,算法要尽可能的简单明确:

情况1、假如两个相等,就是平局,程序如下

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(2)

运算结果由结果这个变量采集。

不是平局就有两个可能,人胜出或者电脑胜出。

情况2、人胜出,程序如下

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(3)

else: 这句话是否则的意思。

在行号前标注红线的部分,就是人胜出的情况,包括采集结果。

情况3、电脑胜出,程序如下:

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(4)

上图的语句,实现了对电脑胜出的这种情况的判断。

于是整个函数变成这个样子

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(5)

下面我们对程序运行进行一下测试:

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(6)

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(7)

由上面的两个图片可以看的出来,达到了预期的效果。

完整的程序如下图

盈亏同源的概率和赔率思维(从零之027石头剪刀布)(8)

,