實務專題計畫書 以模糊決策規則庫設計...

62
資訊管理系 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支 指導教授: 萬絢 教授 員:胡鶴文 學號 978C049 唐瑞辰 學號 978C075 陳佑耕 學號 978C081 林國勝 學號 978C095

Transcript of 實務專題計畫書 以模糊決策規則庫設計...

Page 1: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

資訊管理系

實務專題計畫書

以模糊決策規則庫設計

多角色人工智慧之十三支

指導教授: 萬絢 教授

組 員:胡鶴文 學號 978C049

唐瑞辰 學號 978C075

陳佑耕 學號 978C081

林國勝 學號 978C095

中 華 民 國 一 ○ 一 年 五 月

Page 2: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

1

摘要 由於現代電腦遊戲的普及,有助於放鬆身心、紓解壓力,本專題

主要是由融入人工智慧設計一套十三支撲克牌遊戲,讓有興趣的玩家

能夠快速學會本遊戲的玩法,透過於不同的電腦模式,能夠讓玩家無

拘無束的挑戰各種模式,進而學習與思考如何應對。

十三支與大老二在台灣非常盛行,是日常消磨時間或民俗節慶的

娛樂選擇之一,一般電腦的遊戲中卻無十三支的遊戲,讓我們決心要

做出一款十三支遊戲置入電腦之中。

利用 Visual Basic6.0程式語言撰寫規則庫,讓電腦擁有三種不

一樣的性格,有衝動型、保守型、穩健型,可以有更多的出牌選擇,

讓玩家便可以自由依照自己的喜愛去排列牌組,最後再決定勝負。

此外,本專題融入了生動活潑的美工和音效,讓玩家玩起來不會

有種枯燥乏味的感覺,可以盡情的與電腦對戰,玩而不膩。

Page 3: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

2

目錄

第壹章、緒論

1.1 研究動機 ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.5

1.2 研究背景‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.5

1.3 研究目的‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.6

1.4 研究流程‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.6

1.5 研究架構‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.7

第貳章、文獻探討與參考文獻

2.1 何謂人工智慧(AI)‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.8

2.2 歷史發展‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ ‧‧‧‧‧‧‧‧‧‧‧‧P.8

2.3 人工智慧的應用‧‧‧‧‧‧‧‧‧‧‧‧ ‧‧‧‧‧‧‧‧‧‧‧P.9

2.4 何謂「模糊邏輯」(Fuzzy logic)‧‧ ‧‧‧‧‧‧‧‧‧‧P.9

2.5 模糊決策‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ ‧‧‧‧‧‧‧‧‧‧P.10

2.6 遊戲演算法‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ P.12

2.7 規則庫(Rule-based system)簡介‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.13

Page 4: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

3

第參章、研究方法與設計

3.1 程式架構圖‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.15

3.2 十三支所有牌型(共 39 種)‧‧‧‧‧‧‧‧‧‧‧‧‧‧ P.16

3.3 遊戲操作示範‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ P.17

3.4 程式碼‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ P. 28

第肆章、成果展示

A.I.牌型判斷‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ P.55

第伍章、結論與建議

附錄

參考文獻出處‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ P.60

計畫時程-甘特圖‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ P.61

Page 5: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

4

圖目錄

(圖一) 程式流程圖 ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.15

(圖三) 登入的起始畫面‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.19

(圖四) 遊戲介紹畫面之一‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.20

(圖五) 遊戲介紹畫面之二‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.21

(圖六) 遊戲選角畫面‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.22

(圖七) 遊戲畫面之一‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.23

(圖八) 遊戲畫面之二‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.24

(圖九) 遊戲畫面之三‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.25

(圖十) 遊戲畫面之四‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.26

(圖十一) 遊戲畫面之五‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.27

(圖十二) 遊戲畫面之六‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧P.28

Page 6: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

5

第壹章 緒論

1.1 研究動機

現代人對於電腦的使用非常普及,使用電腦的用途非常的廣泛,生活中大至

NASA衛星軌道的運算小至學校功課要繳交電子檔……等,這些事情都需要靠

人操作不同等級的電腦來完成,而在世界上電腦的種類繁多,超級電腦、微電

腦……等等,其中最普遍的電腦就是「個人電腦」,由於人類在一天當中操作電

腦的時間非常的長,一直處理工作上的事情會造成身心上的疲憊,為了能讓大家

藉著玩樂來放鬆緊繃的身心,電腦上也可以玩許多遊戲,而電腦中也內建了許多

遊戲,其中最普及的就是撲克牌類型遊戲。

在臺灣撲克牌最常用來打發時間,不只在逢年過節的時候家庭聚會必玩,就

連在平時,朋友之間聚在一起也很常玩撲克牌。撲克牌的遊戲玩法多變,其中

「十三支」這種撲克牌玩法雖然普及,可是在電腦遊戲中卻很少見,在電腦中較

為常見的撲克牌遊戲都是歐美流行的接龍遊戲、傷心小站……等等,因此本研究

將這種遊戲玩法應用到電腦之中,讓這臺灣味濃厚的遊戲能夠發揚光大。

1.2 研究背景

由於十三支在臺灣等華人地區相當盛行,甚至於讓西洋人冠上了「中國撲克」

這種稱號,可見此遊戲在華人地區的普及率極高並且成為能夠代表華人的遊戲一。

個人電腦中的遊戲程式只內建歐美偏好的遊戲,例如接龍、傷心小站、彈珠

檯等遊戲,這對廣大的華人同胞實在不公平,因此本研究將開發一個十三支的單

機電腦遊戲,讓個人電腦中的遊戲能夠更豐富,並且能擁有多一點的中華元素在

內。

Page 7: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

6

1.3 研究目的

本研究的目的是以 Visual Basic 6.0來開發這套遊戲軟體,會採用 Visual Basic

6.0做為遊戲軟體的主要架構是因為在蒐集文獻並比較過後發現,Visual Basic

6.0 對於卡牌的遊戲執行效能較佳;遊戲軟體的資料庫系統是採用 Access 2003,

