1、過年的時候在手機上下載了2048玩了幾天,心血來潮決定用py寫一個,剛開始的時候想用QT實現,發現依賴有點大。正好看到graphics.py是基于tkinter做的封裝就拿來練手,并借用了CSDN一位朋友封裝的model.py(2048邏輯部分)
2、由于是練手的所以不免有寫的不好的地方請大家噴的輕點。
先看看演示圖片

附上源碼:
2048主程
代碼如下:
#-*-coding:utf-8-*-
#python3.3.5
from graphics import*
from tkinter.messagebox import askquestion
from tkinter.messagebox import showinfo
import time,random,model,configparser
import GUI_2048 as g
class Application():
'''
初始化應用程序
'''
def __init__(self):
self.matrix = model.init()
self.win = g.init()
self.create_r_2048(self.win)
self.show_matrix(self.matrix)
self.win.master.bind("<Key>", self.bind_key)
while 1:
update()
'''
創建網格上的16個方格、最佳成績、當前分數
'''
def create_r_2048(self,win):
p = Point(10, 190)
n = 4
self.rt = [0 for row in range(n*n)]
for i in range(n):
for a in range(n):
_p = Point(p.x + 60*i, p.y + 60*a)
self.rt[i+4*a] = g.rectangle_2048(win,_p)
#最佳成績
self.zjcj = g._text(win,Point(135, 60 + 30),Point(135 + 115, 60 + 30 + 30),self.getMaxScore())
#當前分數
self.dqjf = g._text(win,Point(135, 120 + 30),Point(135 + 115, 120 + 30 + 30),'0')
'''
從配置文件中獲取最佳成績
'''
def getMaxScore(self):
config = configparser.ConfigParser()
config.read('config.ini')
新聞熱點
疑難解答