WPC13
-
Hallo,
nachdem jetzt wieder ne Woche Pause war gibt es morgen abend (Freitag 18.3.05) um 20:00 den WPC13.
Die Aufgabe ist auch nicht so technisch wie die vom letzten mal. Versprochen!
Ich würde mich über rege Teilnahme freuen.MfG Jester
-
euer marketing ist spitze
rapso->greets();
-
*freu*
-
-
also diese aufgabe ist so ähnlich wie die ersten 10 WPCs wo fast keiner mitgemacht hat - schade
-
darf ich annehmen, daß ++*reinterpret_cast<long*>(this); und andere zugriffe auf private-sachen der basisklasse strikt verboten sind?
-
Werden die Welten so erzeugt, wie im Code? Aus der Kenntnis des Generators und einiger Resultate kann man Rückschlüsse auf das Raster ziehen.
Aber eine ernsthafte Frage: Zur Zeit gibt es keine Wände innerhalb des 4x4 Rasters. Bleibt das so?
-
es scheint, daß ich bis donnerstag per hand spielen muss, bis ich das kapiere.
um das zu erleichtern, habe ich mir folgende änderungen einfallen lassen.
long score = 0; long games = 0; for(;;) { ManualAgent agent; World world; agent.solve(&world); score += agent.getScore(); ++games; cout << "Score: " << score << endl; cout << "Game: " << games << endl; cout << "AvgScore: " << score/games <<endl; }
und
if(action == "l") return TURN_LEFT; else if(action == "r") return TURN_RIGHT; else if(action == "m") return MOVE; else if(action == "s") return SHOOT; else if(action == "g") return GRAB; else if(action == "f") return FINISH;
-
Ponto schrieb:
Werden die Welten so erzeugt, wie im Code? Aus der Kenntnis des Generators und einiger Resultate kann man Rückschlüsse auf das Raster ziehen.
Aber eine ernsthafte Frage: Zur Zeit gibt es keine Wände innerhalb des 4x4 Rasters. Bleibt das so?
bin sicher, alles bleibt so bis auf die main() und deine klasse.
-
macht doch mal 'ne aufgabe, die jeder in der sprache seiner wahl lösen kann. ist zwar hier ein c/c++ board aber ich denke dass auch manche gern c#, java, delphi, wasweissich nehmen würden.
-
volkard schrieb:
darf ich annehmen, daß ++*reinterpret_cast<long*>(this); und andere zugriffe auf private-sachen der basisklasse strikt verboten sind?
ja klar. Sowas hat afaik undefined behavior zur Folge und bewegt sich damit außerhalb der Grenzen von Standard-C++.
-
Ponto schrieb:
Werden die Welten so erzeugt, wie im Code? Aus der Kenntnis des Generators und einiger Resultate kann man Rückschlüsse auf das Raster ziehen.
Aber eine ernsthafte Frage: Zur Zeit gibt es keine Wände innerhalb des 4x4 Rasters. Bleibt das so?
hm, kann sein, daß ich am Generator noch was ändere. Dann aber nur um besser an das ranzukommen was im Text beschrieben ist: eine Gleichverteilung der einzelnen Elemente.
Es wird keine Wände innerhalb des Rasters geben.
-
net schrieb:
macht doch mal 'ne aufgabe, die jeder in der sprache seiner wahl lösen kann. ist zwar hier ein c/c++ board aber ich denke dass auch manche gern c#, java, delphi, wasweissich nehmen würden.
und wie soll ich das alles dann vergleichen? In jeder Sprache mal schnell das Framework implementieren?
Ich glaube nicht, daß es wirklich weh tut das in C++ zu bauen.
-
Hm, Stochastik war zwar nicht unbedingt mein Lieblingsthema im Matheunterricht, aber die Berechnungsgrundlagen, auf die man hier aufbauen kann, kriege ich glaube ich noch zusammen
Mal schauen, was dabei am Ende herauskommt...
-
Jester schrieb:
volkard schrieb:
darf ich annehmen, daß ++*reinterpret_cast<long*>(this); und andere zugriffe auf private-sachen der basisklasse strikt verboten sind?
ja klar. Sowas hat afaik undefined behavior zur Folge und bewegt sich damit außerhalb der Grenzen von Standard-C++.
Das behauptest du.
Bye, TGGC (Wähle deine Helden)
-
Achso, hier noch'n Standard Bt, mit dem ihr anfangen könnt. Nach volkard seiner Idee, darum ist der so doof.
#ifndef THEL33TBOT_H #define THEL33TBOT_H #include "Agent.h" // inheriting class's header file class TheL33tBot : public Agent { public: TheL33tBot(); ~TheL33tBot(); virtual Action decideNextAction(Sense sense); bool m_Grabbed; }; #endif
#include "TheL33tBot.h" #include <cstdlib> //das geniale Teil hier ist von mir //also nicht vergessen //wer auch immer gewinnt, schuldet mir sein Erstgeborenes TheL33tBot::TheL33tBot() { m_Grabbed= false; } TheL33tBot::~TheL33tBot() { } Agent::Action TheL33tBot::decideNextAction(Sense sense) { if( m_Grabbed ) { return FINISH; } if( sense.glitter ) { m_Grabbed= true; return GRAB; } Agent::Action Blubb[]= {TURN_LEFT, TURN_RIGHT, MOVE}; return Blubb[ rand() % 3 ]; }
Kann man so als Basis nehmen.
Bye, TGGC (Wähle deine Helden)
-
wozu kann man das monster eigentlich umschießen? das feld kann man dann doch eh nicht betreten, weil es immer in einer fallgrube wohnt.
-
Ach es gibt so viele Sache am Framework, die einem das Leben unnötig schwer machen. Und jetzt war auch noch wer zu dumm, seine selbst definierten Konstanten zu benutzen...
Bye, TGGC (Wähle deine Helden)
-
Der Agent startet immer im Feld [1,1]
Also nicht ganz am Rand oder was?
-
Michael E. schrieb:
Der Agent startet immer im Feld [1,1]
Also nicht ganz am Rand oder was?
das ist der rand.
das feld geht von [1,1] bis [4,4].
intern geht es zwar von [0,0] bis [5,5] und hat einen praktischen rand, auf dem meterdicke wände stehen, aber da konnen wir eh nicht hin.