結合以上的軟體來開發一個能讓玩家盡情對戰、享受不同程度電腦智能的遊戲軟

體。並希望以此遊戲軟體達到以下目標:

1. 華麗的遊戲畫面以及音效使玩家對於遊戲的質感讚賞。

2. 擁有金錢以及經驗等等增添遊戲樂趣的額外設定。

3. 遊戲介紹能讓玩家了解十三支撲克牌遊戲的玩法。

4. 存檔系統使玩家能夠儲存金錢以及經驗等資料,並且在想要玩的時候隨

時能夠載入。

5. 與玩家對戰的電腦角色擁有不同的性格,不同性格即使拿到一樣的牌,

也會有不同的出法,大大的增加遊戲的耐玩度。

1.4 研究流程

在遊戲開發的過程中,為了增加遊戲的耐玩性,本研究決定設置三種不同個

性的電腦 A.I.(Aritificial intelligence),一開始必須先研究十三支的遊戲規則,從

中將全部的牌型整理成規則庫,三個電腦 A.I.各自對應不同的規則庫,讓玩家能

夠自由選擇並且對戰,享受不同程度的電腦虛擬對手所帶來的對戰樂趣。主程式

架構完成後,增添資料庫使遊戲可以存檔,再來將遊戲的畫面以及音效美化及優

化,開發完成後經過本組的測試以及修正,最後完成遊戲。

Page 8: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

7

1.5 研究架構

本研究共分為五章,各章內容如下所述。

第一章 緒論,說明研究動機、研究背景、研究目的、研究流程以及研究架構。

第二章 文獻回顧,將開發過程中所利用的文獻整理並供參考,使其他想深入了

解本研究的研究人員能夠更了解開發人員之研究方向。

第三章 研究方法與設計,包含遊戲畫面、遊戲規則庫、遊戲程式…..等等資料以

及畫面擷取。

第四章 遊戲成果,展現不同的 A . I .面對相同或不相同的牌的遊戲成果。

第五章 結論與建議,依結論提出研究貢獻,並對後續研究者提出建議以及未來

發展。

Page 9: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

8

第貳章 文獻探討與參考文獻

2.1 何謂人工智慧(A.I.)

人工智慧(英語:Artificial Intelligence, AI),也稱作機器智能。人工智慧係

指讓電腦具有人類的知識與行為,並且具有學習、推理與判斷解決問題、儲存記

憶、了解人類所說的語言等能力。

簡而言之,人工智慧是一門研究使電腦具備聰明特性的學科,以及如何使電

腦能做一些目前人類做得較好的事。[1]

人工智慧的產生,勢將人類對各種問題及事物,所引起的思考、判斷 、推理、

解決問題、計畫及決策等過程,分解成一連串的基本步驟, 利用程式設計的方法,

將使過程公式化,使電腦具有結構化的方法, 並利用此方法,以解決或處理各種

更複雜的問題。

人工智慧目前在計算機領域內,得到了愈加廣泛的重視。並在機器人,經濟

政治決策,控制系統,模擬系統中得到應用。[2]

2.2 歷史發展

人工智慧的演進,大致可區分為底下幾個階段:

1940~1960 時期:電腦發明,此時期研究重心擺在定理證明與通用問題

求解;如:數字理論證明、西洋棋、西洋象棋等研究。

1960~1970 時期:研究重點在於使電腦具有理解能力。在此時期,人工智慧語言

LISP 開發出來,機器人學受到重視,許多知識表示方法問世,

如:框架理論(Frame Theory)。

1970~1980 時期:利用述語邏輯(Predicate Logic)開發出來的PROLOG語言問

Page 10: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

9

世,針對特定問題領域所開發出來的專家系統( Expert System)

陸續出籠, 如分子構造固定系統(DENDRAL)、血液感染疾

病診斷系統(MYCIN)等。

1980~1999 時期:此階段著重在研究各種行事之學習系統,如類比研究法、指點

學習法等。[3]

2.3 人工智慧應用

主要在研究如何以電腦的程式技巧,來執行一些由人類執行時,需要智慧才能完

成的工作。所以前述這些都屬於人工智慧的範圍,但是實行起來的困難度頗高,

需要細分成許多的研究領域。

1. 專家系統(Expert System)

2. 自然語言處理(Natural Language Understanding)

3. 電腦視覺(Computer Vision)

4. 語音辨識(Speech Understanding)

5. 機器人應用(Robotic Application)

6. 類神經網路(Artificial Neural Network)

7. 智慧型代理人(Intelligent Agent)

8. 模糊理論(Fuzzy logic)

2.4 何謂「模糊邏輯」(Fuzzy logic)

Fuzzy,中文翻譯為模糊,是指不精確、不清楚的意思。在我們所熟知且長

期相處的真實世界中,其實普遍存在著各種模糊性現象,包括人類的語言、思維

與決策等,皆存在有模糊和非定量化的特質。,是一門模仿人類思考,處理存在

於所有物理系統中的不精確本質的數位控制方法學。

Page 11: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

10

模糊理論強調許多事實的結果無法符合傳統的二元邏輯,並非在「是」與

「非」之間選擇其一,而是介於是與非之間。因此,處理實際問題時,主要是將

普通集合 「非此即彼」的絕對隸屬關係加以擴充,即對集合的屬性不再以傳統集

合之二分法來決定絕對性的真或偽,而是利用隸屬函數(Membership Function)的

觀念,以具有某種程度的真實性來描述該集合之屬性,進而實現定量刻畫不確定

性問題之模糊性質,因此對於敘述不清或狀況模糊之問題,提 供了較合理可行的

解決方式。若元素 有集合 的特性時, 屬於 集合,可表示為 ;

反之,若元素 不具集合 的特性,則表示為 。以圖形表示:傳統集合

(圖 1)是指集合在一明確的定義範圍內所包含的數值,如

圖 1 傳統集合非 0 即 1與其分界 圖 2 傳統集合非 0 即 1 的表示法

模糊集合可視為傳統集合的擴展,在模糊集合的觀念裡,是將鮮明而嚴格的

