# 注册
def register(action):
username = action
with conn.cursor() as cursor:
query = "INSERT INTO user (user_name) VALUES (%s)"
cursor.execute(query, username)
conn.commit()
print("注册登录成功!")
# 登录
def login(action):
username = action
with conn.cursor() as cursor:
query = "SELECT * FROM user WHERE user_name=%s"
cursor.execute(query, username)
if cursor.fetchall():
print("登录成功!")
else:
print("该玩家为第一次登录,自动为其注册")
register(action)
# 选择地图
def get_map(prompt):
while True:
try:
user_input = int(input(prompt))
if user_input < 1 or user_input > 10:
print("输入无效,请输入1-3的数字。")
else:
return user_input
except ValueError:
print("输入无效,请输入一个整数。")
# 选择难度
def get_difficulty(prompt):
while True:
try:
user_input = int(input(prompt))
if user_input < 1 or user_input > 10:
print("输入无效,请输入1-3的数字。")
else:
return user_input
except ValueError:
print("输入无效,请输入一个整数。")
# 画表格
def draw_table(row,width,height):
for i in range(0 ,row):
cv.create_line(10, 10+i*40, width, 10+i*40, arrow='none')
cv.create_line(10+i*40, 10, 10+i*40, height, arrow='none')
# 画灯
def draw_lamp(row,column):
for i in range(0,row):
for u in range(0,column):
if l[i][u] == 'you':
# 亮灯
cv.create_oval(i*40+10, u*40+10, (i+1)*40+10,
(u+1)*40+10, outline='white', fill='yellow', width=2)
# 灭灯
else:
cv.create_oval(i*40+10, u*40+10, (i+1)*40+10,
(u+1)*40+10, outline='white', fill='white', width=2)
# 单击事件函数
def do_event(event):
x1 = (event.x - 10) // 40
y1 = (event.y - 10) // 40
# 翻转(x1,y1)处灯的状态
reserve(x1, y1)
# 翻转(x1,y1)周围灯的状态
# 左侧灯的状态反转
if x1 != 0:
reserve(x1 - 1, y1)
# 右侧灯的状态反转
if x1 != row-1:
reserve(x1 + 1, y1)
# 上侧灯的状态反转
if y1 != 0:
reserve(x1, y1 - 1)
# 下侧灯的状态反转
if y1 != column-1:
reserve(x1, y1 + 1)
draw_lamp(row,column)