servus miteinander
es geht um mein 4 gewinnt, aber is irgendwo auch ne allgemeine frage, wenn das trotzdem als crossposting gewertet werden sollte, verschiebe ich mich gerne zu meinem 4gewinnt-thread
folgendes problem:
ich habe 3 sekunden, um etwas zu berechnen, die berechnung erfolgt allerdings rekursiv auf mehreren ebenen: alle möglichen folgespielfelder berechnen, dann je folgespielfeld die möglichen züge des gegners berechnen, dann wieder meine, ...
allerdings wird ein teilbaum nicht weiter ausgewertet, wenn das dort maximal zu erreichende ergebnis bekannt ist
da ich also nicht weiß, wie oft die funktion sich selbst aufruft, wäre es schön, irgendwo einstellen zu können, dass sie insgesamt (inklusive aller rekursiven aufrufe) max 2,5 sekunden laufen darf
im manual hab ich sowas nich gefunden und es es daher so gelöst:
geht das auch irgendwie eleganter?
es geht um mein 4 gewinnt, aber is irgendwo auch ne allgemeine frage, wenn das trotzdem als crossposting gewertet werden sollte, verschiebe ich mich gerne zu meinem 4gewinnt-thread
folgendes problem:
ich habe 3 sekunden, um etwas zu berechnen, die berechnung erfolgt allerdings rekursiv auf mehreren ebenen: alle möglichen folgespielfelder berechnen, dann je folgespielfeld die möglichen züge des gegners berechnen, dann wieder meine, ...
allerdings wird ein teilbaum nicht weiter ausgewertet, wenn das dort maximal zu erreichende ergebnis bekannt ist
da ich also nicht weiß, wie oft die funktion sich selbst aufruft, wäre es schön, irgendwo einstellen zu können, dass sie insgesamt (inklusive aller rekursiven aufrufe) max 2,5 sekunden laufen darf
im manual hab ich sowas nich gefunden und es es daher so gelöst:
PHP-Code:
function slow(&$board, $player, $depth, $alpha, $endtime=-1)
{
if ($endtime!=-1)
{
$current=explode(' ',microtime());
$current=$current[1]+$current[0];
if ($current>$endtime)
return $alpha;
}
}
more_code();
slow($board, $player, ($depth-1), $endtime)
even_more_code();
}
Kommentar