TUI Python -Programm mit dem gesegneten Modul wird nur korrekt im URXVT -Terminalemulator angezeigtPython

Python-Programme
Anonymous
 TUI Python -Programm mit dem gesegneten Modul wird nur korrekt im URXVT -Terminalemulator angezeigt

Post by Anonymous »

Ich habe dieses kleine Chase -Spiel mit dem gesegneten Modul geschrieben. Während des Schreibens habe ich es mit urxvt getestet. Es funktioniert genau, wie ich in diesem Terminalemulator möchte. Wenn ich jedoch versuche, das Spiel in PowerShell unter Windows, den Roh -Linux -Tty oder sogar anderen Linux -Terminal -Emulatoren wie Xterm oder Alacritty auszuführen, bilden die Fliesen/Quadrate kein Gitter, wie sie sollten, und stapeln sich stattdessen auf der linken Seite des Bildschirms. Die Terminal -Emulatoren, die das Raster fälschlicherweise anzeigen, liefern "wahr" für gesegnete.term.does_Styling und .is_a_tty, und die Öffnungs- und Schließtextaufforderungen werden an den richtigen Stellen auf dem Bildschirm gedruckt. Code unten: < /p>
import sys, curses, blessed, time, random
from random import randrange
from blessed import *

term = blessed.Terminal()

# --- MISCELLANEOUS VARIABLES ---

direction = ''

gameon = True

tilelist = []

#name = ''

# --- CLASSES ---

class Tile(object):
'''A map tile.'''

def __init__(self, name, number, xpos, ypos):
'''Constructor
pre: x/y position on terminal, whether a unit occupies the space, and the space's status e.g. wall, explosion, empty, etc
post: tile object created with above variables defined'''

self._name = name
self._number = number
self._xpos = xpos
self._ypos = ypos

def __str__(self):

return self._name

class Player(object):
'''player'''
def __init__(self, name, ontile, hp, color, gold):
self._name = name
self._ontile = ontile
self._hp = hp
self._color = color
self._gold = gold

def __str__(self):
return self._name

def setupPlayer(self):
playerinitpos = randrange(0, 4)
if playerinitpos == 0:
self._ontile = 1
if playerinitpos == 1:
self._ontile = 7
if playerinitpos == 2:
self._ontile = 43
if playerinitpos == 3:
self._ontile = 49
self._hp = randrange(900, 1200)

def movePlayer(self, direction):
if self._ontile > 49:
raise ValueError

if direction == 'quit':
self._hp = 0

if direction == 'u':
if self._ontile < 8:
return
else:
self._ontile = self._ontile - 7
return self._ontile

if direction == 'r':
if self._ontile >= 49:
return
if self._ontile % 7 == 0:
return
else:
self._ontile = self._ontile + 1
return self._ontile

if direction == 'd':
if self._ontile > 42:
return
else:
self._ontile = self._ontile + 7
return self._ontile

if direction == 'l':
if self._ontile 0:
i._color.sort
direction = i._color[0]
return direction
elif cand == 0:
direction = 'none'
return direction

# enemy deals damage

if cand == 2:
other._hp -= 40
if cand == 1:
other._hp -= 700

# gold stuff

def drawGold(self):
for i in tilelist:
if self._ontile == i._number:
print(term.move_xy(i._xpos + 1, i._ypos - 1) + term.goldenrod(' ● '))

def moveGold(self):
self._ontile = randrange(1, 49)

def goldFoundCheck(self, other):
if self._ontile == other._ontile:
other._gold += randrange(1, 10)
self.moveGold()

