Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z canbuild()
#1
Witam, ten fragment kodu ma za zadanie znaleźć miejsce do wybudowania dowolnego budynku (zmienna cat przechowuje kategorię, robot na samym początku już trzyma kostkę tytanu). Kiedy próbowałem użyć go w programobitwie przeciwko obcym to robot podjeżdżał do wybrzeża tak, że nie da się nic zbudować, kładł kostkę tytanu i wyświetlał błąd, że jest za mało miejsca.


Pętla while najwyraźniej się kończy również wtedy, gdy nie ma miejsca na budowlę.

Code:
while(true){
        
    goto(space());
    if(canbuild(cat) == true) break;
        
}
    
drop();
build(cat);
Reply
#2
Code:
canbuild()
nie sprawdza czy budynek można wybudować w tym miejscu, sprawdza tylko czy budynek jest odblokowany (włączony w misji + wykonane niezbędne badania).

Code:
space()
z kolei znajduje jakiekolwiek wolne miejsce ale niekoniecznie płaskie - do znajdowania miejsca do budowy trzeba użyć funkcji
Code:
flatspace()
.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)