ランダムな移動データを作成したいです
Pythonを使用しています。
(10,10)から上下左右に連続して動くランダムな移動データを作成しようと考えています。
下に書いたコードと、その結果を載せています。
python
1data = [[10,10]] 2c = [[0,-1],[0,1],[-1,0],[1,0]] 3 4rand_0 = random.randint(0,3) 5appe_0 = [data[-1][0]+c[rand_0][0], data[-1][1]+c[rand_0][1]] 6data.append(appe_0) 7 8rand_1 = random.randint(0,3) 9appe_1 = [data[-1][0]+c[rand_0][0], data[-1][1]+c[rand_0][1]] 10data.append(appe_1) 11 12rand_2 = random.randint(0,3) 13appe_2 = [data[-1][0]+c[rand_1][0], data[-1][1]+c[rand_1][1]] 14data.append(appe_2) 15 16rand_3 = random.randint(0,3) 17appe_3 = [data[-1][0]+c[rand_2][0], data[-1][1]+c[rand_2][1]] 18data.append(appe_3) 19 20print(data) 21 22 23Out: 24[[10, 10], [9, 10], [8, 10], [8, 11], [8, 10]]
この処理を手作業で行うのはとても厳しので、何とか自動化したいと考えています。
スジとしては別に悪くないような気がします
例えば100歩分のデータをつくりたいということでしょうか?
```
for i in range(1, 101):
rand = random.randint(0,3)
appe = [data[-1][0]+c[rand][0], data[-1][1]+c[rand][1]]
data.append(appe)
```
こんな感じにしたい、ということですか??
ご回答ありがとうございます。
「100歩分のデータを作成したいか」という質問にお答えするなら、まさしくその通りです。
考えてることとしては、data[i]のiの数を指定した分だけ欲しいと思っています。
実力不足でコードの書き方がわからないのですが、data[i][0]とdata[i][1]は0~12の範囲で作成したいと思っています。
回答者が回答されている方法で良さそうですね。range(n) で n回分ループできるので。
回答1件
あなたの回答
tips
プレビュー