AI人工智慧報告 黑白棋 班級:資工四乙 學號:498G0009 姓名:盧冠妤.

Slides:



Advertisements
Similar presentations
办公室保健指南. 减少辐射篇 ❤显示器散发出的辐射多数不是来自它的正面,而是侧面和后面。因此,不要 把自己显示器的后面对着同事的后脑或者身体的侧面。 ❤常喝绿茶。茶叶中含有的茶多酚等活性物质,有助吸收放射性物质。 ❤尽量使用液晶显示器。
Advertisements

大學中文閱讀與書寫課程 推動事項說明與研議 通識教育中心 賴素玫 以小班制 TA 適性輔導為精神之中文閱讀書寫課 程 共同課綱(經外審) /共同教材/共同 學習成果量 延伸教材: 高大中文 一百 書單 推動班級讀書會 制度班級讀書會 制度 強化中文基礎能力檢測機制 高東屏跨校中文能力檢測.
魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
While 迴圈 - 不知重複執行次數
一、真愛密碼 二、尋求真愛 三、有自尊的愛. 。如果雙方對愛情產生 質疑、困惑時,則表示 彼此之間的愛情關係仍 有 待加強或釐清,千萬別 急著為自己的人生大事 下決定。 我是一個 16 歲的未婚媽媽,發現自 己懷孕時,已經五個月大了,我知 道自己沒能力照顧孩子,在驚訝之 於,大人們只好坦然接受,幫我找.
大地遊戲王 課程實錄.
作家研究-簡媜 指導教授:鄭定國 執行TA:簡珮如.
報告書名:父母會傷人 班級:二技幼四甲 姓名:吳婉如 學號:1A2I0034 指導老師:高家斌
加強水銀體溫計稽查管制及回收 回收作業須知及緊急應變措施
第4章 分錄及日記簿 4-1 借貸法則 4-2 日記簿的格式及記錄方法 4-3 分錄的意義及記錄方法 4-4 常見分錄題型分析
103年度北區教學資源中心計畫 5月份管考會議
政府採購法規概要 報告人:杜國正 行政院公共工程委員會企劃處.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
媽,我們真的不一樣 青少年期與中年期 老師: 趙品淳老師 組員: 胡珮玟4A1I0006 馬菀謙4A1I0040
面对高考之—— 战略与战术 主讲:张海顺 我们的口号: 战略上藐视高考 战术上重视高考.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
中五級中史科及通識科跨科研習 研習大澳的「宗教文化」─ 廟宇的研習 指導老師:周婉儀老師 組員: 陳偉欽 5a (15)
之 魔 析 妖 鬼 解 怪 大 沈家仪小组出品.
引導者的角色 組別:第5組 4A1I0003 劉芷媛 4A1I0004 陳安琪 4A1I0014 陳佳瑩 4A1I0046 葉倢茹
第十三屆 Step.1 我們的目標 Step.2 我們的角色 Step.4 權利與義務 義務 權利 年繳會費五百元整
班級:二幼三甲 姓名:郭小瑄 、 詹淑評 學號:1A2I0029 、1A2I0025
财务管理.
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
您買美元了嗎? 退休規劃 全球外幣保單.
指導老師:陳韻如 姓名:吳宜珊 學號:4A0I0911 班級:幼保二乙
植物保护 课程整体设计 汇报 申报省级精品资源共享课建设 植物保护课程组.
第九章 长期资产及摊销 2017/3/21.
第 5 章 流程控制 (一): 條件分支.
傳統童玩遊戲創新 組別:第八組 班級:幼保二甲 組員: 4A0I0005柯舒涵 4A0I0011謝孟真
政府扶持资金通览 技术改造篇.
104-1學期教學助理說明會 教務處 教學業務暨發展中心 教務長:黃啟煌 主 任:蔡錦雀 承辦人:曹君琪
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
C++程序设计 王希 图书馆三楼办公室.
國語文好點子趴辣客教學食譜 甜點:〈焦糖鳥布蕾〉
利用共同供應契約 辦理大量訂購流程說明.
本科生医保资料的提交.
C++Primer 3rd edition 中文版 Chap 5
搜尋資料結構 Search Structures.
統計圖表的製作.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
计算机网络讲义 第5章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串.
第四章 串.
計數式重複敘述 for 迴圈 P
共有六個運算性質 包括它的證明以及相關題型
《结构力学认知实验》(授课形式)的上课时间改为: 5月5日(周二)晚上18:00~19:30和19:30~21:00,
《结构力学认知实验》(授课形式)的上课时间改为: 5月7日(周四)晚上18:30~20:00和20:00~21:30,
经典算法之 冒 泡 排 序.
程式結構&語法.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
第五节 并查集.
Lucene 算法介绍 IR-Lab 胡晓光.
程式的時間與空間 Time and Space in Programming
畢業資格審查系統 操作步驟說明.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
新制退休實務計算說明- 現職人員退休範例說明
潜行追踪 之红包快跑. 潜行追踪 之红包快跑 红黑对决 随着互联网的发展,网速的飞速提高,有一个特殊的群体,也随之发展壮大,就是一群抢红包黑客,ta们手段高明,耳目灵通,不管红包们深藏何处,没有一个红包能够逃过ta们的手心,都被ta们迅速收归囊中;这一次两群黑客相互不服,准备来一场赌局,以决定谁才是真正的黑老大;而红包们也决定利用这次机会,派出实景红包来打击一下黑客们的嚣张气焰,激烈的决斗马上开始了。。。。。。
本节内容 Lua基本语法.
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
靜宜大學100學年度二學期 服務學習基礎講座 課程助理經驗分享
2010之後 臺灣通識教育的機會與挑戰 臺北醫學大學人文暨社會科學院 林從一.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
106 學年度新生入學說明會 國立臺灣海洋大學 教務處簡介
學士學位畢業論文說明 逢 學 大 甲 土 理 管 地 2009/10/05.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
高雄市97年度國民小學閱讀計畫創新教學-教案達人創新教學方案
智慧財產權管理講次36 積體電路電路布局保護法(1) 主講:吳銘圳
顺序查找与二分查找复习.
Presentation transcript:

