python多窗口显示内容_Python怎么让Turtle与TK两个窗口里的内容显示在同一个窗口并且可以叠置?...

import tkinter as tk

from turtle import Turtle

from package.gaming import *

class Box(tk.Canvas):

"""这是格子,一个“棋盘”可能有30*30的格子。用tk的Label实现"""

def __init__(self, x, y, display, **kw):

super(Box, self).__init__(**kw)

self.occupant = None

self.configure(bg='#4CAF50', height=30, width=30, highlightthickness=0)

self.hp = 20

self.x = x

self.y = y

self.display = display

self.top = None

self.bottom = None

self.left = None

self.right = None

def box_color_to_empty(self):

pass

def box_color_to_player(self, player):

self.occupant = player

self.configure(bg=player.color)

def occupant_change(self, player):

self.occupant = player

self.configure(bg=player.color)

def point_to_update(self):

if self.y > 0:

self.top = self.display.box_list[self.x][self.y-1]

else:

self.top = None

if self.y < 18:

self.bottom = self.display.box_list[self.x][self.y+1]

else:

self.bottom = None

if self.x > 0:

self.left = self.display.box_list[self.x-1][self.y]

else:

self.left = None

if self.x < 18:

self.right = self.display.box_list[self.x+1][self.y]

else:

self.right = None

class Display(Turtle):

""""""

def __init__(self):

self.root = tk.Tk()

Turtle.__init__(self, shape="square")

self.root.title("AI Constent")

self.frame_for_box = tk.Frame(self.root)

self.frame_for_box.configure(height = 200,width = 200, bg="#F5F5F5")

self.box_list = [[]]

for i in range(361):

r = int(i / 19)

c = i % 19

if i % 19 == 18:

self.box_list.append([])

self.box_list[r].append(Box(master=self.frame_for_box, x=c, y=r, display=self))

self.box_list[r][c].grid(padx=1, pady=1, row=r, column=c)

# self.box_list[3][3].configure(bg='#009688')

global MAP; MAP = self.box_list

self.frame_for_box.grid()

self.players = []

def add_player(self, player):

self.players.append(player)

self.root.after(500, self.color_update)

def color_update(self):

for i in range(len(self.players[0].territory_list)):

self.players[0].territory_list[i]\

.occupant_change(self.players[0])

print(player_1.territory_list[0].occupant)

print("Top Box is", self.players[0].territory_list[0].top.x)

def map_update(self):

for i in range(19):

for j in range(19):

self.box_list[i][j].point_to_update()

if __name__ == '__main__':

display_1 = Display()

player_1 = Player('#009688', display_1)

display_1.add_player(player_1)

display_1.map_update()

print(display_1.box_list[3][3], player_1.territory_list[0].occupant)

print("Top Box is", player_1.territory_list[0].top.x, player_1.territory_list[0].top.y)

print(MAP)

display_1.root.mainloop()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值