界線模糊化,也就是二個集合的區隔不再如此明顯,而是形成一種漸層的變化,

用來表示界限或邊界不分明的具有特定性質事物的集合,如圖 3所示,意即隸屬

於 A集合到不屬於 A集合的中間包含著過渡區域。[4]

圖 3 模糊集合與其漸層變化的邊界

Page 12: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

11

式中 表示 0到 1之間的函數,如圖 4所示,此時 稱為 A集合

的隸屬函數或特徵函數(characteristic function), 表 示 x在 A集合的隸屬

度(degree of membership),即元素 x屬於模糊集合 A之程度,並在 0~1之間取值,

用來表示此元素歸屬於各個集合程度的強弱。若一個元素屬於某集合的程度越 大,

則其隸屬度越接近 1,反之則越接近 0。因此,可將一般集合中特徵函數的觀念,

擴展成為模糊集合中的隸屬函數觀念。[5]

圖 4 模糊集合的隸屬函數

2.5 模糊決策

模糊決策是決策的要素(如準則及備選方案等) 具有模糊性的決策。 而模糊決

策法是指運用模糊數學方法來處理一些複雜的決策問題。 這類問題一般具有大系

統特徵,系統之間的關係十分複雜,存在不能準確賦值的變量,這些變量屬於模

糊因素,涉及到一定的主觀因素,使得子系統之間、變量之間的關係不清晰,從

而必須藉助排序、模糊評判等方法來進行處理。 [6]

在現實生活中,很多概念都是模糊的。 如高個子,身高達到多少即算高個子,

並無明確的定義,不同的人會有不同的理解。 另外如應聘的能力、工作態度、性

格等概念也是模糊的。 這些概念的內涵是明確的,但外延是模糊的。 在企業招

聘的現實中,很多指標概念是模糊的,因此模糊決策法正在成為企業招聘決策中

的一種很有實用價值的工具。[7]

Page 13: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

12

2.6遊戲演算法

2.6.1 遊戲基因演算法

早於1960 年代,John Von 便提出一個自我複製的0’理論,奠定發展基因演

算法的來源靈感。直到1975 年,基因演算法(Genetic Algorithms;GA)或稱為遺傳

演算法,由美國密西根大學 John Holland教授所提出來的一種演化式

(EvolutionaryComputing) 演算法。他是根據生物學家達爾文(Charles Darwin)所

提出的進化論「物競天擇,適者生存」的概念,進一步發展而來。其主要利用電

腦模擬生物的競爭-「複製、交配、突變」保留適應力較佳的染色體,來繁衍最

優越的下一代。[8]

圖1 基因演算法的運作流程

在基因演算法應用於遊戲方面,可針對遊戲AI 的個體或是遊戲場景等等作其

設計。

Page 14: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

13

2.6.2 遊戲類型

1.動作遊戲(Action Games)

2.策略遊戲(Strategy Games)

3.角色扮演遊戲(Role-Playing Games)

4.運動遊戲(Sports Games)

5.模擬遊戲(Simulation Games)

6.冒險遊戲(Adventure Games)

7.益智遊戲(Puzzle Games)

2.6.3 益智遊戲(Puzzle Games)

Puzzle 的原意是指以前用來培養兒童智力的拼圖遊戲,引申為各類有趣的益

智遊戲。益智遊戲著重在考驗遊戲玩家的思考與邏輯判斷能力。像是棋類遊戲、

牌類遊戲或拼圖遊戲,都屬於益智遊戲的一種。[9]

2.7 規則庫(Rule-based system)簡介

規則庫(Rule-based system)是一個決定程式是否符合使用者需求的

程序。在應用程式範疇上規則庫僅藉由一般演算法,最適合用來解決

問題。規則庫包含一些基本的規則”IF-THEN”,在遇到哪些case要採行

哪些action,並將action編碼、以及推斷機等數種。

Page 15: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

14

2.7.1 13支遊戲玩法

四人中一人為莊家(也可以四人對比),莊家把牌分成四份,每份十三張。

開牌前,各閒家向莊家下注。

各人把十三支牌排成三段(墩),稱第一墩、第二墩及第三墩。第一墩有三張,

第二墩及第三墩各五張。第一墩必須小於第二墩,第二墩必須小於第三墩,

否則稱為「相公」。凡「相公」者全賠。

第一墩因為只有三張牌,因此不算順、花。只可能是不成花式(稱烏龍)、

一對或三條。

各人排好牌後,打開牌跟莊家比較大小。第一墩跟第一墩比,第二墩跟第二

墩比,第三墩跟第三墩比。

比較時,先比牌型。牌型相同時,比點數。

i 部分玩法的規則,比點數時由最大點數的牌比起,相同時比第二大的

牌,如此類推。十三支是不計算花色。

ii 部分玩法的規則訂成對莊家稍為有利:只比點數最大的一隻牌。倘若

相同,一律由莊家勝。(俗稱食夾棍) [10]

賠率:第一墩、二度或第三墩,每段勝出得最少一注,以下情況得超過一注。

Page 16: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

15

第參章 研究方法與設計

3.1 程式架構圖

(圖一) 程式流程圖

遊戲起始畫面有「開始遊戲」、「遊戲介紹」、「載入進度」以及「結束遊

戲」這四種不同的選項,而當進入遊戲後,玩家可以自由選擇敵、我雙方的角色,

我方是由玩家自由操控,而敵方則是由電腦 A.I.控制並與我方對戰,敵方不同的

角色搭載著不同的 A.I.,敵方的 A.I.分成「衝動型性格」、「保守型性格」以及

「穩健型性格」三種,「衝動型性格」會以分數為重,如果勝利的話得分會最多,

但如果輸了的話失分也是最多;「保守型性格」是將牌組配置成不易被我方打槍

(一種十三張遊戲的術語,指十三張三道牌組全輸給對方),勝利的話得分少,但

是輸了的話損失也最小;「穩健型性格」是結合了「衝動型性格」以及「保守型

性格」,此種性格的牌組如果獲勝分數會獲得較多,輸了的話失分也較小。

