i'm writing minesweeper game using tkinter, , appears function alright, python crashes every time after number of clicks, , believe because i've added images "flags" used flag mine is. below function draws of cells, called each move/click.
def draw_cake_cell(canvas, row, col): # draws different cells on board (blank cell, numbers, cake flags) margin = 5 cellsize = 30 board = canvas.data['board'] mask = canvas.data['mask'] cake_count = canvas.data['cake_count'] player_board = canvas.data['player_board'] left = margin + col*cellsize top = margin + row*cellsize bottom = top + cellsize right = left+cellsize flag_img = photoimage(file="flag.gif") flag_label = label(image = flag_img) flag_label.image = flag_img cake_img = photoimage(file = "cakeflag.gif") cake_label = label(image = cake_img) cake_label.image = cake_img canvas.create_rectangle(left,top, right, bottom, fill = 'gray') if board[row][col] == -1: if canvas.data['isgameover'] == true: canvas.create_image((left+right)/2,(top+bottom)/2,image = cake_img) elif mask[row][col] == -2: canvas.create_image((left+right)/2,(top+bottom)/2,image = flag_img) else: if cake_count[row][col] > 0 , player_board[row][col] == 1: value = cake_count[row][col] canvas.create_rectangle(left,top,right,bottom, fill = 'white') canvas.create_text((left+right)/2,(top+bottom)/2 , text = str(value), font = ('helvetica',12)) if mask[row][col] == -2: canvas.create_image((left+right)/2,(top+bottom)/2,image = flag_img) if cake_count[row][col] == 0 , player_board[row][col] == 1: canvas.create_rectangle(left,top,right,bottom, fill = 'white')
since using python3, (left+right)/2
float
, not int
. maybe that's problem - use (left+right)//2
.
Comments
Post a Comment