用户:
安静的刺牙螺3puh查看:12 回复:0 评论:0 创建时间:2020-08-08T14:37:51
【作品展示】

【作品介绍】
游戏规则:按q控制玩家1
按p控制玩家2
如果前一个图形的颜色和后一个图形的颜色是一样的,
而且按下了p或q键加一分,
否则减一分
(双人游戏)
【作品源代码】
from tkinter import Canvas, Tk, HIDDEN, NORMAL, CHORD # 导入GUI
from random import *
from time import *
'''
游戏规则:
按q控制玩家1
按p控制玩家2
如果前一个图形的颜色和后一个图形的颜色是一样的,
而且按下了p或q键加一分,
否则减一分
(双人游戏)
'''
def next_shape():
'''
我用它来展示下一个图形
'''
global shape
global previou_clour
global current_clour
previou_clour = current_clour
c.delete(shape)
if len(shapes) > 0:
shape = shapes.pop()
c.itemconfigure(shape, state=NORMAL)
current_clour = c.itemcget(shape, 'fill')
root.after(1000, next_shape)
else:
c.unbind('p') # 取消感应p键
c.unbind('q') # 取消感应q键
if player1_score > player2_score:
c.create_text(200, 200, text='玩家1赢了!') # 在窗口显示文字
elif player1_score < player2_score:
c.create_text(200, 200, text='玩家2赢了!') # 在窗口显示文字
else:
c.create_text(200, 200, text='平局!') # 在窗口显示文字
def snap(event):
global shape
global player1_score
global player2_score
global previou_clour
valid = False # 一个标志变量
c.delete(shape)
if previou_clour == current_clour:
valid = True
if valid:
if event.char == 'q':
player1_score = player1_score + 1
shape = c.create_text(200, 200, text='玩家1加一分!') # 在窗口显示文字
else:
player2_score = player2_score + 1
shape = c.create_text(200, 200, text='玩家2加一分!') # 在窗口显示文字
else:
if event.char == 'q':
player1_score = player1_score - 1
shape = c.create_text(200, 200, text='玩家1减一分!') # 在窗口显示文字
else:
player2_score = player2_score - 1
shape = c.create_text(200, 200, text='玩家2减一分!') # 在窗口显示标题文字
c.pack()
root.update_idletasks()
sleep(1)
previou_clour = ''
root = Tk()
root.title('抓拍游戏~~~~') # 在窗口显示标题文字
c = Canvas(root, height=400, width=400)
shapes = [] # 创建图形list
# 画圆:
circle = c.create_oval(35, 20, 365, 350, outline='black',
fill='black', state=HIDDEN)
shapes.append(circle)
circle = c.create_oval(35, 20, 365, 350, outline='red',
fill='red', state=HIDDEN)
shapes.append(circle)
circle = c.create_oval(35, 20, 365, 350, outline='green',
fill='green', state=HIDDEN)
shapes.append(circle)
circle = c.create_oval(35, 20, 365, 350, outline='blue',
fill='blue', state=HIDDEN)
shapes.append(circle)
circle = c.create_oval(35, 20, 365, 350, outline='yellow',
fill='yellow', state=HIDDEN)
shapes.append(circle)
# 画长方形:
rectangle = c.create_rectangle(
35, 100, 365, 370, outline='black', fill='black', state=HIDDEN)
shapes.append(rectangle)
rectangle = c.create_rectangle(
35, 100, 365, 370, outline='red', fill='red', state=HIDDEN)
shapes.append(rectangle)
rectangle = c.create_rectangle(
35, 100, 365, 370, outline='green', fill='green', state=HIDDEN)
shapes.append(rectangle)
rectangle = c.create_rectangle(
35, 100, 365, 370, outline='blue', fill='blue', state=HIDDEN)
shapes.append(rectangle)
rectangle = c.create_rectangle(
35, 100, 365, 370, outline='yellow', fill='yellow', state=HIDDEN)
shapes.append(rectangle)
# 画正方形:
喵 = c.create_rectangle(
35, 20, 365, 270, outline='black', fill='black', state=HIDDEN)
shapes.append(喵)
喵 = c.create_rectangle(
35, 20, 365, 270, outline='red', fill='red', state=HIDDEN)
喵 = c.create_rectangle(
35, 20, 365, 270, outline='green', fill='green', state=HIDDEN)
喵 = c.create_rectangle(
35, 20, 365, 270, outline='blue', fill='blue', state=HIDDEN)
shapes.append(喵)
喵 = c.create_rectangle(
35, 20, 365, 270, outline='yellow', fill='yellow', state=HIDDEN)
shapes.append(喵)
# 画圆弧(切片):
arc = c.create_arc(
-235, 120, 365, 370, outline='black', fill='black', style=CHORD, state=HIDDEN)
shapes.append(arc)
arc = c.create_arc(
-235, 120, 365, 370, outline='red', fill='red', style=CHORD, state=HIDDEN)
shapes.append(arc)
arc = c.create_arc(
-235, 120, 365, 370, outline='green', fill='green', style=CHORD, state=HIDDEN)
shapes.append(arc)
arc = c.create_arc(
-235, 120, 365, 370, outline='yellow', fill='yellow', style=CHORD, state=HIDDEN)
shapes.append(arc)
# 画圆弧(实心):
arc = c.create_arc(
-235, 120, 365, 370, outline='black', fill='black', state=HIDDEN)
shapes.append(arc)
arc = c.create_arc(
-235, 120, 365, 370, outline='red', fill='red', state=HIDDEN)
shapes.append(arc)
arc = c.create_arc(
-235, 120, 365, 370, outline='green', fill='green', state=HIDDEN)
shapes.append(arc)
arc = c.create_arc(
-235, 120, 365, 370, outline='yellow', fill='yellow', state=HIDDEN)
shapes.append(arc)
# 画三角形:
polygon = c.create_polygon(
35, 200, 365, 200, 200, 35, outline='black', fill='black', state=HIDDEN)
shapes.append(polygon)
polygon = c.create_polygon(
35, 200, 365, 200, 200, 35, outline='red', fill='red', state=HIDDEN)
shapes.append(polygon)
polygon = c.create_polygon(
35, 200, 365, 200, 200, 35, outline='green', fill='green', state=HIDDEN)
shapes.append(polygon)
polygon = c.create_polygon(
35, 200, 365, 200, 200, 35, outline='blue', fill='blue', state=HIDDEN)
shapes.append(polygon)
polygon = c.create_polygon(
35, 200, 365, 200, 200, 35, outline='yellow', fill='yellow', state=HIDDEN)
shapes.append(polygon)
c.pack()
shuffle(shapes) # 打乱图形list
shape = None
previou_clour = 'a'
current_clour = 'b'
player1_score = 0
player2_score = 0
root.after(5000, next_shape)
c.bind('q', snap) # 感应p键
c.bind('p', snap) # 感应q键
c.focus_set()
root.mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn