| Community |
|
|
|
Keine registrierten Benutzer online.
Der Rekord waren 20 angemeldete Benutzer am So 15. Nov 2009, 17.07 Uhr.
Farben: Moderator, Administrator
|
|
|
|
|
| Autor |
Nachricht |
|
Bernhard.Hering
Observer

Beiträge: 53
Karma: +5
|
Verfasst am: So 01.02.09, 20:12
Titel: TestServer
|
|
|
Hallo ich hab gerade meinen Client mit dem testServer getestet.
und wenn ich die actions ausgeben lass bekomm ich folgendes
action der ameiseTurn
x der action5
y der action11
param der action2
Stepvor
Stepvor
action der ameiseWalk
x der action5
y der action11
param der action0
Stepvor
action der ameiseWalk
x der action5
y der action12
param der action0
das heißt die ameise dreht sich in richtung 2
wenn sie dann 2 mal geht, geht sie offensichtlich nach unten?????
kann das sein???
edit: ach ja ich hab 2 stämme mit jeweils 1er ameise.
bei einem stamm ist skip das antbrain
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Andi P.
Visitor

Beiträge: 9
Karma: +4
|
Verfasst am: So 01.02.09, 20:25
Titel:
|
|
|
Auch bei unseren Tests befanden sich nach einigen Runden Ameisen auf Feldern, wo sie nicht sein sollten.
Das ist auch deswegen besonders ungeschickt, weil wir ja auf diesem Server optimalerweise unsere AntBrains für den Wettbewerb testen sollten
Wobei ich nicht zu 100% ausschliessen kann, dass es an unserem Client liegt, aber da wir scheinbar nicht die einzigen mit dem Problem sind, ist dieser Fall unwahrscheinlich.
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Bernhard.Hering
Observer

Beiträge: 53
Karma: +5
|
Verfasst am: So 01.02.09, 20:30
Titel: antbraindazu
|
|
|
hier is mal das antbrain zu rekonstruktion
x=5;
while (x>0) do {
turn(x);
if (sense(ahead,food)) then walk
else skip;
x=x-1
};
turn(2);
walk;
walk;
walk
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Ulrich Schoepp
LMU-Offiziell

Beiträge: 35
Karma: +25
|
Verfasst am: So 01.02.09, 22:06
Titel:
|
|
|
Also wenn ich Dein AntBrain-Programm auf eine Ameise anwende, die anfangs nach Westen schaut und in deren Umgebung kein Futter liegt, dann sollte doch Aktionsfolge herauskommen:
1. Runde: skip (wg. Zuweisung)
2. Runde: turn(5), Richtung der Ameise danach: 5
3. Runde: skip (if)
4. Runde: skip (Zuweisung)
5. Runde: turn(4), Richtung der Ameise danach: 3
6. Runde: skip (if)
7. Runde: skip (Zuweisung)
8. Runde: turn(3), Richtung der Ameise danach: 0
9. Runde: skip (if)
10. Runde: skip (Zuweisung)
11. Runde: turn(2), Richtung der Ameise danach: 2
12. Runde: skip (if)
13. Runde: skip (Zuweisung)
14. Runde: turn(1), Richtung der Ameise danach: 3
15. Runde: skip (if)
16. Runde: skip (Zuweisung)
17. Runde: skip (while-Schleife vobei, da x=0)
18. Runde: turn(2), Richtung der Ameise danach: 5
19. walk
Das heißt, die Walk-Aktion geht in Richtung 5 (also nach SW), also von Zelle (5,11) nach (5,12).
Ich habe das eben mal mit dem Testserver nachvollzogen und es kommen auch genau diese Aktionen.
Ich denke also schon, dass das sein kann.
Uli
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Bernhard Frauendienst
Admin


Beiträge: 5796
Karma: +255
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Andi P.
Visitor

Beiträge: 9
Karma: +4
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Ulrich Schoepp
LMU-Offiziell

Beiträge: 35
Karma: +25
|
Verfasst am: So 01.02.09, 23:55
Titel:
|
|
| Zitat: |
Aber so im Nachhinein wundere ich mich schon, wo das in der Spezifikation stand..
|
Teil I, Seite 5:
* a = turn(i). Die Ameise dreht sich um i Schritte nach rechts. Wenn also ihre Ausrichtung vorher d war, so ist sie nach diesem Schritt (d + i) mod 6.
Also kann sich die Ameise um beliebig viele Schritte nach rechts oder links drehen (-1 ist ja 5 modulo 6 und sich 5 Schritte nach rechts zu drehen ist das Gleiche wie sich einen nach links zu drehen, -2 ist 4 modulo 6 und 4 Schritte nach rechts...)
Uli
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Andi P.
Visitor

