Chapter 8 遊戲人工智慧.

Slides:



Advertisements
Similar presentations
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Advertisements

Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
3Com Switch 4500 切VLAN教學.
期末專題 - 吊人頭遊戲 第 35 組 組員 : 電機系 49841XXXX XXX 電機系 49841OOOO OOO.
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
: Boxes ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11003: Boxes 解題者:蔡欣燁 解題日期: 2007 年 3 月 19 日.
五小專案 黃詩晴 章乃云. 目錄 計算機 智慧盤 拼圖 記憶大挑戰 數學題庫 心得 參考文獻.
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
:New Land ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11871: New Land 解題者:施博修 解題日期: 2011 年 6 月 8 日 題意:國王有一個懶兒子,為了勞動兒子,他想了一個 辦法,令他在某天早上開始走路,直到太陽下山前,靠.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
1.1 電腦的特性 電腦能夠快速處理資料:電腦可在一秒內處理數百萬個 基本運算,這是人腦所不能做到的。原本人腦一天的工 作量,交給電腦可能僅需幾分鐘的時間就處理完畢。 電腦能夠快速處理資料:電腦可在一秒內處理數百萬個 基本運算,這是人腦所不能做到的。原本人腦一天的工 作量,交給電腦可能僅需幾分鐘的時間就處理完畢。
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology 模糊控制設計使用 MATLAB 李達生.
Monte Carlo Simulation Part.2 Metropolis Algorithm Dept. Phys. Tunghai Univ. Numerical Methods C. T. Shih.
具備人臉追蹤與辨識功能的一個 智慧型數位監視系統 系統架構 在巡邏模式中 ,攝影機會左右來回巡視,並 利用動態膚色偵測得知是否有移動膚色物體, 若有移動的膚色物體則進入到追蹤模式,反之 則繼續巡視。
© The McGraw-Hill Companies, Inc., 2008 第 6 章 製造流程的選擇與設計.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
Matlab Assignment Due Assignment 兩個 matlab 程式 : Eigenface : Eigenvector 和 eigenvalue 的應用. Fractal : Affine transform( rotation, translation,
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
: Playing War ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11061: Playing War 解題者:陳盈村 解題日期: 2008 年 3 月 14 日 題意:在此遊戲中,有一類玩家一旦開始攻擊, 就會不停攻擊同一對手,直到全滅對方或無法再.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
6-2 認識元件庫與內建元件庫 Flash 的元件庫分兩種, 一種是每個動畫專 屬的元件庫 (Library) ;另一種則是內建元 件庫 (Common Libraries), 兩者皆可透過 『視窗』功能表來開啟, 以下即為您說明。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
4 堆疊與佇列 4.1 前言 四種基本的資料結構 (可儲存資料的容器) 陣列 (Array)、串列(List): 最基本
公用品.  該物品的數量不會因一人的消費而受到 影響,它可以同時地被多人享用。 角色分配  兩位同學當我的助手,負責:  其餘各人是投資者,每人擁有 $100 , 可以投資在兩種資產上。  記錄  計算  協助同學討論.
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Structural Equation Modeling Chapter 6 CFA 根據每個因素有多重指標,以減少 測量誤差並可建立問卷的構念效度 驗證性因素分析.
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
Chapter 10 m-way 搜尋樹與B-Tree
概念性產品企劃書 呂學儒 李政翰.
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
1 © 2011 台灣培生教育出版 (Pearson Education Taiwan). 2 學習目標 1. 當面對可預測的變異性時,同步管理並改善供應鏈 中的供給。 2. 當面對可預測的變異性時,同步管理並改善供應鏈 中的需求。 3. 當面對可預測的變異性時,使用總體規劃將利潤最 大化。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
專題成果報告 胺基酸功能預測開發環境 指導教授:歐昱言 邱彥豪 邱顯鈞.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 壹 企業研究導論.
:Commandos ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11463: Commandos 解題者:李重儀 解題日期: 2008 年 8 月 11 日 題意: 題目會給你一個敵營區內總共的建築物數,以及建築物 之間可以互通的路有哪些,並給你起點的建築物和終點.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2008.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
Microsoft Excel.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
幼兒行為觀察與記錄 第八章 事件取樣法.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2009.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
節能轉接插座 認知科學研究所陳啟彰. 設計緣起 不使用的電器如未將插頭拔除, 仍會有少量的電力損耗,這類的 電力損耗稱之為待機損耗 (stand- by loss) 。 不使用的電器如未將插頭拔除, 仍會有少量的電力損耗,這類的 電力損耗稱之為待機損耗 (stand- by loss) 。 家庭用電中,待機損耗約佔總耗.
Presentation transcript:

Chapter 8 遊戲人工智慧

本章重點 移動型遊戲AI 行為型遊戲AI 策略型遊戲AI

移動型遊戲AI 人工智慧就是我們常聽到的AI (Artificial Intelligence),主要目的是要讓電腦本身可以依循著某些法則來模擬出類似人類般的思考與預測能力,並結合電腦具有快速數學運算能力的優點,創造出電腦在各方面的有效應用。

追逐移動 凡是在遊戲中會移動的物體,事實上幾乎都牽扯到移動型的遊戲AI,像是遊戲中怪物追逐或者躲避玩家,以及電腦角色的移動都是移動型AI的例子。

追逐移動 以電腦怪物追逐玩家的例子來看看追逐移動基本的演算法: if(怪物X>玩家X) 怪物X--; else 怪物X++;   if(怪物Y>玩家Y) 怪物Y--; 怪物Y++;

修改怪物追逐玩家演算法 依照怪物生命值的多寡來決定是否追逐 追逐方向正確性的機率: if(怪物HP>200) { p=rand()%3; if(p>0) if(怪物X>玩家X) 怪物X--; else 怪物X++;   if(怪物Y>玩家Y) 怪物Y--; 怪物Y++; }

範例:三隻小鳥追逐飛機

全域變數宣告 紀錄三隻小鳥的貼圖座標

MyPaint 依實際滑鼠游標的位置(x,y) 設定飛機的貼圖座標(nowx,nowy) 並進行飛機的貼圖

MyPaint (續) 進行小鳥追逐移動座標計算及貼圖動作

Exercise 12 下載並改寫ch23_01.cpp程式,將小鳥改為5隻,追逐飛機的機率改為2/5。 專案名稱為『學號_13』 (例:8223582_13) 編譯及執行無誤後,使用ftp將『學號_13.cpp』上傳至192.192.155.217的EX13目錄下,帳號:student5,密碼:student5

人工智慧理論 類神經網路 以多個連結處理器負責不同單元的處理,模擬人類大腦思考與學習能力的人工智慧理論。

基因演算法 利用模擬自然界物競天澤的進化原理,對於問題產生最佳化解決方案的人工智慧理論。

模糊邏輯 以一種判斷推理(if-else)的方式來產生最佳猜測的決定,有別於一般以數學運算為基礎的人工智慧理論 。

躲避移動 以電腦怪物躲避玩家的例子來看看躲避移動基本的演算法: if(怪物X>玩家X) 怪物X++; else 怪物X--;   if(怪物Y>玩家Y) 怪物Y++; 怪物Y--;

模式移動 怪物移動模式 追逐 隨機 躲避 怪物強 怪物與玩家一樣強 玩家強

行為型遊戲AI 行為型遊戲AI主要是關於電腦角色本身的判斷思考,而後產生對應行為的AI。在設計行為型的遊戲AI時,通常我們會利用到一連串的if-else判斷、數學運算,或者一些資料結構的概念。

遊戲中怪物行為的例子 假設某一個怪物在對戰時具有以下幾種行為 普通攻擊 施放攻擊魔法 使盡全力攻擊 補血 逃跑

模擬怪物在對戰時的行為模式 if(生命值 > 20) //生命值大於20 { if(rand()%10 != 1) //普通攻擊 else //施放攻擊魔法 } else //生命值小於20 switch(rand()%5) case 0: break; case 1: case 2: //使盡全力攻擊 case 3: //補血 case 4: //逃跑

電腦角色的思考與行為 玩家部份下達攻擊指令 對戰訊息顯示

迷宮出口搜尋 在迷宮出口搜尋的過程當中,電腦必須對於接下來該往那一個方向移動做思考判斷。 在迷宮搜尋問題中,除了下一時刻移動目的的判斷之外,電腦角色還必須能夠對於走過的迷宮路徑做記錄

在迷宮中移動搜尋出口的範例程式,其中用到了行為型AI及地圖拼接的概念,並利用堆疊(stack)資料結構來儲存搜尋迷宮時所經過的每個迷宮方格編號。

迷宮拼接貼圖 以一個一維陣列來定義迷宮內容

迷宮拼接貼圖 出口

在定義迷宮陣列時,我們將代表牆的陣列元素值設為0,其原因是因為這樣可以很容易的利用下面的判斷式來判斷某一方格是否可通過: if(mapIndex[編號]) //可通過,元素值為1或2或3 else //不可通過,元素值為0

迷宮搜尋規則

堆疊結構的使用 11 14 8 2 14 8 2 末端指標 末端指標 加入編號11 新堆疊 原堆疊

底下以圖示說明從記錄搜尋路徑堆疊中刪除方格編號的動作及其內容的變化 14 8 2 11 14 8 2 末端指標 末端指標 刪除元素 新堆疊 原堆疊

策略型遊戲AI 最常見運用策略型AI的遊戲便是棋盤式遊戲。這類型的遊戲通常電腦必須依目前的狀況來判斷所有可走的棋步與可能的獲勝狀況,並在每一回合計算盤面電腦或者玩家的可能獲勝機率,以決定出一個最佳的走法。

求得所有獲勝組合 範例中使用了10x10大小的五子棋盤,底下先以圖示說明棋盤上可能獲勝的組合並計算這些組合的總數:

水平方向上的獲勝組合數:6 x 10 = 60 1.水平方向上的獲勝組合 1 2 … 6 共 10列

垂直方向上的獲勝組合數:6 x 10 = 60 2.垂直方向上的獲勝組合 共10行 1 2 6

3.正對角方向上的獲勝組合 正對角方向上的獲勝組合數:6 + ( 5 + 4 + 3 + 2 + 1 ) x 2 = 36 1種組合 2種組合 3種組合 4種組合 5種組合 6種組合

4.反對角方向上的獲勝組合 反對角方向上的獲勝組合數:6 + ( 5 + 4 + 3 + 2 + 1 ) x 2 = 36 6種組合 5種組合 4種組合 3種組合 2種組合 1種組合 反對角方向上的獲勝組合數:6 + ( 5 + 4 + 3 + 2 + 1 ) x 2 = 36

建立與使用獲勝表 行編號 列 編 號

計算棋格獲勝分數 1.在可達成連線的獲勝組合上擁有越多棋子的棋格分數值越高。 獲勝組合中已放置2顆棋子

獲勝組合中已放置3顆棋子 獲勝組合中已放置4顆棋子

下圖是當獲勝組合中已填入兩顆棋子,對於未被對手佔走棋格位置以及被對走佔走棋格位置的兩種情況在獲勝分數設定上的比較: 對手棋子

2.依棋格所在位置上可達成連線的獲勝組合總數與進行分數加總 簡單的利用一個5x5大小的棋盤來解釋這樣的計算方式: 0 1 2 3 4 1 2 3 4

全域變數宣告 儲存玩家與電腦的棋子圖案 儲存棋盤上所有棋格的狀態 玩家獲勝表 電腦獲勝表

函式宣告

起始函式

InitGame

InitGame (續)

WndProc

WndProc (續)