遊戲開始後電腦會以亂數發牌至敵、我雙方區塊中,敵方的牌會自動排列好

十三張的牌組,而我方的牌會以氣泡排序法由右至左、由小至大排好,玩家須以

滑鼠將牌拖曳至畫面中間的對戰牌組區塊才可以讓程式進行確認,雙方準備好後,

按下「確認比牌」鈕後,即會立即判分並且判斷輸贏。

Page 17: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

16

3.2 十三支所有牌型(共 39種)

將以下牌型設定成未知數表示

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

single 單張 =n

double 對子 =z

three 三張 =y

four 鐵支 =x

orange 同花順=o 順

flush 同花 =f

straight 順子 =s

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

//未排入順子、同花,但 有鐵支的組合

1. 4x+4x+4x+1n

2. 4x+4x+3y+2z

3. 4x+4x+3y+2n

4. 4x+4x+2z+2z+1n

5. 4x+4x+2z+3n

6. 4x+4x+5n

7. 4x+3y+3y+3y

8. 4x+3y+3y+2z+1n

9. 4x+3y+3y+3n

10.4x+3y+2z+2z+2z

11.4x+3y+2z+2z+2n

Page 18: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

17

12.4x+3y+2z+4n

13.4x+3y+6n

14.4x+2z+2z+2z+2z+1n

15.4x+2z+2z+2z+3n

16.4x+2z+2z+5n

17.4x+2z+7n

18.4x+9n

//未排入順子、同花,但有三條的組合

19.3y+3y+3y+3y+1n

20.3y+3y+3y+2z+2z

21.3y+3y+3y+2z+2n

22.3y+3y+3y+4n

23.3y+3y+2z+2z+2z+1n

24.3y+3y+2z+2z+3n

25.3y+3y+2z+5n

26.3y+3y7n

27.3y+2z+2z+2z+2z+2n

28.3y+2z+2z+2z+4n

29.3y+2z+2z+6n

30.3y+2z+8n

31.3y+10n

Page 19: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

18

//未排入順子、同花 ,但有輪車之組合

32.2z+2z+2z+2z+2z+2z+n

33.2z+2z+2z+2z+2z+3n

34.2z+2z+2z+2z+5n

35.2z+2z+2z+7n

36.2z+2z+9n

37.2z+11n (此在無順子情況下不成立)

Page 20: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

19

3.3 遊戲操作示範

3.3.1 登入畫面

(圖三) 登入的起始畫面

一開始點進遊戲中,即會看到上圖所顯示的畫面,充滿戰場烽火的背景圖

片,加上遊戲主題「十三張」的拆字詞句為遊戲增添了一種劍拔弩張、令玩家想

即刻上場廝殺的氛圍。下面的四個選項,分別是「開始遊戲」進入遊戲選角畫面

並準備正式開戰、「遊戲介紹」介紹遊戲的玩法以及遊戲製作人員、「載入進度」

Page 21: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

20

先前遊玩遊戲的記錄檔可供玩家讀取、「結束遊戲」玩遊戲玩太久對身體會造成

負擔,適時的退出遊戲休息是正確的選擇。

3.3.2 遊戲介紹

(圖四) 遊戲介紹畫面之一

除了教導玩家該如何判斷牌的花色大小以及遊戲玩法之外,最主要的是遊

戲介紹中還點出了遊戲最具耐玩性的特點,包含角色經驗以及可以提升等級……

等部分;此部分後面會再詳述。

Page 22: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

21

(圖五) 遊戲介紹畫面之二

這畫面介紹了遊戲判斷勝負的規則以及製作出此遊戲專題的指導老師和專

題組員,「規則部分」特別需要注意的是十三張的規則中排牌順序一定要第一副

牌大於第二副牌大於第三副牌,如果沒按照此規則就直接判定落敗。右下方按

「返回」可回到上一頁介紹畫面,如按「結束」則回到主畫面中。

Page 23: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

22

3.3.3 遊戲選角畫面

(圖六) 遊戲選角畫面

在主選單中選擇了「進入遊戲」後,即可進入選擇角色得此畫面中,左方

文字會顯是玩家目前要選擇的角色是敵方或己方,而文字旁邊的六個寫實人物小

圖可以點擊並且選擇該名角色,如點擊下去,正中央會出現該名角色的可愛版人

物大圖,上方的欄位也會出現該角色的生平事蹟;左邊藍位可供玩家為角色另外

取名字,如以上動作都完成,按下右下方的「Ready」按鍵即可進入遊戲畫面中。

所選取的人物中,每位角色都有對應的性格,總共擁有三種不同的個性,

不同的個性在面對同樣的一副牌組可能會產生不同的方式應對;三種個性分別是

「保守型」、「衝動型」以及「穩健型」。

在排行的組合上,「保守型」會將牌組合成如果獲勝的話得分會較低但是

輸的話失分也會較小的保守排法,「衝動型」則是大起大落,得分多、失分也多,

穩健型則是牌組好就將牌組成得分會較高的牌型、牌組差就將牌組成失分較小的

牌型,借此獲得較高的得分。

Page 24: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

23

3.3.4 遊戲畫面

(圖七) 遊戲畫面之一

遊戲開始畫面,上、下排各為敵方以及己方的區塊,顯示雙方的小人物圖

示、角色姓名、目前所擁有的金錢數、經驗值以及勝場數、敗場數。按下畫面中

的「開始」按鈕後,電腦會隨機亂數發牌到敵、我雙方手中,各自擁有十三張撲

克牌,敵方的牌會套用人工智慧的資料庫自動排成十三張的對應牌型並且覆蓋住。

而我方的牌發到自己的區塊後會自動由左至右、由小到大排序好,這時玩家可以

用滑鼠點擊撲克牌,如(圖)所示,點擊過後的牌將會突顯而出,之後按「第一

組」的按鈕後牌將會跑到中間,如(圖)所示,依序照此方法將十三張牌組成玩

家所要的組合後可按開始鑑與對手一決勝負。

Page 25: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

