私は9人のボックスで表される彼の部屋から逃げ出すルークの確率を見つけるために一連の関数を作成しました。ルークは、3x3の正方形の中心(0,0)から始まり、右/左または上/下に移動することができます(右または左に移動することができません。 。ルークは彼(2,0)または(-2,0)のどちらかの側のドアから出てエスケープするはランダム関数で始まり、次に代替(Python)
私は基本的なゲームを書いているが、私はどのように取得するためのノットに頭を結んでいるルークはランダムな方向から始める。下のコードが示すように、私は彼が最初に右/左に行くようにしています。私は、ルークの最初のステップのためにどちらかの方向に、そして次に交互に方向を変えて、等しいチャンスを持たせたいと思います。どのようにこれを行うにはどのようなアイデア?
import random
def checkXState(x):
right=x+1;
left=x-1;
xc = random.choice([right,left])
return xc
def checkYState(y):
up=y+1;
down=y-1;
yc = random.choice([up,down]);
return yc
def theRule(x,y):
#the Rule determines whether Luke is awake or not, and is applied to each step
if (x==2 and y == 0) or (x==-2 and y==0):
return 'Luke has ESCAPED';
elif (x==2 or x==-2 or y==2 or y==-2):
return 'Luke is AWAKE';
def theGame():
x=0;
y=0;
while True:
x = checkXState(x); #Luke goes right or left, new x coord stored in x
print(x,y);
a = theRule(x,y);
if a==('Luke is AWAKE' or 'Luke has ESCAPED'):
print(a)
break;
y = checkYState(y);
print(x,y);
b = theRule(x,y);
if b==('Luke is AWAKE' or 'Luke has ESCAPED'):
print(b)
break;
私はこの問題を十分に理解していないかもしれません。ルークがy = 1、x = 2にあり、右に行きたい場合はどうなりますか? – tfv
y = 1およびx = 2の場合、ルークは壁に当たって目を覚ます。関数はそこで終わります – st4rgut