簡體   English   中英

Python詛咒如何在終端中間打印

[英]Python Curses how to print in the middle of the Terminal

我正嘗試用詛咒制作一個小型街機游戲,這在過去40分鍾里一直困擾着我。 如何在屏幕中間打印內容,以及在第一個屏幕上我的語法有什么問題。addstr(游戲結束)

我正在運行linux並使用xterm。

import curses
import time
import random

color_pref = int(input('Choose color mode (0-WHITE, 1-GREEN, 2-RED, 3-BLUE): '))
screen = curses.initscr()
curses.start_color()
curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK)
curses.init_pair(2, curses.COLOR_RED, curses.COLOR_BLACK)
curses.init_pair(3, curses.COLOR_CYAN, curses.COLOR_BLACK)
curses.noecho()
screen.keypad(1)
curses.curs_set(0)
dims = screen.getmaxyx()
screen.refresh()

def game():
        x, y = 3, 2
        points = 5
        q, Vertical, Horizontal = -1, 1, 1
        gameover = False
        screen.border(0)

        if q == ord('q'):
            gameover = True

        if gameover == True:
            screen.clear()
            screen.border()
            screen.refresh()
            screen.nodelay(0)
            score = '1'
            message2 = 'Press Space to Play Again.'
            message3 = 'Press q to Quit.'
            message4 = 'You killed ' + score+ 'enemies'
            screen.addstr(int(int(dims[0])/2-1), int(int(dims[1])) - int(len(message))), 'Game Over!', curses.color_pair(color_pref)|curses.A_BOLD)
            screen.addstr(int(int(dims[0])/2-1), int(int(dims[1])) - int(len(message4))), message4)
            screen.addstr(int(int(dims[0])/2+3), int(int(dims[1])) - int(len(message2))), message2)
            screen.addstr(int(int(dims[0])/2+4), int(int(dims[1])) - int(len(message3))), message3)
            screen.getch()

game()
curses.endwin()

作為我的第一個答案,我修復了您的語法。 您缺少4個左括號。

import curses
import time
import random

color_pref = int(input('Choose color mode (0-WHITE, 1-GREEN, 2-RED, 3-BLUE): '))
screen = curses.initscr()
curses.start_color()
curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK)
curses.init_pair(2, curses.COLOR_RED, curses.COLOR_BLACK)
curses.init_pair(3, curses.COLOR_CYAN, curses.COLOR_BLACK)
curses.noecho()
screen.keypad(1)
curses.curs_set(0)
dims = screen.getmaxyx()
screen.refresh()

def game():
        x, y = 3, 2
        points = 5
        q, Vertical, Horizontal = -1, 1, 1
        gameover = False
        screen.border(0)

        if q == ord('q'):
            gameover = True

        if gameover == True:
            screen.clear()
            screen.border()
            screen.refresh()
            screen.nodelay(0)
            score = '1'
            message2 = 'Press Space to Play Again.'
            message3 = 'Press q to Quit.'
            message4 = 'You killed ' + score+ 'enemies'
            screen.addstr(int(int(dims[0])/2-1), int(int(dims[1])) - int(len(message))), ('Game Over!', curses.color_pair(color_pref)|curses.A_BOLD)
            screen.addstr(int(int(dims[0])/2-1), int(int(dims[1])) - int(len(message4))), ( message4)
            screen.addstr(int(int(dims[0])/2+3), int(int(dims[1])) - int(len(message2))), ( message2)
            screen.addstr(int(int(dims[0])/2+4), int(int(dims[1])) - int(len(message3))), ( message3)
            screen.getch()

game()
curses.endwin()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM