一稍僚敉视个二维矩阵上有三种生命形式,分别为石头、剪刀、布,每天上下左右相邻的不同生命形式会发生战斗,石头肯定打败剪刀,剪刀肯定打败布,布肯定打败石头,每一天结束后,胜利者会占领失败者的领地撅掏浑锌。现在要求输出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、运行程序,输入矩阵的行数、列数、天数,输入每个矩阵的值后,电脑就会计算出矩阵元素变化后的值。