gpt4 book ai didi

python按键简单的游戏

转载 作者:行者123 更新时间:2023-11-28 18:22:32 26 4
gpt4 key购买 nike

我想在屏幕上看到一个符号,例如(散列)'#'。 Sign 将有一些起始位置,比方说 (0, 0)。如果我按向右箭头,我希望看到标志向右移动,如果我按向左箭头,我希望看到标志向左移动,等等。到目前为止,我的代码看起来像这样,它适用于阅读 pos,但我想添加某种“动画”,以便我可以看到标志在屏幕上移动:

!更新:只是为了给你一个线索,我创建了“图标”,现在当你向右或向左按时,图标会向所需方向移动。

from msvcrt import getch

icon = chr(254)
pos = [0, 0]
t = []
def fright():
global pos
pos[0] += 1
print ' ' * pos[0],
print(icon)

def fleft():
global pos
pos[0] -= 1
print ' ' * pos[0],
print(icon)

def fup():
global pos
pos[1] += 1

def fdown():
global pos
pos[1] -= 1

def appendTab():
global pos, t
t.append(pos)

while True:
print'Distance from zero: ', pos
key = ord(getch())

if key == 27: #ESC
break
elif key == 13: #Enter
print('selected')
appendTab()
elif key == 32: #Space, just a small test - skip this line
print('jump')
print(t)
elif key == 224: #Special keys (arrows, f keys, ins, del, etc.)
key = ord(getch())
if key == 80: #Down arrow
print('down')
fdown()
elif key == 72: #Up arrow
print('up')
fup()
elif key == 75: #Left arrow
print('left')
fleft()
elif key == 77: #Right arrow
print('right')
fright()

最佳答案

您可以创建一个用作 map 的列表列表,并将播放器的单元格设置为 '#'。然后打印 map ,如果玩家移动,使用 os.system('cls' if os.name == 'nt' else 'clear') 清除命令行/终端并打印更新后的 map 。

import os
from msvcrt import getch

pos = [0, 0]
# The map is a 2D list filled with '-'.
gamemap = [['-'] * 5 for _ in range(7)]
# Insert the player.
gamemap[pos[1]][pos[0]] = '#'

while True:
print('Distance from zero: ', pos )
key = ord(getch())

if key == 27: #ESC
break
elif key == 224: #Special keys (arrows, f keys, ins, del, etc.)
key = ord(getch())
if key in (80, 72, 75, 77):
# Clear previous tile if player moves.
gamemap[pos[1]][pos[0]] = '-'
if key == 80: #Down arrow
pos[1] += 1
elif key == 72: #Up arrow
pos[1] -= 1
elif key == 75: #Left arrow
pos[0] -= 1
elif key == 77: #Right arrow
pos[0] += 1

print('clear')
# Clear the command-line/terminal.
os.system('cls' if os.name == 'nt' else 'clear')
# Set the player to the new pos.
gamemap[pos[1]][pos[0]] = '#'
# Print the map.
for row in gamemap:
for tile in row:
print(tile, end='')
print()

关于python按键简单的游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44002474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com