問題:座標を手動でコーディングすることで、多くの時間を浪費し、バグのある肥大化したコードを作成します。同じ結果が得られるループ構造をこの冗長なコードに置き換える方法を学ぶのに助けが必要です。現在、x座標とy座標は、それぞれxCoordsとyCoordsという名前の別々の配列に格納されています。これを単純化して、このプログラムのよりエレガントなバージョンを作成するにはどうすればよいですか?
[注:これは私の最初のStackOverflow投稿です。スタイル、エチケット、投稿エラーを教えてください。修正します。このフォーラムは私にとって不可欠であり、皆さんの助けに感謝します。]
関連する詳細:
- 「ドットマトリックス」と呼ばれる2人用GUIゲームを作成しています。ユーザーは、マウスクリックを使用してウィンドウを操作します。このゲームのオンラインバージョンは、このリンクにあります。座標点をプロットすることは、プレーヤーの方向性を示し、ゲームボード全体であるため重要です。このコードスニペットには、まだ記述していないため、実際のゲームロジックは含まれていません。
- JohnZelleのPythonプログラミング本のグラフィックライブラリを使用しています。
ソースコード:
# dotmatrix.py
# Dot Matrix Game
# Michael Morelli
# mmorelli at live dot com
# Created: 03-24-13 with Python 2.7.3 and PyScripter
from graphics import *
win = GraphWin("Dot Matrix", 500, 500)
win.setCoords(0.0, 0.0, 10.0, 10.0)
win.setBackground("white")
xCoords = [1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,
4,4,4,4,4,4,4,4,4,
5,5,5,5,5,5,5,5,5,
6,6,6,6,6,6,6,6,6,
7,7,7,7,7,7,7,7,7,
8,8,8,8,8,8,8,8,8,
9,9,9,9,9,9,9,9,9]
yCoords = [1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9,
1,2,3,4,5,6,7,8,9]
for i in range(81):
Text(Point(xCoords[i], yCoords[i]), "*").draw(win)
i+=1 # This for loop iterates through each of the coordinate arrays
# and plots an * asterisk at each coordinate locus. There is a plot()
# method included with the graphics library, but it plots single-pixel
# points and are hardly visible. I do not think this will affect the game.
input("Press <Enter> to quit.")
win.close()
ご協力ありがとうございました!-マイケル