Lv.1
在 【Python作品分享】大佬勿进:海龟编辑器之欢迎代码【教程贴】 中回复
from tkinter import * import tkinter.messagebox as msg
root = Tk() root.title('TIC-TAC-TOE---Project Gurukul') # labels Label(root, text="player1 : X", font="times 15").grid(row=0, column=1) Label(root, text="player2 : O", font="times 15").grid(row=0, column=2)
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# for player1 sign = X and for player2 sign= Y mark = ''
# counting the no. of click count = 0
panels = ["panel"] * 10
def win(panels, sign): return((panels[1] == panels[2] == panels[3] == sign) or(panels[1] == panels[4] == panels[7] == sign) or(panels[1] == panels[5] == panels[9] == sign) or(panels[2] == panels[5] == panels[8] == sign) or(panels[3] == panels[6] == panels[9] == sign) or(panels[3] == panels[5] == panels[7] == sign) or(panels[4] == panels[5] == panels[6] == sign) or(panels[7] == panels[8] == panels[9] == sign))
def checker(digit): global count, mark, digits
# Check which button clicked
if digit == 1and digit in digits: digits.remove(digit) ##player1 will play if the value of count is even and for odd player2 will play if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button1.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 2and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button2.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 3and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button3.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 4and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button4.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 5and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button5.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 6and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button6.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 7and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button7.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 8and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button8.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
if digit == 9and digit in digits: digits.remove(digit)
if count % 2 == 0: mark = 'X' panels[digit] = mark elif count % 2 != 0: mark = 'O' panels[digit] = mark
button9.config(text=mark) count = count + 1 sign = mark
if(win(panels, sign)and sign == 'X'): msg.showinfo("Result", "Player1 wins") root.destroy() elif(win(panels, sign)and sign == 'O'): msg.showinfo("Result", "Player2 wins") root.destroy()
###if count is greater then 8 then the match has been tied if(count > 8and win(panels,'X') == Falseand win(panels,'O') == False): msg.showinfo("Result", "Match Tied") root.destroy()
####define buttons button1 = Button(root, width=15, font=('Times 16 bold'), height=7, command=lambda: checker(1)) button1.grid(row=1, column=1) button2 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(2)) button2.grid(row=1, column=2) button3 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(3)) button3.grid(row=1, column=3) button4 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(4)) button4.grid(row=2, column=1) button5 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(5)) button5.grid(row=2, column=2) button6 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(6)) button6.grid(row=2, column=3) button7 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(7)) button7.grid(row=3, column=1) button8 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(8)) button8.grid(row=3, column=2) button9 = Button(root, width=15, height=7, font=( 'Times 16 bold'), command=lambda: checker(9)) button9.grid(row=3, column=3)
root.mainloop()
2022-06-19T11:29:45 点赞:0
在 【Python作品分享】大佬勿进:海龟编辑器之欢迎代码【教程贴】 中回复
from winsound import PlaySound, SND_ASYNC # 从winsound模块,导入播放声音的命令和一个用于异步播放的常量。 from turtle import * from random import randint from time import sleep
w, h = 480, 360 screen = Screen() screen.delay(0) # 屏幕延时为1豪秒 screen.bgcolor("black") screen.setup(w, h) screen.title("拦球小游戏_turtle海龟画图版_作者:许家祎") #-------------------------------------------------------------- #封面设计 封面图 = "拦球小游戏封面设计.gif" 背景图 = "拦球小游戏背景.gif"
#--------------------------------------------------------------
拦板 = Turtle(shape='喵') 拦板.shapesize(0.5, 5) # 长方形的长度为100x10像素 拦板.penup() 拦板.speed(0) 拦板.color("white", "white") 拦板.sety(50-h/2)
def 向右移(): 拦板.setx(拦板.xcor() + 10)
def 向左移(): 拦板.setx(拦板.xcor() - 10)
screen.onkeypress(向右移, "Right") screen.onkeypress(向左移, "Left") screen.listen() #-------------------------------------------------------------- 弹球 = Turtle(shape='circle') # 新建海龟,形状为圆形 弹球.speed(0) # 速度为最快. 弹球.penup() 弹球.color("yellow", "yellow") x速度 = randint(2, 3) # 设置初始水平速度 y速度 = randint(2, 3) # 设置初始垂直速度
弹球丢失 = False while not 弹球丢失:
x = 弹球.xcor() + x速度 # 设置弹球在水平方向移动 x速度 y = 弹球.ycor() + y速度 # 设置弹球在垂直方向移动 y速度 弹球.goto(x, y)
if x > w/2or x < -w/2: x速度 = - x速度 PlaySound(碰撞声, SND_ASYNC) # 异步播放音效,这就不必等到声音播放结束后才能运行下面的代码。
if y > h/2: y速度 = - y速度 PlaySound(碰撞声, SND_ASYNC) if y < -h/2: 弹球丢失 = True
拦板左x = 拦板.xcor() - 50 拦板右x = 拦板.xcor() + 50 拦板上y = 拦板.ycor() + 5 拦板下y = 拦板.ycor() - 5
if x < 拦板右x and x > 拦板左x: if y < 拦板上y and y > 拦板下y: y速度 = - y速度 PlaySound(碰撞声, SND_ASYNC)
sleep(0.01)
2022-06-19T11:36:38 点赞:0
在 【Python作品分享】大佬勿进:海龟编辑器之欢迎代码【教程贴】 中回复
# coding:utf-8 皮卡丘代码 import turtle as t
def infoPrt(): print('coordinate: ' + str(t.pos())) print('angle: ' + str(t.heading()))
t.pensize(3) t.hideturtle() t.colormode(255) t.color("black") t.setup(700, 650) t.speed(10) t.st() #t.dot() t.pu() #t.goto(-150,100) t.goto(-210, 86) t.pd() infoPrt() # 头 print('头') t.seth(85) t.circle(-100, 50) #t.seth(78) #t.circle(-100,25) infoPrt() t.seth(25) t.circle(-170, 50) infoPrt() # 右耳 print('右耳') t.seth(40) #t.circle(-250,52) t.circle(-250, 30) infoPrt() # 右耳尖 t.begin_fill() # 左 t.circle(-250, 22) #t.fillcolor("pink") # 右 t.seth(227) t.circle(-270, 15) prePos = t.pos() infoPrt() # 下 t.seth(105) t.circle(100, 32) t.end_fill() t.pu() t.setpos(prePos) t.pd() t.seth(212) t.circle(-270, 28) prePos = t.pos() t.pu() t.goto(t.xcor()+5, t.ycor()-2) t.pd() # 躯干 print('躯干') t.seth(280) t.circle(500, 30) infoPrt() # 臀部 print('臀部') t.seth(120) #t.circle(150, -55) t.circle(150, -11) p_tail = t.pos() t.circle(150, -44) p_butt = t.pos() infoPrt() # 尾巴 t.pu() t.setpos(p_tail) t.pd() t.begin_fill() t.seth(50) t.fd(25) t.seth(-50) t.fd(30) p_tail1 = t.pos t.seth(-140) t.fd(36) t.end_fill() t.seth(39) # 右尾和h1 t.fd(72) # 右尾和v1 t.seth(125) t.fd(48) # 右尾和h2 t.seth(40) t.fd(53) # 右尾和v2 t.seth(88) t.fd(45) # 右尾和h3 t.seth(35) t.fd(105) # 右尾和v3 t.seth(105) t.circle(850, 8) #t.fd(105) t.seth(215) #t.fd(125) t.circle(850, 11) t.seth(280) t.fd(110) t.seth(220) t.fd(50) t.seth(309) t.fd(56) # 底盘 print('底盘') t.pu() t.setpos(p_butt) t.pd() t.seth(20) t.circle(120, -45) infoPrt() t.seth(330) t.circle(-150, -30) infoPrt() prePos = t.pos() t.pu() t.goto(t.xcor()+20, t.ycor()) t.pd() t.seth(230) t.circle(-70, 120) p_bot = t.pos() # 两脚-right t.pu() t.setpos(p_butt) t.setpos(t.xcor()+5, t.ycor()+5) t.pd() t.seth(-86) t.fd(30) t.seth(-93) t.fd(33) t.seth(-225) t.circle(-150, 22) # 两脚-left t.pu() t.setpos(p_bot) t.setpos(t.xcor()+85, t.ycor()-43) t.pd() t.seth(-105) t.fd(50) t.seth(-225) t.circle(-150, 22) # 左躯干 print('躯干') t.pu() t.setpos(p_bot) t.pd() t.seth(90) t.circle(450, 13) p_lfhd = t.pos() t.circle(450, 5) t.pu() t.circle(450, 5) t.pd() t.circle(450, 6) infoPrt() # 左脸 print('左脸') t.seth(330) t.circle(50, -90) infoPrt() # 左酒窝 t.seth(30) t.circle(-15, 120) t.seth(-70) t.circle(-30, 90) # 左手 t.pu() t.setpos(p_lfhd) t.pd() t.seth(160) t.circle(150, 30) infoPrt() t.seth(180) t.circle(-30, 150) t.fd(67) t.pu() t.setpos(t.xcor()-40, t.ycor()-60) t.pd() t.seth(200) t.circle(-5, 180) # 右手 t.pu() t.setpos(p_lfhd) t.setpos(t.xcor()+180, t.ycor()+5) t.pd() t.seth(200) t.circle(-50, 100) t.pu() t.circle(-50, 15) t.pd() t.circle(-50, 65) t.pu() t.setpos(t.xcor()+10, t.ycor()-45) t.pd() #t.seth(270) #t.circle(-30, -180) t.seth(80) t.fd(10) t.seth(165) t.circle(10, 60) t.seth(90) t.fd(5) t.seth(165) t.circle(10, 60) t.seth(95) t.fd(5) t.seth(185) t.circle(10, 60) t.seth(105) t.fd(10) t.seth(230) t.fd(20) t.seth(145) t.fd(10) t.seth(285) t.fd(20) # 右酒窝 t.pu() t.setpos(t.xcor()-40, t.ycor()+110) t.pd() t.circle(27, 360) # 嘴 t.pu() t.setpos(t.xcor()-30, t.ycor()+28) t.pd() t.seth(280) t.circle(-130, 30) t.seth(270) t.circle(-6, 160) t.seth(130) t.circle(-130, 30) t.pu() t.setpos(t.xcor()-5, t.ycor()+5) t.pd() t.seth(160) t.circle(-20, -70) t.seth(160) t.circle(-30, -60) t.pu() t.setpos(t.xcor(), t.ycor()-28) t.pd() t.seth(200) t.circle(50, 58) # 左眼 t.pu() t.setpos(t.xcor()-40, t.ycor()+90) t.pd() t.circle(5) t.pu() t.setpos(t.xcor()+5, t.ycor()+10) t.pd() t.begin_fill() t.seth(190) t.circle(15, 130) t.seth(310) t.circle(10, 15) t.seth(0) t.circle(17, 133) t.seth(90) t.circle(10, 15) t.end_fill() t.pu() t.setpos(t.xcor()+2, t.ycor()-15) t.pd() t.color("white") t.begin_fill() t.circle(5) t.end_fill() # 右眼 t.pu() t.setpos(t.xcor()+85, t.ycor()+15) t.pd() t.color("black") t.circle(5) t.pu() t.setpos(t.xcor()+5, t.ycor()+10) t.pd() t.begin_fill() t.seth(190) t.circle(20, 130) t.seth(310) t.circle(10, 15) t.seth(0) t.circle(22, 133) t.seth(90) t.circle(13, 15) t.end_fill() t.pu() t.setpos(t.xcor()-7, t.ycor()-15) t.pd() t.color("white") t.begin_fill() t.circle(7) t.end_fill() # 左耳 t.color("black") t.pu() t.goto(-210, 86) t.setpos(t.xcor()+15, t.ycor()+38) t.pd() t.seth(90) t.circle(-250, 30) t.begin_fill() # 左 t.circle(-250, 18) # 右 t.seth(270) t.circle(-270, 12) prePos = t.pos() # 下 t.seth(180) t.circle(100, 30) t.end_fill() t.pu() t.setpos(prePos) t.pd() t.seth(270) t.circle(-270, 18) t.done()
2022-06-19T11:39:58 点赞:0