timeout definieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • timeout definieren?

    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:
    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();

    geht das auch irgendwie eleganter?
    Ich denke, also bin ich. - Einige sind trotzdem...

  • #2
    ich hätte es wahrscheinlich auch so gemacht. also die zeit mitzuschleifen.

    eine andere idee hätte ich auch nicht....

    OffTopic:
    verschiebe ich mich gerne zu meinem 4gewinnt-thread
    wenn dann 'zusammenführen' ...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      du könntest extra für die Funktion die Skriptausführungszeit ändern, aber wenn die Abläuft, kannst du sie danach auch nicht mehr hochsetzen... von daher dürfte deine Lösung das optimum sein, da es halt nich anders geht!

      mh... ich denke mal, zusammenführen wird nicht nötig sein, schliesslich sind wir kein "verkupplungs" forum

      gruss

      Kommentar


      • #4
        Original geschrieben von MoRtAlAn
        du könntest extra für die Funktion die Skriptausführungszeit ändern, aber wenn die Abläuft, kannst du sie danach auch nicht mehr hochsetzen
        hochsetzen darf ich sie nicht, die 3 sekunden geben nciht die zeit an, bis dass php mein skript abbricht sondern ich habe so lange zeit um von einem server daten zu holen und ihm wieder meine (berechneten) daten zu schicken
        bekommt der server nach 3 sekunden keine daten von mir, is das suboptimal

        naja, lass ich es halt so wie's jetzt is
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          OffTopic:
          Bist Du auf der BA und musst dies im Rahmen eines Projektes in SE realisieren? Ich habe das gleiche vor einem Monat gemacht, nur mit Java....

          Kommentar

          Lädt...
          X