一个二维矩阵上有三种生命形式,分别为石头、剪刀、布,每天上下左右相邻的不同生命形式会发生战斗,石头肯定打败剪刀,剪刀肯定打败布,布肯定打败石头,每一天结束后,胜利者会占领失败者的领地。现在要求输出day天后矩阵各元素的值,如何用C++实现这一运算呢?小编与大家分享编程经验。
工具/原料
C++
方法/步骤
1
输入数据时,第1行为三个正整数row、list、day,表示矩阵的行数、列数,以及所用的天数,每个整数都不超过100。接下来输入row行、list列的字符,字符只能是R、S、P,表示石头、剪刀和布。输出数据时,输出经过day天后矩阵各元素的值,每个元素只能是R、S、P。
2
首先,定义一个常量,控制矩阵数组的长度。
3
定义6个整型变量,实现程序的运算。
4
接着,定义两个字符型数组,保存矩阵中的各元素值,以及计算时用到的临时数组。
5
定义两个整型数组,保存相邻元素的相对位置。
6
输入三个整数,保存在变量row、list、day中。
7
读入矩阵中各元素的值,保存在数组world和temp中。
8
用while循环控制矩阵每天的变化,条件为day。
9
用两重for循环控制矩阵的变化,
10
先计算矩阵中的元素值为R的情况,用if语句判断。
11
当元素的值为R时,如果周围相邻元素有一个值为P,则该元素的值变为P。
12
如果元素的值为S,继续根据周围元素,计算元素的变化。
13
当元素为S时,如果周围有元素的值为R,则元素变为R。
14
如果元素的值为P,判断它周围有无元素S,如果有则元素值变为S。
15
将二维数组world中的值,替换为一天结束后元素的变化值。
16
天数减少一天,保存在变量day中。
17
最后,输出day天结束后,矩阵中所有元素的值。
18
运行程序,输入矩阵的行数、列数、天数,输入每个矩阵的值后,电脑就会计算出矩阵元素变化后的值。
注意事项
作者声明:本篇经验系本人辛勤劳动的原创成果,未经许可,谢绝转载。
上一篇:剪刀石头布获胜秘诀
下一篇:教你如何玩石头剪刀布?