24

(圖八) 遊戲畫面之二

上面的敵方電腦已經將牌整理好並組成三張、五張、五張的牌型,而玩家

這邊的牌電腦已經自動把牌由右至左、由小到大排序好,玩家正把其中的方塊五、

方塊六、黑桃六的牌用滑鼠點擊出來。

Page 26: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

25

(圖九) 遊戲畫面之三

玩家將剛剛的牌點出後,按了「第一組」的按鈕後,牌會自動移到中間區

塊,並且「第一組」的按鈕將自動隱藏。當玩家將所有的牌都都組成牌組後又邊

原本的「第一組」、「第二組」、「第三組」按鈕也都會消失並且出現「確認比

牌」鈕,按下此鈕電腦會自動判斷勝負,玩家獲勝將可得到金錢以及經驗值。

Page 27: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

26

(圖十) 遊戲畫面之四

為了讓玩家有重新考慮的機會,就算玩家將牌移動到中間區塊之中,只要

在還沒有按下「確認比牌」按鈕之前,都可以按左方的「重新選牌」按鈕,中間

區塊的玩家牌組將會回到自己手中。此圖及是撲克牌在按下按鈕後回到自己手中

的截圖。

Page 28: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

27

(圖十一)、(圖十二) 遊戲畫面之失敗以及獲勝

失敗以及勝利都會出現特殊音效以及視窗,金錢也會隨之減少或增加。

Page 29: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

28

3.4 程式碼

3.4.1 「第一組」按鈕程式碼

Private Sub Image1_Click()

Dim a As Integer

a = 0

j = 1

ck = 1

'偵查牌數

For i = 0 To 12

If playercard(i).Top < 9860 Then

a = a + 1

End If

Next

'確認牌數=3

If a > 3 Then

Label1.Caption = "超過牌數"

Exit Sub

ElseIf a < 3 Then

Label1.Caption = "缺少牌數"

Exit Sub

End If

'載入牌數 3 ag 陣列存牌值

For i = 0 To 12

If playercard(i).Top < 9860 Then

Page 30: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

29

playercard(i).Top = playercard(i).Top + 200

