私は小さなテキスト ベースのゲームを作成しようとしています。これを達成するために、20 個のリストを作成し、リストを埋めるために 75 個のスペースを追加し、各リストを一度に 1 つずつすべて同時に印刷しました。リストを特定の位置で編集できるようにして、リストを再度印刷したときに、配置した場所にテキストがコンソールに表示されるようにしたいと考えていました。これは私がこれまでに思いついたものです...
望ましい効果は、コンソールにこれを出力させることでした:
============================
= =
= TEXT ADVENTURE: =
= WAR OF ZE MONSTERS =
= =
============================
しかし、代わりに私はこれを取得します:
===========================
描画関数または書き込み関数で何が起こっているのか正確にはわかりませんが、(私には) うまくいくように思えます。
私はPythonに比較的慣れていないので、どんな助けも素晴らしいでしょう。前もって感謝します!
import time
#
# Joel Williams
#
# Purpose: Create a Working Text Engine
#
# start of classes
class line():
def __init__(self):
counter = 0
self.list = []
while (counter != lineSize):
self.list.append(' ')
counter = counter + 1
class cursor():
def __init__(self):
self.cursorPosY = 0
self.cursorPosX = 0
self.cursorPos = [self.cursorPosY, self.cursorPosX]
def setCursorPos(self,y,x):
self.cursorPosY = y
self.cursorPosX = x
self.cursorPos = [self.cursorPosY, self.cursorPosX]
# end of cursor class
# start of peliminary declarations
lineSize = 74
term = cursor()
_1 = line()
_2 = line()
_3 = line()
_4 = line()
_5 = line()
_6 = line()
_7 = line()
_8 = line()
_9 = line()
_10 = line()
_11 = line()
_12 = line()
_13 = line()
_14 = line()
_15 = line()
_16 = line()
_17 = line()
_18 = line()
_19 = line()
_20 = line()
# end of preliminary declarations
# start of preliminary functions
def delLine(x):
del x[:]
counter = 0
x = []
while (counter != lineSize):
x.append(' ')
counter = counter + 1
def clear():
# clears all lists
delLine(_1.list)
delLine(_2.list)
delLine(_3.list)
delLine(_4.list)
delLine(_5.list)
delLine(_6.list)
delLine(_7.list)
delLine(_8.list)
delLine(_9.list)
delLine(_10.list)
delLine(_11.list)
delLine(_12.list)
delLine(_13.list)
delLine(_14.list)
delLine(_15.list)
delLine(_16.list)
delLine(_17.list)
delLine(_18.list)
delLine(_19.list)
delLine(_20.list)
def clearLine():
if(term.cursorPosY == 0):
delLine(_1.list)
elif(term.cursorPosY == 1):
delLine(_2.list)
elif(term.cursorPosY == 2):
delLine(_3.list)
elif(term.cursorPosY == 3):
delLine(_4.list)
elif(term.cursorPosY == 4):
delLine(_5.list)
elif(term.cursorPosY == 5):
delLine(_6.list)
elif(term.cursorPosY == 6):
delLine(_7.list)
elif(term.cursorPosY == 7):
delLine(_8.list)
elif(term.cursorPosY == 8):
delLine(_9.list)
elif(term.cursorPosY == 9):
delLine(_10.list)
elif(term.cursorPosY == 10):
delLine(_11.list)
elif(term.cursorPosY == 11):
delLine(_12.list)
elif(term.cursorPosY == 12):
delLine(_13.list)
elif(term.cursorPosY == 13):
delLine(_14.list)
elif(term.cursorPosY == 14):
delLine(_15.list)
elif(term.cursorPosY == 15):
delLine(_16.list)
elif(term.cursorPosY == 16):
delLine(_17.list)
elif(term.cursorPosY == 17):
delLine(_18.list)
elif(term.cursorPosY == 18):
delLine(_19.list)
elif(term.cursorPosY == 19):
delLine(_20.list)
def draw():
# draws the lists
# each lists is a line (Y)
# each of the list's properties are the text (X)
i1 = ''.join(_1.list)
i2 = ''.join(_2.list)
i3 = ''.join(_3.list)
i4 = ''.join(_4.list)
i5 = ''.join(_5.list)
i6 = ''.join(_6.list)
i7 = ''.join(_7.list)
i8 = ''.join(_8.list)
i9 = ''.join(_9.list)
i10 = ''.join(_10.list)
i11 = ''.join(_11.list)
i12 = ''.join(_12.list)
i13 = ''.join(_13.list)
i14 = ''.join(_14.list)
i15 = ''.join(_15.list)
i16 = ''.join(_16.list)
i17 = ''.join(_17.list)
i18 = ''.join(_18.list)
i19 = ''.join(_19.list)
i20 = ''.join(_20.list)
print i1
print i2
print i3
print i4
print i5
print i6
print i7
print i8
print i9
print i10
print i11
print i12
print i13
print i14
print i15
print i16
print i17
print i18
print i19
print i20
print i20
def write(str):
# changes the lists
c = 0
for i in str:
if term.cursorPosX > lineSize:
term.cursorPosX = 0
if term.cursorPosY > 19:
term.cursorPosY = 0
else:
term.cursorPosY = term.cursorPosY + 1
if term.cursorPosY is 0:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 1:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 2:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 3:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 4:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 5:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 6:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 7:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 8:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 9:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 10:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 11:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 12:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 13:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 14:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 15:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 16:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 17:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 18:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
elif term.cursorPosY is 19:
_1.list[term.cursorPosX] = str[c]
c = c + 1
term.cursorPosX = term.cursorPosX + 1
def writf(str,y,x):
write(str)
term.setCursorPos(y,x)
def ask(x):
i = raw_input(x)
return i
def wait(i):
time.sleep(i)
def cursorPos(y,x):
term.setCursorPos(y,x)
# end of preliminary functions
# start of actual stuff
# start of Main Stuff
# start of game functions
def startScreen():
writf('============================ ',8,10)
writf('= = ',9,10)
writf('= TEXT ADVENTURE: = ',10,10)
writf('= WAR OF ZE MONSTERS = ',11,10)
writf('= = ',10,10)
writf('============================ ',12,10)
draw()
wait(5)
# end of game functions
def Main():
startScreen()
Main()
# end of Stuff
# end of actual stuff