私は趣味のためのゲームを書いています/それを最終プロジェクトとしてクールなものとして提出しています。しかし、私は最近、どうやってそれが起こるのか分かりませんでした。文字列が[Python]にならないときに変更される問題
この方法はゲーム用のボックスを描くことですが、実行するたびにコンソール出力はスクリプトにますます多くの文字を追加するようです。私はそれをデバッグしようとしましたが、これまでのところ、私は非常に優れたデバッガではありません。
def drawModule(selections, selected):
'''Draws a text box based on the inputs given'''
str1 = ""
str2 = ""
str3 = " "
str4 = ""
str5 = ""
modList = selections
print id(modList)
print id(selections)
for i in range(len(modList)):
if i == selected:
modList[i] = "| " + modList[i] + " | "
else:
modList[i] = "# " + modList[i] + " # "
str3 += modList[i]
print selections
print modList
for i in range(len(modList)):
str1 += " "
str2 += " "
str4 += " "
str5 += " "
for letter in range(len(modList[i]) - 2):
if letter == 0 or letter == (len(modList[i]) - 3):
if i == selected:
str1 += "|"
str2 += "|"
str4 += "|"
str5 += "|"
else:
str1 += "#"
str2 += "#"
str4 += "#"
str5 += "#"
else:
if i == selected:
str1 += "-"
str2 += " "
str4 += " "
str5 += "-"
else:
str1 += "#"
str2 += " "
str4 += " "
str5 += "#"
sys.stdout.write(str1 + "\n" + str2 + "\n" + str3 + "\n" + str4 + "\n" + str5)
このメソッドを呼び出すスクリプトは、ゲーム内の戦闘システムの初心者向けです。それは重要ではなく、ASCIIテキストで作られた不正なアイザックのようなものです。
UNFINISHED
def combat():
'''Runs combat seperately from the selection menu'''
inCombat = True
print "You've started combat!"
time.sleep(1)
options = ["attack", "guard", "inventory", "flee"]
position = 0
clear()
while inCombat:
if msvcrt.kbhit():
clear()
key = msvcrt.getch()
print options
if ord(key) == 100:
position +=1
drawModule(options, position)
elif ord(key) == 97:
position -= 1
drawModule(options, position)
elif ord(key) == 27:
break
私はまだすべてのソリューションは素晴らしいだろう、この上で私の心を失っています。また、私はこれで偉大ではないので、もし私がより良くできることを見つけたら、もっと知りたいです!複数回実行
コンソール出力:
138650760
138650760
['# attack # ', '| guard | ', '# items # ', '# flee # ']
['# attack # ', '| guard | ', '# items # ', '# flee # ']
########## |-------| ######### ########
# # | | # # # #
# attack # | guard | # items # # flee #
# # | | # # # #
########## |-------| ######### ########
-------------------------Second Time----------------------
138650760
138650760
['# # attack # # ', '| | guard | | ', '# # items # # ', '# # flee # # ']
['# # attack # # ', '| | guard | | ', '# # items # # ', '# # flee # # ']
################ |-------------| ############### ##############
# # | | # # # #
# # attack # # | | guard | | # # items # # # # flee # #
# # | | # # # #
################ |-------------| ############### ##############
この傾向は時間のいくつかのやんちゃ量を続けています。
modList = selections
次の2つのリストを同一視している:ラインで
[元のリストを変更したときにオブジェクトリストのコピーを変更する方法は?](http://stackoverflow.com/questions/6612775/how-to-make-a-copy-of -a-list-of-objects-not-change-original-lの変更時) – SiHa