Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

HAZıRLAYAN: YRD.DOÇ.DR.EMIN BORANDAĞ Oyun Programlama (Yol Bulma)

Benzer bir sunumlar


... konulu sunumlar: "HAZıRLAYAN: YRD.DOÇ.DR.EMIN BORANDAĞ Oyun Programlama (Yol Bulma)"— Sunum transkripti:

1 HAZıRLAYAN: YRD.DOÇ.DR.EMIN BORANDAĞ Oyun Programlama (Yol Bulma)

2 Yol Bulma Problem Oyuncu verilen yollar içerisinden en kıza olan yolu bulması gerekmektedir. Yol Bulma Algoritması  En etkin şekilde en az maliyetle en güzel yolu bulma  Etkinlik  Yolun Durumuna Bak  Çevrenin Durumuna Bak  Noktaları Kullan.

3 Pseudocode Add starting node to open_list while (not_empty(open_list)) { current_node := node from open_list with lowest cost if (current_node==goal_node) { path complete } else { move current_node to closed_list for each node adjacent to current_node { if ((node is not in open_list) && (node is not in closed_list)) { move node to open_list assign cost to node }

4 Yolu Nasıl Kat Edeceğiz Add starting node to open_list while (not_empty(open_list)) { current_node := node from open_list with lowest cost if (current_node==goal_node) { path complete } else { move current_node to closed_list for each node adjacent to current_node { if ((node is not in open_list) && (node is not in closed_list)) { move node to open_list assign cost to node } Yolun Tamamlanması yada yolda bir yer katedildiğinde hangi kodların çalışacağı liste içerisinde nasıl kullanılacağı verilmiştir. B A

5 Maliyeti Nasıl Belirleyeceğiz? Maliiyet = Başlangıç Maliyeti + Sezgisel Başlangıç Maliyeti= Başlangıç Noktasında olan maliyet Sezgisel = Hedef Düz bir çizgi gibi ulaşılabiliyormu?

6 Örnek Start End 5432154321 1 2 3 4 5 Adım 1: Open List: Closed List: Empty Node: (2,2) Cost: 5 Distance from start: 0

7 Örnek Devam 7 5 Start 7 5 End 5432154321 1 2 3 4 5 Adım 2: Open List: Closed List: Node: (1,2) Cost: 7 Distance from start: 1 Node: (2,1) Cost: 7 Distance from start: 1 Node: (3,2) Cost: 5 Distance from start: 1 Node: (2,3) Cost: 5 Distance from start: 1 Node: (2,2)

8 Örnek Devam 7 5 Start 7 End 5432154321 1 2 3 4 5 Adım 3: Open List: Closed List: Node: (1,2) Cost: 7 Distance from start: 1 Node: (2,1) Cost: 7 Distance from start: 1 Node: (2,3) Cost: 5 Distance from start: 1 Node: (3,3) Cost: 5 Distance from start: 2 Node: (2,2) 5 5 5 Node: (4,2) Cost: 5 Distance from start: 2 Node: (3,1) Cost: 7 Distance from start: 2 Node: (3,2)

9 Graph Yol Bulma Maze tarzı Bir oyunda Yolbulma.

10 Graph Yol Bulma Bir Graf oluştur. Düyümler Sistem İçerisinde Tanımanmış Olmalı

11 Graph Path-Finding Her Birinin Belli Bir Maliyet Hesabı Olmalı. 1 6 1 33 3 2 1 1 4 1 7 31 4 3 3 3 3 22 2 3 11 1 1 1 14 4 11 9

12 Graph Path-Finding 1 4 1 33 3 2 1 1 4 1 7 31 4 3 3 3 3 22 2 3 11 1 1 1 1 4 11 9 31 2 destination start

13 Graph En Kısa Yol En Kısa Yolu Bulma Algoritması Dijkstra’s Algorithm { Add starting node to open_list while (not_empty(open_list)) { current_node := node from open_list with lowest cost if (current_node==goal_node) { path complete } else { move current_node to closed_list for each node adjacent to current_node { if (node is not in closed_list) { if (node not in open_list) move node to open_list AssignCost(node) } How to AssignCost(node)? In the beginning, each node has infinite cost. When AssignCost(node), calculate the new cost of the node. New cost = Cost current_node + Distance current_node,node If (new_cost < original_cost) cost := new_cost


"HAZıRLAYAN: YRD.DOÇ.DR.EMIN BORANDAĞ Oyun Programlama (Yol Bulma)" indir ppt

Benzer bir sunumlar


Google Reklamları