Beiträge: 9
Karma: +4
|
Verfasst am: So 01.02.09, 23:58
Titel:
|
|
| Ulrich Schoepp hat Folgendes geschrieben: |
| Zitat: |
Aber so im Nachhinein wundere ich mich schon, wo das in der Spezifikation stand..
|
Teil I, Seite 5:
* a = turn(i). Die Ameise dreht sich um i Schritte nach rechts. Wenn also ihre Ausrichtung vorher d war, so ist sie nach diesem Schritt (d + i) mod 6.
Also kann sich die Ameise um beliebig viele Schritte nach rechts oder links drehen (-1 ist ja 5 modulo 6 und sich 5 Schritte nach rechts zu drehen ist das Gleiche wie sich einen nach links zu drehen, -2 ist 4 modulo 6 und 4 Schritte nach rechts...)
Uli |
Danke! Ich dachte, dass wir schon alle nötigen Informationen aus Teil I und II extrahiert hätten und habe diese pdfs dementsprechend lange nicht mehr angeschaut 
edit: So muss Support sein - quasi ohne Verzögerung und im wahrsten Sinne des Wortes um kurz vor zwölf^^
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Bernhard.Hering
Observer

Beiträge: 53
Karma: +5
|
Verfasst am: Mo 02.02.09, 1:07
Titel: wer lesen kann ist klar im vorteil
|
|
|
spezifikation genau lesen kann viel arbeit ersparen
wir haben turn falsch verstanden
aber danke für die vielen antworten
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Bernhard.Hering
Observer

Beiträge: 53
Karma: +5
|
Verfasst am: Mo 02.02.09, 13:55
Titel: versuch 2
|
|
|
jetzt ist mir noch was aufgefallen
also versuch 2:
laut teil1
a = clearscent(i). Die Ameise entfernt die Duftmarke vom Typ i und bewegt sich
nicht. Ist die Duftmarke nicht vorhanden, so macht die Ameise nichts.
kann es sein das der testserver bei clearscent(i) alle Duftmarken des eigenen Stamms entfernt und nicht nur die i-te Duft spur??
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Ulrich Schoepp
LMU-Offiziell

Beiträge: 35
Karma: +25
|
Verfasst am: Mo 02.02.09, 14:41
Titel:
|
|
| Zitat: |
kann es sein das der testserver bei clearscent(i) alle Duftmarken des eigenen Stamms entfernt und nicht nur die i-te Duft spur??
|
Ich habe es eben mal mit folgendem Programm gestestet:
leavescent(0);
leavescent(1);
leavescent(2);
clearscent(1);
if (sense(here,ownscent,2)) then turn(1) else turn(-1);
walk
Die Ameise dreht sich nach rechts und macht einen Schritt, also wurde die zweite Duftmarke nicht gelöscht.
Mit dem untenstehenden Programm dreht sich die Ameise dagegen nach links und macht einen Schritt, d.h. die Duftmarke Nummer 1 wurde wie erwartet gelöscht.
leavescent(0);
leavescent(1);
leavescent(2);
clearscent(1);
if (sense(here,ownscent,1)) then turn(1) else turn(-1);
walk
Uli
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Bernhard.Hering
Observer

Beiträge: 53
Karma: +5
|
Verfasst am: Mo 02.02.09, 14:59
Titel:
|
|
|
aha ok
vielen dank
dann spinnt meine anzeige wohl.
|
|
|
|
|
|
|
0
|
|
|
|
|
|
Ulrich Schoepp
LMU-Offiziell

Beiträge: 35
Karma: +25
|
Verfasst am: Mo 02.02.09, 19:59
Titel:
|
|
|
Ich bin der Sache mit den Scents einmal nachgegangen und habe festgestellt, dass der TestServer die Scents nicht standardgemäß an den Client übergeben hat.
Im Testserver waren die Argumente der Methode
getScent(int colour, int x, int y, int scentNumber)
vertauscht. Die Argumente wurden folgendermaßen interpretiert:
getScent(int colour, int scentNumber, int x, int y)
(Die Berechnung der Spiele war jedoch richtig, da intern nur die vertauschte Funktion verwendet wurde. Durch die Vertauschung kann es also höchstens zu Problemen mit der Anzeige der Duftspuren im Client gekommen sein.)
Wir haben das jetzt korrigiert und eine aktualiserte Version des Testservers bereitgestellt.
[edit: ersten Satz besser formuliert]
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|