前提・実現したいこと
課題でシューティングゲーム制作をやります。7*7のゲーム画面をデータで表すためのリストを作り、その一つにプレーヤーを表すPを割り振ろうとしています。(これが完成次第ランダムで発生させた障害物を随時リスト内に追加していくつもりです)
発生している問題・エラーメッセージ
リストの特定部分をインデックスで指定しPを割り振ったつもりなのですが、全行の同じ位置([3])にPが発生しています。
該当のソースコード
<入力> row = ["X" for _ in range(7)] grid = [row for _ in range(7)] grid[0][3] = PLAYER <出力> grid [['X', 'X', 'X', 'P', 'X', 'X', 'X'], ['X', 'X', 'X', 'P', 'X', 'X', 'X'], ['X', 'X', 'X', 'P', 'X', 'X', 'X'], 'X', ['X', 'X', 'X', 'P', 'X', 'X', 'X'], ['X', 'X', 'X', 'P', 'X', 'X', 'X'], ['X', 'X', 'X', 'P', 'X', 'X', 'X']]
試したこと
仕方無く全ての行の[3]にPが振られた後最初の行だけ飛ばしてfor loopで[3]にXを振り直してみようと思ったのですが、
今度は全ての行の[3]がXになりました。
<入力>
for i in grid[1:]:
print(i)
i[3] = "X"
<出力>
['X', 'X', 'X', 'P', 'X', 'X', 'X']
['X', 'X', 'X', 'X', 'X', 'X', 'X']
['X', 'X', 'X', 'X', 'X', 'X', 'X']
['X', 'X', 'X', 'X', 'X', 'X', 'X']
['X', 'X', 'X', 'X', 'X', 'X', 'X']
['X', 'X', 'X', 'X', 'X', 'X', 'X']
grid
[['X', 'X', 'X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X', 'X', 'X']]
(因みに、最初の行を飛ばさず全行に対して[3]へのXの割り振りをした際も、最初の行だけが[3]がPになっていました。単にgridと打った時にそれは反映されません。
補足情報(FW/ツールのバージョンなど)
開発環境: IDLE(Python3.9 64-bit)
Pythonのバージョンも3.9。
ゲームに使うライブラリはTkinter、random、pillow、typingのみ。
。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/31 07:50