Python Final Project 組員:楊承叡、謝谷松.

Slides:



Advertisements
Similar presentations
第一讲:导论 The Introduction  哲学与中国哲学  哲学与哲学史  中国哲学史的历史.
Advertisements

index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
While 迴圈 - 不知重複執行次數
广州宜家选址分析 0连锁 李若谷 陈玉风 黄小飞 蓝柔盈.
我們一直在這裡.
第四章 基本控制结构的程序设计.
计算机编程导论 -Python语言 第5讲 图形编程 讲课教师:常姗
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
十五條佛規 後學:張慈幸
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
C#程序设计案例教程 第3章 程 序 结 构.
计算机与程序.
第4章 循环结构 程序设计2 本章主讲 赵家刚 计算机编程导论.
AI人工智慧報告 黑白棋 班級:資工四乙 學號:498G0009 姓名:盧冠妤.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
第 5 章 流程控制 (一): 條件分支.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
 人体的营养.
第三章 控制结构.
程式設計實作.
Class 2 流程控制-選擇敘述與迴圈.
佇列 (Queue).
C++Primer 3rd edition 中文版 Chap 5
Python入门培训演示 系统测试部 叶华 文件级别:公开
Shell Script 程式設計.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
第五章 shell 编程 shell 编程的基本过程分为三步: 1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本
中国科学院软件研究所 计算机科学国家重点实验室 张文辉
If … else 選擇結構 P27.
离散数学─逻辑和证明 南京大学计算机科学与技术系
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
算法设计与分析.
中国科学院软件研究所 计算机科学国家重点实验室 张文辉
数据结构 -Maple Related- 牟克典 数学科学学院信息科学系 2012秋季 1/16/2019.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
C++语言程序设计 第二章 C++简单程序设计.
計數式重複敘述 for 迴圈 P
软件测试 (四)静态测试与动态测试.
電腦遊戲設計-第十組 指導老師:江清水 資三B 謝孟穎 資三B 陳沛蓁 資三B 謝家蓉
注意:教程中给出的所有示例代码请勿直接拷贝使用!会引起不必要的错误!
程式結構&語法.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
數字定位棋 1-7
数 据 结 构 与 算 法.
Lucene 算法介绍 IR-Lab 胡晓光.
程式的時間與空間 Time and Space in Programming
数独简介 ◎数独是一种以数字为表现形式的逻辑推理谜题。 数独起源于18世纪末的瑞士,后在美国发展、并在日本得以发扬光大。
數字獨樂樂 --數獨原來這麼簡單.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
Pygame之2048.
第二章 Java语法基础.
本节内容 Lua基本语法.
▲重合的概念 ▲對應頂點、對應邊、對應角 ▲全等的記法 ▲全等性質 ▲三角形全等性質
第11章 物件互動行為塑模.
序言 報告內容: 你對父母的感覺 你與父母的關係 你是否與父母同居 你與父母見面的時間 每天與父母的談話時間 與父母談話的內容 結論 感想.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
2012 程式設計比賽 Openfind 天使帝國 v2.0 (蓋亞的紋章).
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
硬幣遊戲解題詳解 王豐緒 銘傳大學資訊工程學系.
變數、資料型態、運算子.
第2章 Java语言基础.
判斷(選擇性敘述) if if else else if 條件運算子.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基本语法 讲师:复凡.
Presentation transcript:

Python Final Project 組員:楊承叡、謝谷松

數獨

遊戲規則 每行、每列、每宮均包含1~9, 不能缺少,也不能重複

製作動機 與其花錢買紙本題目,不如自己動手做!

目標 暴力破解數獨題目 題目產生 遊戲介面 2 2 4 4 9 8 7

1. 演算法 題目產生 & 暴力破解數獨題目

題目產生 產生完成的題目 挖空格 檢查是否單一解 2 2 4 4 6 8 9

暴力破解 def solve(self, index=None, number=None): i = self.getEmptyGrid() if i is None: return True for num in range(1, 10): if i == index and str(num) == number: continue if self.checkNum(i, num): self.board[i] = str(num) if self.solve(): self.board[i] = '0' return False 暴力破解

暴力破解

產生解答 def generateSolvedPuzzle(self): index = self.getIndex() if index is None: return True possibleNum = [num for num in range(1, 10)] for i in range(1, 10): if not self.checkNum(index, i): possibleNum.remove(i) if len(possibleNum) == 0: return False shuffle(possibleNum) for num in possibleNum: self.board[index] = str(num) copyBoard = list(self.board) if self.indexCount < 17 or solver(copyBoard).solve(): if self.generateSolvedPuzzle(): # can't solved self.board[index] = '0' self.indexCount -= 1 產生解答

挖空格 檢查唯一解 def generatePuzzle(self): while True: clue = 81 shuffle(self.index) for i in self.index: # a valid sudoku puzzle must have at least 17 non-empty grids if clue <= 17: break tempNum = self.board[i] self.board[i] = '0' copyBoard = list(self.board) sol = solver(copyBoard) if not sol.solve(i, tempNum): # this is the only one answer puzzle clue -= 1 else: self.board[i] = tempNum if clue <= 51: 挖空格 檢查唯一解

題庫

2. 遊戲介面 使用 Tkinter 製作

遊戲介面 可做記號 難易度 遊戲提示 計時功能 遊戲紀錄 2 2 4 4 6 8 9

遊戲介面

遊戲介面