s1(j - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

q = i + 1

'整理牌面

For n = q To 12

playercard(n).Left = playercard(n).Left - 960

Next

ag(j) = i

j = j + 1

End If

Next

For i = 0 To 2

s1(i).Visible = True

Next

'確認點牌

cardarrone = True

Image1.Visible = False

'確認是否有點排 自動排序牌組 3

If cardarrtwo = True Then

For i = 0 To 12

If playercard(i).Visible = True Then

cg(ck) = i

s3(ck - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

Page 31: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

30

ck = ck + 1

End If

Next

For i = 0 To 4

s3(i).Visible = True

Next

Image3.Visible = False

Image5.Visible = True

End If

'確認是否有點排 自動排序牌組 2

If cardarrthree = True Then

For i = 0 To 12

If playercard(i).Visible = True Then

tg(ck) = i

s2(ck - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

ck = ck + 1

End If

Next

For i = 0 To 4

s2(i).Visible = True

Next

Image2.Visible = False

Image5.Visible = True

End If

End Sub

Page 32: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

31

3.4.2 「第二組」按鈕程式碼

Private Sub Image2_Click()

Dim a As Integer

a = 0

j = 1

ck = 1

'偵查牌數

For i = 0 To 12

If playercard(i).Top < 9860 Then

a = a + 1

End If

Next

'確認牌數=5

If a > 5 Then

Label1.Caption = "超過牌數"

Exit Sub

ElseIf a < 5 Then

Label1.Caption = "缺少牌數"

Exit Sub

End If

'載入牌數 5 tg 陣列存牌值

For i = 0 To 12

If playercard(i).Top < 9860 Then

playercard(i).Top = playercard(i).Top + 200

Page 33: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

32

s2(j - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

q = i + 1

'整理牌面

For n = q To 12

playercard(n).Left = playercard(n).Left - 960

Next

tg(j) = i

j = j + 1

End If

Next

For i = 0 To 4

s2(i).Visible = True

Next

'確認點牌

cardarrtwo = True

Image2.Visible = False

'確認是否有點排

If cardarrone = True Then

For i = 0 To 12

If playercard(i).Visible = True Then

cg(ck) = i

s3(ck - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

Page 34: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

33

ck = ck + 1

End If

Next

For i = 0 To 4

s3(i).Visible = True

Next

Image3.Visible = False

Image5.Visible = True

End If

If cardarrthree = True Then

For i = 0 To 12

If playercard(i).Visible = True Then

ag(ck) = i

s1(ck - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

ck = ck + 1

End If

Next

For i = 0 To 2

s1(i).Visible = True

Next

Image1.Visible = False

Image5.Visible = True

End If

End Sub

Page 35: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

34

3.4.3「第三組」按鈕程式碼

Private Sub Image3_Click()

Dim a As Integer

a = 0

j = 1

ck = 1

'偵查牌數

For i = 0 To 12

If playercard(i).Top < 9860 Then

a = a + 1

End If

Next

'確認牌數=5

If a > 5 Then

Label1.Caption = "超過牌數"

Exit Sub

ElseIf a < 5 Then

Label1.Caption = "缺少牌數"

Exit Sub

End If

'載入牌數 5 ag 陣列存牌值

For i = 0 To 12

If playercard(i).Top < 9860 Then

playercard(i).Top = playercard(i).Top + 200

Page 36: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

35

s3(j - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

q = i + 1

'整理牌面

For n = q To 12

playercard(n).Left = playercard(n).Left - 960

Next

cg(j) = i

j = j + 1

End If

Next

For i = 0 To 4

s3(i).Visible = True

Next

'確認點牌

cardarrthree = True

Image3.Visible = False

'確認是否有點排

If cardarrtwo = True Then

For i = 0 To 12

If playercard(i).Visible = True Then

ag(ck) = i

s1(ck - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

Page 37: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

36

ck = ck + 1

End If

Next

For i = 0 To 2

s1(i).Visible = True

Next

Image1.Visible = False

Image5.Visible = True

End If

If cardarrone = True Then

For i = 0 To 12

If playercard(i).Visible = True Then

tg(ck) = i

s2(ck - 1).Picture = playercard(i).Picture

playercard(i).Visible = False

ck = ck + 1

End If

Next

For i = 0 To 4

s2(i).Visible = True

Next

Image2.Visible = False

Image5.Visible = True

End If

End Sub

Page 38: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

37

3.4.4「重新整牌」按鈕程式碼

Private Sub Image4_Click()

'重新點牌

Dim reset As Integer

reset = 2520

'牌順定位

For i = 0 To 12

playercard(i).Left = reset

reset = reset + 960

playercard(i).Visible = True

Next

'顯示牌隱藏

For i = 0 To 2

s1(i).Visible = False

Next

For i = 0 To 4

s2(i).Visible = False

s3(i).Visible = False

Next

'還原按鍵

Image1.Visible = True

Image2.Visible = True

Image3.Visible = True

Page 39: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

38

Image5.Visible = False

'還原按鍵鎖

cardarrone = False

cardarrtwo = False

cardarrthree = False

End Sub

Page 40: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

39

3.4.5 亂數發牌

Sub sendcard()

Dim a1 As Integer

'亂數發牌

Randomize

For i = 0 To 25

a1 = Int(52 * Rnd(1))

For j = 0 To i - 1

If a1 = a(j) Then

a1 = Int(52 * Rnd(1))

j = 0

End If

Next j

a(i) = a1

Next i

chkn = 0

chki = 0

Timer2.Enabled = True

Timer2.Interval = 500

End Sub

Page 41: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

40

Sub bubble() '氣泡排序法

For i = 0 To 12

For j = 0 To 22 Step 2

If a(j) > a(j + 2) Then

temp = a(j)

a(j) = a(j + 2)

a(j + 2) = temp

End If

Next j

For k = 1 To 23 Step 2

If a(k) > a(k + 2) Then

temp = a(k)

a(k) = a(k + 2)

a(k + 2) = temp

End If

Next k

Next i

chkn = 0

For i = 0 To 25

If i Mod 2 = 0 Then

bankerarrcard(chkn) = a(i)

Else

Page 42: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

41

playerarrcard(chkn) = a(i)

playercard(chkn).Picture = p(a(i)).Picture

chkn = chkn + 1

End If

Next i

'顯示按鈕 莊家動畫與執行副程式

Call bottonshow

Call playmove

Call bankersendcard

End Sub

Page 43: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

42

3.4.6 同花順以及順子判斷式

Sub chksun()

Dim ap As Boolean

Dim hr As Boolean

Dim da As Boolean

Dim ma As Boolean

Dim color(4) As Integer

Dim chksam(13) As Integer

Dim J As Integer

Dim q As Integer

ap = False

hr = False

da = False

ma = False

For i = 0 To 3

color(i) = 0

Next i

For i = 0 To 12

Number = bankerarrcard(i) Mod 4

color(Number) = color(Number) + 1

Next i

For i = 0 To 12

Number = bankerarrcard(i) \ 4

record(Number) = record(Number) + 1

Page 44: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

43

Next i

For i = 0 To 12

'Print record(i)

Next i

For i = 0 To 3

'Print color(i)

If color(0) >= 5 Then

ma = True

End If

If color(1) >= 5 Then

da = True

End If

If color(2) >= 5 Then

hr = True

End If

If color(3) >= 5 Then

ap = True

End If

Next i

'Print ap

'Print hr

Page 45: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

44

'Print da

'Print ma

'Print "==="

q = 1

'有黑桃同花順可能

If ap = True Then

J = 1

For i = 1 To 10

chksam(i) = -1

Next i

For i = 0 To 12

If bankerarrcard(i) Mod 4 = 3 Then

chksam(J) = bankerarrcard(i)

J = J + 1

End If

Next i

For i = 1 To 9

If chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 9 And chksam(i + 3) \ 4 - chksam(i + 2) \

4 = 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4

= 1 Or chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 1 And chksam(i + 3) \ 4 - chksam(i + 2) \ 4

= 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4 =

1 Then

If q < 11 Then

samsun(q) = chksam(i)

q = q + 1

Page 46: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

45

samsun(q) = chksam(i + 1)

q = q + 1

samsun(q) = chksam(i + 2)

q = q + 1

samsun(q) = chksam(i + 3)

q = q + 1

samsun(q) = chksam(i + 4)

q = q + 1

i = i + 4

End If

End If

Next i

End If

'有紅心同花順可能

If hr = True Then

J = 1

For i = 1 To 10

chksam(i) = -1

Next i

For i = 0 To 12

If bankerarrcard(i) Mod 4 = 2 Then

chksam(J) = bankerarrcard(i)

J = J + 1

End If

Next i

For i = 1 To 9

If chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 9 And chksam(i + 3) \ 4 - chksam(i + 2) \

Page 47: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

46

4 = 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4

= 1 Or chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 1 And chksam(i + 3) \ 4 - chksam(i + 2) \ 4

= 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4 =

1 Then

If q < 11 Then

samsun(q) = chksam(i)

q = q + 1

samsun(q) = chksam(i + 1)

q = q + 1

samsun(q) = chksam(i + 2)

q = q + 1

samsun(q) = chksam(i + 3)

q = q + 1

samsun(q) = chksam(i + 4)

q = q + 1

i = i + 4

End If

End If

Next i

End If

'有鑽石同花順可能

If da = True Then

J = 1

For i = 1 To 10

chksam(i) = -1

Next i

For i = 0 To 12

Page 48: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

47

If bankerarrcard(i) Mod 4 = 1 Then

chksam(J) = bankerarrcard(i)

J = J + 1

End If

Next i

For i = 1 To 9

If chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 9 And chksam(i + 3) \ 4 - chksam(i + 2) \

4 = 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4

= 1 Or chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 1 And chksam(i + 3) \ 4 - chksam(i + 2) \ 4

= 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4 =

1 Then

If q < 11 Then

samsun(q) = chksam(i)

q = q + 1

samsun(q) = chksam(i + 1)

q = q + 1

samsun(q) = chksam(i + 2)

q = q + 1

samsun(q) = chksam(i + 3)

q = q + 1

samsun(q) = chksam(i + 4)

q = q + 1

i = i + 4

End If

End If

Next i

End If

Page 49: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

48

'有梅花同花順可能

If ma = True Then

J = 1

For i = 1 To 10

chksam(i) = -1

Next i

For i = 0 To 12

If bankerarrcard(i) Mod 4 = 0 Then

chksam(J) = bankerarrcard(i)

J = J + 1

End If

Next i

'Print "========"

'For i = 0 To 12

' Print chksam(i)

'Next i

'Print "======="

For i = 1 To 9

If chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 9 And chksam(i + 3) \ 4 - chksam(i + 2) \

4 = 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4

= 1 Then

If q < 11 Then

samsun(q) = chksam(i)

q = q + 1

samsun(q) = chksam(i + 1)

q = q + 1

samsun(q) = chksam(i + 2)

q = q + 1

Page 50: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

49

samsun(q) = chksam(i + 3)

q = q + 1

samsun(q) = chksam(i + 4)

q = q + 1

i = i + 4

End If

End If

If chksam(i + 4) \ 4 - chksam(i + 3) \ 4 = 1 And chksam(i + 3) \ 4 - chksam(i + 2) \

4 = 1 And chksam(i + 2) \ 4 - chksam(i + 1) \ 4 = 1 And chksam(i + 1) \ 4 - chksam(i) \ 4

= 1 Then

If q < 11 Then

samsun(q) = chksam(i)

q = q + 1

samsun(q) = chksam(i + 1)

q = q + 1

samsun(q) = chksam(i + 2)

q = q + 1

samsun(q) = chksam(i + 3)

q = q + 1

samsun(q) = chksam(i + 4)

q = q + 1

i = i + 4

End If

End If

Next i

End If

Page 51: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

50

If q = 6 Then

findsun = 1

For i = 1 To 5

'Print samsun(i)

Next i

ElseIf q = 11 Then

findsun = 2

For i = 1 To 10

'Print samsun(i)

Next i

ElseIf q = 1 Then

findsun = 0

End If

'Print findsun

'Print q

'chksunall

End Sub

Sub chksunall()

Dim newbankerarr(12) As Integer

Dim Number As Integer

Dim record_sun(12) As Integer

Dim un As Integer

un = 0

For i = 0 To 12

Page 52: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

51

If findsun = 0 Then

newbankerarr(i) = bankerarrcard(i)

un = 12

ElseIf findsun = 1 Then

If bankerarrcard(i) = samsun(1) Or bankerarrcard(i) = samsun(2) Or

bankerarrcard(i) = samsun(3) Or bankerarrcard(i) = samsun(4) Or bankerarrcard(i) =

samsun(5) Then

Else

newbankerarr(un) = bankerarrcard(i)

un = un + 1

End If

ElseIf findsun = 2 Then

Exit Sub

End If

Next i

For i = un To 12

newbankerarr(i) = -1

Next i

For i = 0 To 12

record(i) = 0

'Print newbankerarr(i)

Next i

For i = 0 To 12

If newbankerarr(i) >= 0 Then

Page 53: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

52

Number = newbankerarr(i) \ 4

record(Number) = record(Number) + 1

End If

Next i

'Print "========"

For i = 0 To 12

'Print record(i)

Next i

un = 1

setnumber = 0

For i = 0 To 8

If record(i) >= 1 And record(i + 1) >= 1 And record(i + 2) >= 1 And record(i + 3) >=

1 And record(i + 4) >= 1 Then

For J = 0 To (i - 1)

If un = 5 Then

setnumber = setnumber + record(J) + 5

Else

setnumber = setnumber + record(J)

End If

Next J

'setnumber = setnumber + 1

sunall(un) = newbankerarr(setnumber)

un = un + 1

setnumber = setnumber + record(i)

Page 54: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

53

sunall(un) = newbankerarr(setnumber)

un = un + 1

setnumber = setnumber + record(i + 1)

sunall(un) = newbankerarr(setnumber)

un = un + 1

setnumber = setnumber + record(i + 2)

sunall(un) = newbankerarr(setnumber)

un = un + 1

setnumber = setnumber + record(i + 3)

sunall(un) = newbankerarr(setnumber)

un = un + 1

setnumber = setnumber + record(i + 4)

record(i) = record(i) - 1

record(i + 1) = record(i + 1) - 1

record(i + 2) = record(i + 2) - 1

record(i + 3) = record(i + 3) - 1

record(i + 4) = record(i + 4) - 1

End If

Next i

'Print "====="

'Print un

If un = 1 Then

Page 55: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

54

'無順

findsunall = 0

ElseIf un = 6 Then

'一順

findsunall = 1

ElseIf un = 11 Then

'二順

findsunall = 2

End If

'Print findsun

'Print findsunall

End Sub

Page 56: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

55

第肆章 成果展示

A.I.牌型判斷

以下表格將所有十三支牌型呈現出來,「 」表示此牌型於兩種以上不同

A.I.都會排出相同的牌型, 「 」表示此牌型於該A.I.出牌會是弱勢,較不適合,

「 」表示此牌型於該A.I.出牌會達最佳化

順序 牌型 好戰型 保守型 穩健型

1 four = 3

2 four = 2

three = 1

two = 1

3 four = 2

three = 1

two = 0

4 four = 2

three = 0

two = 2

5 four = 2

three = 0

two = 1

6 four = 2

three = 0

two = 0

7 four = 1

three = 3

8 four = 1

three = 2

two = 1

9 four = 1

three = 2

two = 0

10 four = 1

three = 1

two = 3

Page 57: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

56

11 four = 1

three = 1

two = 2

12 four = 1

three = 1

two = 1

13 four = 1

three = 1

two = 0

14 four = 1

three = 0

two = 4

15 four = 1

three = 0

two = 3

16 four = 1

three = 0

two = 2

17 four = 1

three = 0

two = 1

18 four = 1

three = 0

two = 0

19 four = 0

three = 4

20 four = 0

three = 3

two = 2

21 four = 0

three = 3

two = 1

22 four = 0

three = 3

two = 0

Page 58: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

57

23 four = 0

three = 2

two = 3

24 four = 0

three = 2

two = 2

25 four = 0

three = 2

two = 1

26 four = 0

three = 2

two = 0

27 four = 0

three = 1

two = 5

28 four = 0

three = 1

two = 4

29 four = 0

three = 1

two = 3

30 four = 0

three = 1

two = 2

31 four = 0

three = 1

two = 1

32 four = 0

three = 1

two = 0

33 four = 0

three = 0

two = 6

34 four = 0

three = 0

two = 5

Page 59: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

58

35 four = 0

three = 0

two = 4

36 four = 0

three = 0

two = 3

37 four = 0

three = 0

two = 2

38 four = 0

three = 0

two = 1

39 four = 0

three = 0

two = 0

Page 60: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

59

第伍章 結論與建議

玩家可以在六位角色中選取兩位角色,一位是電腦的對戰角色,而另外

一位則是玩家自身的角色,電腦的對戰角色將會根據所選取的圖示聯結對應的規

則庫,而遊戲正式開始後所隨機發出的牌型,電腦方面會依據規則庫將牌型組好,

至於玩家則是自行將牌型拖曳至指定框格內,而玩家把牌型拖曳好後即可點選決

勝負之按鈕,點選按鈕後成事會進入判分系統,判斷雙方牌面大小進而記分,遊

戲於一開始時即配給玩家固定遊戲金額,當玩家勝利即可獲得獎金,但洛玩家牌

面小於電腦或擺出烏龍牌型時則會損失金錢,當金錢扣至零元時遊戲將強制結束。

已經加強界面的美化,讓界面看起來更美觀;並且加入了十三支的遊戲玩法

教學,讓不熟悉遊戲規則的玩家享有親切的新手輔助教學;整個遊戲程式架構完、

更好玩,搭配刺激的音效以及有趣的人物使玩家覺得更耐玩。

建議下次進行此研究的人可換置更新穎的軟體,例如搭配 Android 系統,增

加遊戲的方便性以及攜帶性,符合現代人手機不離身,隨處皆可玩遊戲的生活型

態,在 A.I. 部分可增加非監督式學習,使遊戲更具挑戰性以及遊樂趣味性。

Page 61: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

60

附錄

附錄一 參考文獻出處

[ 1 ] 楊智凱,民 100,遊戲的人工智慧探討與應用,靜宜大學財務與數學系,

碩士論文,P.4。

[ 2 ] 姚步慎編著,人工智慧與專家系統導論,碁峯資訊出版,1991年9月初版。

http://lingb28.myweb.hinet.net/b9091199/AI.htm

http://roc.tnjc.edu.tw/~s2881065/about_ai.htm

http://www.cs.nthu.edu.tw/~cssa/news/1998_11/9811_1.htm

http://ai.ee.ccu.edu.tw/intro_ai/intro.htm

[ 3 ] 台灣維基百科,人工智慧。http://wikipedia.tw/ http://twcds-

1.blogspot.com/2008_10_01_archive.html

[ 4 ] 馮德益、樓世博編著,『模糊數學方法與應用』(台北市:科技,民80)

P. 144頁。

[ 5 ] 傳說中的小明,研究所筆記,模糊邏輯理論(fuzzy logic)。

http://twcds-1.blogspot.com/2008/10/fuzzy-logic.html

[ 6 ] 王文俊編著,『認識 FUZZY』,全華科技,Vol.3, 2003年,頁

1201~1217。

[ 7 ] 林佳駒,以特徵為基礎的模糊演算法進行多波段-多極化NASA/JPL POLSAR

影像分類之研究,,民92,6月,第3-2 模糊理論,P.29~P.30。

[ 8 ] 李昆翰,黃耀田,謝盛文,基因演算法在遊戲應用上之效能探究-以遊戲

玩家和遊戲設計師為例,遠東學報第二十五卷第二期,頁281~頁282。

[ 9 ] 榮欽科技,遊戲設計概論,台北市,碁峰資訊,2003年。

[ 10 ] 殷振軒,民97,電腦十三張程式之牌招探討,國立東華大學資訊工程研

究所,碩士論文,P.6~P.10。

Page 62: 實務專題計畫書 以模糊決策規則庫設計 多角色人工智慧之十三支³‡管系/100學年度四技畢業專題... · 2.4 何謂「模糊邏輯」(Fuzzy logic ...

61

附錄二 計畫時程-甘特圖

任務名稱 天

開始時間 完成時間 一月

二月 三

老師解說專題方

2 100/1/25 100/1/26

資料探勘 45 100/1/27 100/3/30

介面美化 1_配

15 100/3/31 100/4/20

程式撰寫(1)_基

本架構

60 100/4/20 100/7/12

程式撰寫(2)_規

則庫

120 100/4/20 100/10/4

程式撰寫(3)_計

分系統

30 100/4/20 100/5/21

介面美化 2_美

25 100/4/27 100/5/31

書面資料匯整 45 100/4/1 100/6/2

討論與建議 10 100/5/25 100/6/7

專題發表(一) 1 100/10/12 100/10/12

任務名稱 天

開始時間 完成時間 十一月

十二月 一月 二月 三月 四月

老師解說專題方

49 100/10/12 100/11/30

資料探勘 31 100/11/31 100/12/31

介面美化 3_配

31 100/12/31 101/1/31

程式撰寫(4)_音

效檔

31 101/1/31 101/2/29

書面報告修改 120 100/11/1 101/2/29

影片製做 31 100/12/31 101/1/31

介面美化 4_美

31 101/1/31 101/2/29

專題資料整理及

彙整

30 101/2/29 101/3/30

專題期末提報 1 101/4/30

(圖二)專題預估時程甘特圖