猫史档案馆


【Python作品分享】快照抓拍【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

游戏规则:

按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


回复

上一页1 页 / 共 0下一页