日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编程大实践 数独破解 #Cilay #嵩天

發(fā)布時間:2024/1/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程大实践 数独破解 #Cilay #嵩天 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

圖形界面數(shù)獨游戲

一、項目背景

1.數(shù)獨

**數(shù)獨(Sudoku)**是一種數(shù)學邏輯游戲,游戲由9×9個格子組成,玩家需要根據(jù)格子提供的數(shù)字推理出其他格子的數(shù)字。

這種游戲只需要邏輯思維能力,與數(shù)字運算無關(guān),所以數(shù)學不好的人也很適合。

雖然玩法簡單,但提供的數(shù)字卻千變?nèi)f化,所以不少教育者認為數(shù)獨是鍛煉腦筋的好方法。

數(shù)獨游戲由美國自由拼圖發(fā)明者Howard Garns于1979年發(fā)明,日本出版商Nikoli于1986年發(fā)展,意思為“每個格子只有一個數(shù)字”。

數(shù)獨規(guī)則:

數(shù)獨游戲由九個3*3的九宮格呈3*3排列,構(gòu)成9*9小格的矩陣,每個小格中只能填入1-9中的一個數(shù)字,對于數(shù)字的位置有如下限制:

  • ?

    矩陣的每一行包含1-9的每一個數(shù)字,且不能重復(fù)

  • ?

    矩陣每一列的數(shù)字不能重復(fù)(要求同行)

  • ?

    每一個3*3的九宮格內(nèi),數(shù)字不能重復(fù)

一個填好的9*9矩陣稱為終盤(Endgame),在終盤中去掉部分數(shù)字,供解謎者填寫,稱為初盤

2.圖形用戶界面

圖形用戶界面(Graphical User Interface,縮寫:GUI)是指采用圖形方式顯示的計算機操作用戶界面。

與早期計算機使用的命令行界面相比,除了降低用戶的操作負擔之外,對于新用戶而言,圖形界面對于用戶來說在視覺上更易于接受,學習成本大幅下降,也讓電腦的大眾化得以實現(xiàn)。

雖然圖形用戶界面已經(jīng)成為現(xiàn)代電腦的主要界面,然而這界面必定要透過在顯示器的特定位置,以“各種美觀、而不單調(diào)的視覺消息”提示用戶“狀態(tài)的改變”,勢必得比簡單的文字消息呈現(xiàn),花上更多的電腦運算能力,計算“要改變顯示器哪些光點,變成哪些顏色”,功能命令的設(shè)計也比較復(fù)雜,現(xiàn)代操作系統(tǒng)的圖形復(fù)雜程度更遠超早期的GUI。

3.QT

Qt是一個跨平臺的C++應(yīng)用程序開發(fā)框架。廣泛用于開發(fā)GUI程序,這種情況下又被稱為部件工具箱。也可用于開發(fā)非GUI程序,例如控制臺工具和服務(wù)器。

Qt 被用于 OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox與Mathematica以及被Autodesk、歐洲空間局、夢工廠、Google、HP、KDE、盧卡斯影業(yè)、西門子公司、沃爾沃集團,華特迪士尼動畫制作公司、三星集團、飛利浦、Panasonic所使用。它是 Digia 公司的產(chǎn)品。

Qt使用標準的C++和特殊的代碼生成擴展以及一些宏。通過語言綁定,其他的編程語言也可以使用Qt。 Qt是自由且開放源代碼的軟件,在GNU寬通用公共許可證(LGPL)條款下發(fā)布。所有版本都支持廣泛的編譯器,包括GCC的C++編譯器和Visual Studio。

官方網(wǎng)站:Qt | Cross-platform software development for embedded & desktop

4.PyQT

PyQt 是一組用于Qt 公司的Qt 應(yīng)用程序框架的 Python 綁定,可在 Qt支持的所有平臺上運行,包括 Windows、macOS、Linux、iOS 和 Android。

PyQt6 支持 Qt v6,PyQt5 支持 Qt v5,PyQt4 支持 Qt v4。綁定是作為一組 Python 模塊實現(xiàn)的,包含 1,000 多個類。

項目地址:PyQt5 · PyPI

二、項目目標

1.主要目標

編寫一個擁有圖形界面的數(shù)獨游戲,功能包括:

  • ?

    游戲主要界面、鼠標/鍵盤交互操作

  • ?

    游戲過程控制(新建游戲、加載問題、重新開始、退出等)

  • ?

    支持自動游戲求解

2.目標分解

  • ?

    編寫圖像用戶界面

  • ?

    根據(jù)添加相關(guān)功能

三、技術(shù)選型

1.問題:圖形界面框架如何選擇?

Python常用第三方GUI圖形界面框架如下,推薦使用PyQT、TKinter、PySimpleGUI來構(gòu)建。

  • ?

    PyQT

  • ?

    TKinter

  • ?

    WxPython

  • ?

    PySide

  • ?

    Kivy

  • ?

    PySimpleGUI

2.問題:數(shù)獨生成算法有那幾種?

一般有兩種數(shù)獨生成算法:

  • ?

    矩陣變換:對一個正確的終盤使用隨機的矩陣變換,得到一個合乎規(guī)范的新終盤,此方法隨機程度較差,結(jié)果與初始差別不大

  • ?

    自動生成:利用求解算法,先隨機填入一些初始格,后交給求解算法得到終盤

3.問題:數(shù)獨求解算法有那幾種?

目前,主流的數(shù)獨求解算法有以下幾種:

  • ?

    暴力搜索:(效率低)

  • ?

    舞蹈鏈算法:使用交叉鏈表優(yōu)化搜索的算法

  • ?

    基于約束滿足問題的搜索算法:使用啟發(fā)式函數(shù)優(yōu)化搜索流程,使更快得解

  • ?

    推理算法:使用邏輯推理的形式,推出問題內(nèi)容,適用于簡單數(shù)獨求解,復(fù)雜數(shù)獨將無法求解

四、課堂要求

1.提交項目結(jié)構(gòu)

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

main.py 項目執(zhí)行主文件 README.md 項目描述說明文檔 requirements.txt 項目依賴包版本號(項目需要下載到本地執(zhí)行,如果有第三方依賴包,必須填寫)

2.標注核心算法函數(shù)位置

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

# 破解算法 位于main.py文件 第102行 def sudoku():pass

3.程序運行效果截圖

?

總結(jié)

以上是生活随笔為你收集整理的编程大实践 数独破解 #Cilay #嵩天的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。