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()