AI人工智慧報告 黑白棋 班級:資工四乙 學號:498G0009 姓名:盧冠妤

摘 要 黑白棋(也叫翻轉棋)的棋盤是一個有8*8方格的棋盤。下棋時將棋下在空格中間,而不是像圍棋一樣下在交叉點上。開始時在棋盤正中有兩白兩黑四個棋子交叉放置,黑棋總是先下子。 下子的方法:把自己顏色的棋子放在棋盤的空格上,而當自己放下的棋子在橫、豎、斜八個方向內有一個自己的棋子,則被夾在中間的全部翻轉會成為自己的棋子。並且,只有在可以翻轉棋子的地方才可以下子。

遊戲規則 棋盤共有8行8列共64格。開局時,棋盤正中央的4格先置放黑白相隔的4枚棋子(亦有求變化相鄰放置)。通常黑子先行。雙方輪流落子。只要落子和棋盤上任一枚己方的棋子在一條線上(橫、直、斜線皆可)夾著對方棋子,就能將對方的這些棋子轉變為我己方(翻面即可)。如果在任一位置落子都不能夾住對手的任一顆棋子,就要讓對手下子。當雙方皆不能下子時,遊戲就結束,子多的一方勝。

遊戲策略 因為黑白棋獨特的規則,很容易出現雙方比分的劇烈變化,在遊戲後期可能僅用幾個回合就將大量對方棋子變成己方,從而扭轉局勢。因此,太著眼於比分是沒有必要的,更重要的是佔據有利位置。 中間位置的棋子最容易受到夾擊,有橫、直、斜線共四個方向的可能。而邊緣的棋子則只有一個可能被夾擊的方向,四個角落上的位置被佔據後,則完全不可能被攻擊。 遊戲的後期是關鍵位置的爭奪,而前期的布局,就是為搶佔關鍵位置作準備。比如,若不想讓對方佔據棋盤邊緣的有利位置,那麼自己就應避免在靠近邊緣的那一排落子。

程式碼 int judge(int x, int y, char a) // 判斷當前是否可以落下,同draw函數 { if(map[x][y]) // 如果當前不是空的返回0值 return 0; char b = T(a); int i, x1, y1; int n = 0, sign; for (i = 0; i < 8; i++) sign = 0; x1 = x + move[i][0]; y1 = y + move[i][1]; while (0 <= x1 && x1 < 8 && 0 <= y1 && y1 < 8 && map[x1][y1]) if(map[x1][y1] == b) sign++;

else { n += sign; break; } x1 += move[i][0]; y1 += move[i][1]; return n; // 返回可吃棋數   bool baidu(char c) // 判斷是否有棋可吃 int x, y; for(x = 0; x < 8; x++) for(y = 0; y < 8; y++) if(judge(x, y, c)) return true; return false;

bool quit(char c) // 判斷是否有棋存活 { int x, y; bool b = false, w = false; for(x = 0; x < 8; x++) for(y = 0; y < 8; y++) if(map[x][y] == c) return false; } return true;   bool ask(void) // 彈出對話框

if(black == white) key = MessageBox(wnd, str, "和局", MB_YESNO | MB_ICONQUESTION); else if(black > white) key = MessageBox(wnd, str, "黑勝", MB_YESNO | MB_ICONQUESTION); else key = MessageBox(wnd, str, "白勝", MB_YESNO | MB_ICONQUESTION); if(key == IDYES) return true; return false; }

int D(char c, int step) { // 判斷是否结束遞回 if (step > difficult) // 約束步數之内 return 0; if (!baidu(c)) if (baidu(T(c))) return -D(T(c), step); else }   int i, j, max = 0, temp, x, y; bool ans = false;

DEMO