首页 > 编程语言 >【四二学堂】python四子连珠游戏-4(落下棋子后位置记录下来。保证每个棋子能够落在准确的位置上)

【四二学堂】python四子连珠游戏-4(落下棋子后位置记录下来。保证每个棋子能够落在准确的位置上)

时间:2023-04-21 16:40:51浏览次数:36  
标签:__ canvas 四子 self 棋子 tk 100 def 四二

【四二学堂】python四子连珠游戏-4(落下棋子后位置记录下来。保证每个棋子能够落在准确的位置上)_python
代码:

from tkinter import*
import time

#画布
#棋盘
#鼠标左键绑定事件
#落下棋子后位置记录下来。保证每个棋子能够落在准确的位置上。

class Game:
    def __init__(self):
        #self.ball=ball
        self.clsposition = Clsposition()
        self.tk = Tk()
        self.tk.title("四二学堂Python四子连珠游戏")
        self.tk.resizable(0, 0)  # 窗口在水平、垂直方向的大小都不能改变
        # tk.wm_attributes("-topmost",1)  #画布窗口放在其他所有窗口之前
        self.canvas = Canvas(self.tk, width=700, height=700)
        # anvas = Canvas(tk,width=700,height=700,bd=0,highlightthickness=0)
        # bd=0 highlightthickness=0 确保在画布之外没有边框,看上去更美观些
        self.canvas.pack()

    def action(self,event):
        for i in range(0, 5):
            if (event.x >= 100 + i * 100 and event.x < 100 + i * 100 + 100):

                for x in range(4, -1, -1):
                    print(self.clsposition.positions[i][x])
                    if (self.clsposition.positions[i][x] == 0):

                        id1 = self.canvas.create_oval(100 + i * 100, 40, 100 + i * 100 + 100, 140, fill="red")
                        self.ball = Ball()

                        self.clsposition.positions[i][x] = 1
                        #downy = x
                        #downx = i
                        self.ball.down(id1, self.canvas, self.tk,i,x)
                        break

                #self.ball.down(id1, self.canvas, self.tk)

class Ball:
    def __init__(self):
        self.y=0
        self.y0=10

    def down(self,id1,canvas,tk,i,x):

        self.canvas=canvas
        self.tk=tk
        for i in range(0, 200):
            self.canvas.move(id1, 0, 10)  # 10像素纵向下降
            self.y=self.y+10

            if(self.y>x*100+50):
                self.y0=0
                break

            self.tk.update()
            time.sleep(0.1)


class Dlines:
    def drawline(self, canvas):
        self.canvas = canvas

        a = [100, 200, 300, 400, 500, 600]
        for ii in a:
            self.canvas.create_line(100, ii, 600, ii)
            self.canvas.create_line(ii, 100, ii, 600)

class Clsposition:
    def __init__(self):
        self.positions = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

'''
class ball:
    def down(self):
'''

if __name__=="__main__":

    ball=Ball()
    game=Game()
    game.canvas.bind('<Button-1>', game.action)
    dlines = Dlines()
    dlines.drawline(game.canvas)

    game.tk.mainloop()


标签:__,canvas,四子,self,棋子,tk,100,def,四二
From: https://blog.51cto.com/u_15545753/6213467

相关文章

  • 【四二学堂】Python数据可视化-线性图
    importmatplotlib.pyplotaspltimportnumpyasnpplt.rcParams['font.sans-serif']=['MicrosoftYaHei']#识别汉字x=np.linspace(0,2,50)#代表当前网线上有的点的number(0,2)代表x方向的起止位置分为50份plt.plot(x,x,label='北京')#Plotsomedat......
  • 【四二学堂】基于UiBot RPA开发入门---流程判断
    流程块一:dimaa=1Returna流程块二:TracePrint"a的值等于1时执行的模块"流程块三:TracePrint"a的值不等于1时执行的模块"......
  • 【四二学堂】基于UiBot RPA开发入门---Excel操作
    dimobjExcelWorkBook=""dimiRowsobjExcelWorkBook=Excel.OpenExcel(@res"测试数据一.xlsx",true,"Excel","","")iRows=Excel.GetRowsCount(objExcelWorkBook,"Sheet1")Excel.WriteRow(objExcelWorkBook,&......
  • 【四二学堂】微服务-SpringBoot+SSM之一
    Idea中NewProject参考:JavaVersion修改成13生成的项目结构如下图:修改目录成以下结构:各文件夹的内容,我们放在下一篇文章里面。......
  • 摆放棋子
    #include<iostream>#include<string.h>#include<algorithm>usingnamespacestd;constintN=1e2+10,P=1e8;intn1,n2,m1,m2;intf[N][N][15][15];intmain(){cin>>n1>>n2>>m1>>m2;f[0][0][0][0]=1;......
  • 「分治」黑白棋子的移动
    本题为3月23日23上半学期集训每日一题中A题的题解题面题目描述有2n个棋子(n≥4)排成一行,开始位置为白子全部在左边,黑子全部在右边,如下图为n=5的情形:○○○○○●●●●......
  • 洛谷P1259 黑白棋子的移动 题解
    本蒟蒻这题用的打表做法,其实也可以理解为是一种递推。先来观察一下样例:当n为7时,输出共有14行,易得输出行数为2n。ooooooo*******--oooooo--******o*oooooo******--o......
  • 【题解】P3158 [CQOI2011]放棋子
    兄弟们,我起了,一日之计在于晨呐。题意P3158[CQOI2011]放棋子有一个\(n\)行\(m\)列的棋盘和\(c\)种颜色的棋子,每种棋子有\(a_i\)个。要求不同颜色的棋子不能放......
  • 摆放棋子
    摆放棋子给定一个$n\timesm$的国际象棋棋盘(即一个$n\timesm$的方格矩阵)。我们知道传统国际象棋中,主教(象)的行走规则是只能斜走,格数不限,但不可转向。现在,我们对主......
  • Luogu P3182 [HAOI2016]放棋子
    题目链接:​​传送门​​题目说了每行有一个障碍两个障碍不在同一行也不在同一列那障碍放哪里就没关系了矩阵都不用输入或者这样理解:交换矩阵的某两行对答案是没有影响......