好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 39條Python語句實現數字華容道

39條Python語句實現數字華容道

熱門標簽:淮安呼叫中心外呼系統如何 京華圖書館地圖標注 看懂地圖標注方法 蘇州人工外呼系統軟件 佛山通用400電話申請 打印谷歌地圖標注 電話外呼系統招商代理 廣東旅游地圖標注 電話機器人貸款詐騙

原以為用Python編寫“數字華容道”游戲可能需要很多代碼,完成后發現只用了39條語句,可見Python的強大。

編程的思路如下,使用9個tkinter庫的Button按鈕,按3行3列排列,每個按鈕的標題是1到8和空白中的一個,初始標題所顯示的數字和空白隨機排列。當一個按鈕被單擊后,調用事件函數,該函數有兩個參數,該按鈕的所在位置的行列號。在函數中首先判斷該按鈕(行號為x,列號為y)是否和標題為空白的按鈕(行號為x0,列號為y0)相鄰,相鄰條件是(x-x0)絕對值+(y-y0)絕對值=1,如相鄰則兩個按鈕的標題交換,就像標題不為空白的按鈕移到標題為空白的按鈕位置。然后檢查所有按鈕標題是否第1行為1、2、3,第2行為4、5、6,第3行為7、8、空白排列。檢查方法是按第1、2、3行順序,每行從左到右所有按鈕標題和列表list['12345678 ']每一項值逐一比較。下邊是所有代碼。應再加一重玩按鈕,單擊該按鈕實現標題所顯示的數字和空白隨機重新排列。改成4行4列或5行5列的數字華容道也是不困難的。

import random
from tkinter import Tk,Button,Label
def btnClick(x,y):       #所有按鈕的事件函數,有兩個參數,被點擊按鈕所在位置行列號
    global row_of_space  #說明變量是全局變量,即變量在主程序中定義的,必加否則報錯
    global col_of_space  #在函數內為變量賦值,默認是局部變量,這兩個變量是空白按鈕的行列號  
    if abs(x-row_of_space)+abs(y-col_of_space)==1:  #判斷被單擊按鈕是否和空白按鈕相鄰
        buttons[row_of_space,col_of_space]['text']=buttons[x,y]['text']
        buttons[x,y]['text']=' '  #如相鄰,被點擊按鈕和空白按鈕交換標題
        row_of_space=x            #現在被點擊按鈕標題變為空白,行列被保存
        col_of_space=y
        n=0   #按第1、2、3行順序,每行從左到右所有按鈕標題和列表numbers每一項值逐一比較
        for row in range(3):
            for col in range(3):
                if buttons[row,col]['text']!=numbers[n]:  #有1項不等,表示排列不正確退出
                    return
                n+=1
        label['text']='你贏了' #到這里,說明排列正確,玩家贏了,修改Label標題
root = Tk()  #初始化窗口
root.title('數字華容道') #窗口標題
root.geometry("300x250+200+20") #窗口寬300,高=300,窗口左上點離屏幕左邊界200,離屏幕上邊界距離20。
root.resizable(width=False,height=False) #設置窗口是否可變,寬不可變,高不可變,默認為True
label=Label(root,text='單擊數字移動方塊',fg='red',font=("Arial",15))
label.place(x=20,y=10,width=250,height=40)
row_of_space=0  #保存標題空白按鈕的行號
col_of_space=0  #保存標題空白按鈕的行號
buttons={}      #字典
numbers=list('12345678 ')   #列表,所有按鈕標題可顯示的數字1到8和空白
random.shuffle(numbers)     #使列表數字和空白隨機排列
for row in range(3): #row=行,0,1,2
    for col in range(3): #col=列,0,1,2,參見博文:python3.8的tkinter按鈕事件函數實現多個參數
        button=Button(root,command=lambda x=row,y=col:btnClick(x,y),fg='red',font=("Arial",35))
        buttons[row,col]=button
        button['text']=numbers.pop()    #將列表numbers最后一項作為按鈕標題并將列表最后1項刪除
        button.place(x=60+col*60,y=60+row*60,width=50,height=50)
        if button['text']==' ':         #記住空白按鈕所在位置的行列號
            row_of_space=row
            col_of_space=col
numbers=list('12345678 ')
root.mainloop() #進入循環,運行窗口

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 淺析Python 條件控制語句
  • Python基礎之條件控制操作示例【if語句】
  • python基礎詳解之if循環語句
  • python基礎之while循環語句的使用
  • 在python代碼中加入環境變量的語句操作
  • Python使用sql語句對mysql數據庫多條件模糊查詢的思路詳解
  • Python基礎教程之循環語句(for、while和嵌套循環)
  • 解決python mysql insert語句的問題
  • python自動生成sql語句的腳本
  • Python基礎學習之條件控制語句小結

標簽:江蘇 呼和浩特 駐馬店 股票 湖州 衡水 中山 畢節

巨人網絡通訊聲明:本文標題《39條Python語句實現數字華容道》,本文關鍵詞  39條,Python,語句,實現,數字,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《39條Python語句實現數字華容道》相關的同類信息!
  • 本頁收集關于39條Python語句實現數字華容道的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久操影视| 无码日本精品人妻一区二区妖精| 三上悠亚2022最新新作番号| 我把她下药做得好爽漫画| 爽好舒服好紧h公交车| 51大豆忘忧草| 国产亚洲精品v| 男女第一次怎么弄| 女欢电影| 欧美精品一区二区久久| 免费?无码?无套| 久操成人| 色欧美精品视频在线播放| 女警察卧底受辱系列小说| 不许穿衣服羞耻体罚| 女人与公牛的婬乱生活| 虐之恋电影| 边摸边吃奶一边做爰H漫画软件| 无码h片在线观看网站无禁| 婷婷综合亚洲| 乡野春潮| 欧美黑人巨大videos异族| 911精品产国品一二三产区区别在| 色欧美精品视频在线播放| 性暴力3之蹂躏越南女兵| 少萝疯狂?喷水自慰| 97超人人澡高清碰碰学生| 中国xxxb| 娇妻用身体工地上满足民工| 69真人直播秀视频直播| 91综合在线| 色欲亚洲AV无码久久精品成人| 日韩亚洲一区中文字幕| 欧美一级Av无码毛片久久精品| 5060一级毛片午夜免费看果冻| 日本bl动漫高h| 好男人社区www在线播放| 揉女胸视频www网站免费观看| 放课后の肉欲~未删减版| 欧美成人午夜无码A片秀色直播| 美女扒开尿口来摸|