def gethp(self):
scale = ' '
if self._hp >= 1100 and self._hp < 1300:
scale = '██████'
elif self._hp >= 1000 and self._hp < 1100:
scale = '█████▌'
elif self._hp >= 900 and self._hp < 1000:
scale = '█████ '
elif self._hp >= 800 and self._hp < 900:
scale = '████▌ '
elif self._hp >= 700 and self._hp < 800:
scale = '████ '
elif self._hp >= 600 and self._hp < 700:
scale = '███▌ '
elif self._hp >= 500 and self._hp < 600:
scale = '███ '
elif self._hp >= 400 and self._hp < 500:
scale = '██▌ '
elif self._hp >= 300 and self._hp < 400:
scale = '██ '
elif self._hp >= 200 and self._hp < 300:
scale = '█▌ '
elif self._hp >= 100 and self._hp < 200:
scale = '█ '
elif self._hp >= 50 and self._hp < 100:
scale = '▌ '
elif self._hp > 49:
scale = ' '
return scale

# --- FUNCTIONS ---

# player stuff

def getPlayerName():
eraseAllTiles()
term.clear()
enterstr = 'please enter your name'
d = 4
for i in range(22):
print(term.move_xy(d, 2) + term.bold(enterstr))
d += 1
wait = .001 * randrange(1, 30)
time.sleep(wait)
print(term.move_xy(26, 2) + term.blink(':'))

# fun formatting / ani

def deleteLine(l, x, y):
c = 0
for i in range(l + 1):
print(term.move_xy((x + l) - c, y) + term.bold(' '))
c += 1
wait = .001 * randrange(1, 10)
time.sleep(wait)

def deleteMultiLine(l, d, x, y):
c = 0
dc = 0
for i in range((l + 1) * d + 1):
print(term.move_xy((x + l) - c, y + dc) + term.bold(' '))
dc += 1
if dc == d:
dc = 0
c+= 1
wait = .001 * randrange(1, 15)
time.sleep(wait)

def deleteFastMultiLine(l, d, x, y):
c = 0
dc = 0
for i in range((l + 1) * d + 1):
print(term.move_xy((x + l) - c, y + dc) + term.bold(' '))
dc += 1
if dc == d:
dc = 0
c+= 1
wait = .0005
time.sleep(wait)

# tile stuff

def makeTiles():
xplace = 70
yplace = 0
for i in range(1, 50):
if (i - 1) % 7 == 0:
yplace -= 3
xplace -= 42
tilename = ('tile' + str(i))
tilelist.append(Tile(tilename, i, xplace, yplace))
xplace += 6

def drawTile(i):
print(term.move_xy(i._xpos, i._ypos) + term.bold('╭───╮'))
print(term.move_xy(i._xpos, (i._ypos - 1)) + term.bold('│ │'))
print(term.move_xy(i._xpos, (i._ypos - 2)) + term.bold('╰───╯'))

def drawTileColor(i, color):
print(term.move_xy(i._xpos, i._ypos) + color + ('╭───╮'))
print(term.move_xy(i._xpos, (i._ypos - 1)) + color + ('│ │'))
print(term.move_xy(i._xpos, (i._ypos - 2)) + color + ('╰───╯'))

def drawAllTiles():
for i in tilelist:
drawTile(i)
time.sleep(0.005)

def drawFastAllTiles():
for i in tilelist:
drawTile(i)

def eraseTile(i):
print(term.move_xy(i._xpos, i._ypos) + term.bold(' '))
print(term.move_xy(i._xpos, (i._ypos - 1)) + term.bold(' '))
print(term.move_xy(i._xpos, (i._ypos - 2)) + term.bold(' '))

def eraseAllTiles():
for i in tilelist:
eraseTile(i)
time.sleep(0.005)

# input

def getNameInput():
p = 0
name = ''
while True:
print(term.move_xy(28, 2) + term.blink('▂▂▂'))
for i in range(4):
if len(name) >= 3:
print(term.move_xy(26, 2) + term.bold(':'))
print(term.move_xy(11, 3) + term.blink('press any key'))
inp = term.inkey()
if inp == '\n':
break
p += 1
if len(name)
Ich bin stumpf. Jede Unterstützung, die Sie anbieten können, schätze ich!>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post