from pynput.keyboard import Key, Listener, KeyCode
import random
import sys #sys为结束整个程序
number = 100
def on_press(key):
#gobal用来申明number为全局变量,可在函数内对函数外对number进行操作
global number
if key == KeyCode.from_char('+'):
number = number + int(random.randint(1,100))
if number >= 100:
number = 100
print(f"已达到最大血量{number},游戏继续")
else:
print(f"血量增加,现在血量:{number},游戏继续")
if key == KeyCode.from_char('-'):
number =number - int(random.randint(1,100))
if number <= 0 :
number = 0
print("血量已耗尽,游戏结束!")
sys.exit() #此时自动结束并退出游戏
else:
print(f"血量减少,现在血量:{number},游戏继续")
print()
with Listener(on_press = on_press) as listener:
listener.join()
展开
1
Calvin
2022-12-16来自广东
import random
import sys
from pynput.keyboard import Listener, KeyCode
bg: list[list[int | str]] = [[0, 0, 0], [0, 'x', 0], [0, 0, 0]]
blood = 100
def print_bg():
for x in bg:
print(x[0], x[1], x[2])
print_bg()
def on_press(key):
global blood
if key == KeyCode.from_char('a'):
for i in 0, 1, 2:
for j in 0, 1, 2:
if bg[i][j] == 'x' and j > 0:
bg[i][j] = 0
bg[i][j - 1] = 'x'
elif key == KeyCode.from_char('d'):
for i in 0, 1, 2:
for j in 2, 1, 0:
if bg[i][j] == 'x' and j < 2:
bg[i][j] = 0
bg[i][j + 1] = 'x'
elif key == KeyCode.from_char('w'):
for i in 0, 1, 2:
for j in 0, 1, 2:
if bg[i][j] == 'x' and i > 0:
bg[i][j] = 0
bg[i - 1][j] = 'x'
elif key == KeyCode.from_char('s'):
for i in 2, 1, 0:
for j in 0, 1, 2:
if bg[i][j] == 'x' and i < 2:
bg[i][j] = 0
bg[i + 1][j] = 'x'
elif key == KeyCode.from_char('+'):
blood += random.randint(0, 100)
if blood > 100:
blood = 100
print(f"血量增加,当前血量 {blood},游戏继续 :-)")
elif key == KeyCode.from_char('-'):
blood -= random.randint(0, 100)
if blood < 0:
blood = 0
print(f"血量不足,当前血量 {blood},游戏结束 :'-(")
sys.exit()
print(f"血量减少,当前血量 {blood},游戏继续 :-(")
print()
print_bg()
with Listener(on_press=on_press) as listener:
listener.join()
展开
1
不再是入门水平pytho...
2023-08-15来自上海
from pynput.keyboard import Key, Listener, KeyCode
import random
background = [[0,0,0],
[0,"x",0],
[0,0,0]]
# 初始化血量
health = 100
def on_press(key):
global health
if key == KeyCode.from_char("w"):
for i in 0,1,2:
for j in 0,1,2:
if background[i][j] == "x" and i > 0:
background[i][j] = 0
background[i-1][j] = "x"
elif key == KeyCode.from_char("s"):
for i in 2,1,0:
for j in 0,1,2:
if background[i][j] == "x" and i < 2:
background[i][j] = 0
background[i+1][j] = "x"
break
elif key == KeyCode.from_char("a"):
for i in 0,1,2:
for j in 0,1,2:
if background[i][j] == "x" and j > 0:
background[i][j] = 0
background[i][j-1] = "x"
break
elif key == KeyCode.from_char("d"):
for i in 2,1,0:
for j in 0,1,2:
if background[i][j] == "x" and j < 2:
background[i][j] = 0
background[i][j+1] = "x"
break
elif key == KeyCode.from_char("+"):
health += random.randint(1,100)
if health > 100:
health = 100
elif key == KeyCode.from_char("-"):
health -= random.randint(1,100)
if health < 0:
print("Game Over,your health is 0")
return False
print()
for site in background:
print(site)
print(f"health:",{health})
with Listener(on_press=on_press) as listener:
listener.join()
展开
Greenery
2023-07-16
from pynput.keyboard import Key, Listener, KeyCode
from random import random
blood = 1000 # 总血量[0,1000]
def on_press(key):
global blood
delta = int(random() * 100 + 1)
if key == KeyCode.from_char('+'):
blood += delta
blood = blood if blood < 1000 else 1000
print(f"加血{delta}总血{blood}")
elif key == KeyCode.from_char('-'):
blood -= delta
blood = blood if blood > 0 else 0
print(f"扣血{delta}总血{blood}")
if blood <= 0:
quit()
with Listener(on_press=on_press) as listener:
listener.join()
Geek_Mike
2023-06-29来自云南
#控制飞机的血量
from pynput.keyboard import Key, Listener, KeyCode
import random
hp = 100
def on_press(key):
while hp > 0:
if key == KeyCode.from_char('+') and hp == 100:
print(f'当前HP是{hp}')
elif key == KeyCode.from_char('+') and hp < 100:
random_hp = random.randint(1,100)
hp = hp + random_hp
if hp < 100:
print(f'当前HP是{hp}')
else:
print('当前HP是100')
elif key == KeyCode.from_char('-'):
random_hp = random.randint(1,100)
hp = hp - random_hp
print(f'当前HP是{hp}')
print('当前HP为0,游戏结束')
因为技术原因在电脑上执行不了,用AI模拟了一下执行结果是正确的
陈小菡
2023-06-20来自四川
blood = 100
print(f"你的初始血量为{blood}")
def on_press(key):
global blood
if key == KeyCode.from_char('+') and blood < 100:
blood += random.randint(1, 100)
if blood >= 100:
blood = 100
print(f"你已加血,当前血量为{blood}")
elif key == KeyCode.from_char('-') and blood > 0:
blood -= random.randint(1, 100)
if blood <= 0:
blood = 0
print("你已死亡,游戏结束")
exit(-1)
else:
print(f"你受到攻击,当前血量为{blood}")
with Listener(on_press=on_press) as listener:
listener.join()
黄英镑
2023-05-26来自广东
import random
from pynput import keyboard
background = [[0, 0, 0],
[0, 1, 0],
[0, 0, 0]]
life = 100
def go_up():
for i, row in enumerate(background):
for (j, location) in enumerate(row):
if location and i > 0:
background[i][j] = 0
background[i - 1][j] = 1
break
def go_left():
for i, row in enumerate(background):
for (j, location) in enumerate(row):
if location and j > 0:
background[i][j] = 0
background[i][j - 1] = 1
break
def go_down():
moved = False
for i, row in enumerate(background):
for (j, location) in enumerate(row):
if location and i < (len(background) - 1):
background[i][j] = 0
background[i + 1][j] = 1
moved = True
break
if moved:
break
def go_right():
for i, row in enumerate(background):
for (j, location) in enumerate(row):
if location and j < (len(row) - 1):
background[i][j] = 0
background[i][j + 1] = 1
break
def on_release(key):
global life
if key == keyboard.KeyCode.from_char('+'):
if life < 100:
life += random.randint(1, (100 - life))
elif key == keyboard.KeyCode.from_char('-'):
if life > 0:
life -= random.randint(1, life)
elif key == keyboard.Key.up:
go_up()
elif key == keyboard.Key.left:
go_left()
elif key == keyboard.Key.down:
go_down()
elif key == keyboard.Key.right:
go_right()
print('当前位置:')
for row in background:
print(row)
print(f'当前血量:{life}')
if life == 0:
print('游戏结束!')
return False
with keyboard.Listener(on_release=on_release) as listener:
listener.join()
展开
sunny
2023-02-02来自江苏
# 血量增减
# pip3 install pynput
from pynput.keyboard import Key, Listener, KeyCode
import random
blood = 100
def on_press(key):
global blood #不加global的时候,在函数内部是改不了外面的全局变量的
if key == KeyCode.from_char('u'): #加血
ra = random.random()
change_blood = int(random.random() * 100 + 1)
blood = blood + change_blood
if blood < 100:
print(f"blood is {blood},continue")
else:
blood = 100
print(f"blood is {blood},continue")
elif key == KeyCode.from_char('d'): #减血
ra = random.random()
change_blood = int(random.random() * 100 + 1)
blood = blood - change_blood
if blood > 0:
print(f"blood is {blood},continue")
else:
blood = 0
print(f"your blood is {blood},gameover")
exit(0)
with Listener(on_press=on_press) as listener:
listener.join()