不要弄得这么困难啊
关于楼上的
@dspzzy 捋捋思路
############################################################
玩家 x=(0、1、2)
敌人v=(0、1、2) (布、剪、石)
#乘法、除法、加法,均无法得到平局为0的情况,所以先使用减法。
玩家x-敌人v
布-布=0 布-剪=-1 布-石=-2
剪-布=1 剪-剪=0 剪-石=-1
石-布=2 石-剪=1 石-石=0
胜利 1,-2,平局0,失败 2,-1
---------------------------------------
根据我的第二种方法,是x>y就胜利 x=y就平局 x<y就失败
把结果变成这样:(胜利 1,2,平局0,失败 -2,-1 )就好了
那也就是把-2和2的结果颠倒即可,
那么 -2,2为(布x石头),所以判断乘积为6时把结果*-1就OK了。
---------------------------------------
然后@dspzzy 的算法 是 将得到的结果+3
也就是得到(胜利4,1 ,平局3,失败 5,2)
再用 除3取余数的方法,4%3=1%3=1 3%3=0 5%3=2%3=2
得到的结果合并为,(1-胜利 0-平局 2-失败)
最后得到的这个算式就是 v=(x-v)%3
把X代入可得:
布:v=(0-v)%3
剪刀:v=(1-v)%3
石头:v=(2-v)%3
布:v=(0-v+3)%3 v=(3-v)%3 //(v∈(0,1,2))
剪刀:v=(1-v+3)%3 v=(4-v)%3 //(v∈(0,1,2))
石头:v=(2-v+3)%3 v=(5-v)%?3 //(v∈(0,1,2))
最后判断 v=0 为平局 v=1 为胜利 v=2 为失败
############# 话说...
话说对不上这个式子啊:
石头:v=(v+1)%3
剪刀:v=(v+2)%3
布: v=v
考虑可能性将(x-v)颠倒为(v-x)。
最后得到的这个算式就是 v=(v-x)%3
布: v=(v-0+3)%3
剪刀: v=(v-1+3)%3
石头: v=(v-2+3)%?3
石头:v=(v+1)%3
剪刀:v=(v+2)%3
布: v=v
但是,好像 胜利和失败的结果颠倒了!!(喂,我已经被弄晕了啊,算了不去想了!!
不要这样简化算式啊,这没几个人能看得懂的吧。
PS:好像VxAce里面变量操作也有取余数的...
################################################################