Browse Source

Strategická: Speciální případ pro pathfind

master
David Klement 2 years ago
parent
commit
413c0a08c6
  1. 3
      klient/strategy.cpp
  2. 3
      klient/strategy.py

3
klient/strategy.cpp

@ -289,6 +289,9 @@ bool is_field_accessible(Field* f, Team* t)
// Pokud žádná cesta neexistuje, vrátí STAY.
Direction pathfind(Member* m, Field* goal)
{
// speciální případ: voják už je v cíli
if (m->field == goal) return STAY;
std::set<Field*> explored;
std::queue<Field*> queue;
queue.push(goal);

3
klient/strategy.py

@ -202,6 +202,9 @@ def pathfind(member: Member, goal: Field) -> Direction:
Pokud žádná cesta neexistuje, vrátí STAY.
"""
# speciální případ: voják už je v cíli
if member.field == goal:
return Direction.STAY
# BFS od cíle k vojákovi
# tento směr umožní rychle zjistit, že cesta neexistuje,
# a také jednoduše získat první krok

Loading…
Cancel
Save