Ebene robot_ebene1 team_ebenerobot_ebene team_ebene0robot_ebene0robot_ebene2 feldspieler_ebene1feldspieler_ebene0feldspieler_ebene2torwart_ebene1torwart_ebene0.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Soccer without Reason - Das RoboCup-Team der FU Berlin
VO2 Laden und Initialisieren der Sounds. Wir wollen Sounds in unsere Applikation laden Menü erweitern –um den Menüpunkt Sound –mit dem Identifier ID_ULTRIS_SOUND.
Ultris Version 8: Erzeugen der Formen und Anzeigen der Vorschau
Ultris V10 Bewegen, Drehen und Kollisionserkennung.
V11 Auflösen der Formen und Abräumen der Reihen. Zwei neue Methoden ___________________________________ class ultris { private: … void aufloesen(); void.
Verteilte Software - Java - Prozedurale Programmierung 1
Konstruktoren.
Felder sortieren. Aufgabe: Die Zahlen eines Feldes sollen der Größe (zuerst die kleinste Zahl) nach sortiert werden.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
V10 - Kollisionen Nicolas Matentzoglu. Inhalt der Präsentation Kollisionserkennung bei Hindernissen Verhalten der Kugel über verschiedenen Untergründen.
V09 Fallende Formen, Geschwindigkeitsregelung und Timing Daniel Ebner Spieleprogrammierung mit DirectX und C++
Tag 2 Look-up-Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung Quelle: 3D-Spiele mit C++ und DirectX in 21 Tagen, Alexander.
Vers. 6: Der Konfigurationsdialog Quelle: Spieleprogrammierung mit DirectX und C++, U. Kaiser und P. Lensing, Galileo Computing (2007)
Spieleprogrammierung mit DirectX und C++
V03 Laden und Speichern von Spielfeldern und der Spielfeldeditor.
Zusammenfassung Vorwoche
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Informatikunterricht mit Java
3D Programmierung Version 12 - Highscores. Die vom Spieler erzielte Punktzahl wird mit 5 vorgegebenen Punktzahlen verglichen und, falls nötig, in die.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Informatik WWU Münster / D. Lammers / HST-WiSe03 Robotfussball und Agenten Und was hat das mit der Informatik an der WWU zu tun?
Einfach verkettete Listen (OOP)
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
RFS Roboter Fussball Simulation. Projektdaten Warum gibt es dieses Projekt: Jahr der Informatik Anfrage des Fördervereins Fussballweltmeisterschaft in.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Informatik 1 Letzte Übung.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Lehrabend März 2014 Die Notbremse Kim-Jana Trenkner 1.
Arduino Kurs Abend 2.
Purga - Scriptengine Ein Einblick.
Parallelisierung für Multiprozessor-Maschinen Teil 2.
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
early binding (frühe Bindung) late binding (späte Bindung)
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
1 // Heap als ADT // JW: V1.0 // Vorlage gemaess EED-Quelltext // #include #include // für double pow (double d, int i) #include // fuer INT_MIN.
Eine geschichtete Architektur zur reaktiven Verhaltenssteuerung
Team-Steuerung Robbi 1 Team-Ebenen Robbi 2Robbi 3Robbi 4Robbi 5.
Eine geschichtete Architektur zur reaktiven Verhaltenssteuerung
FU-FIGHTERS FREIE UNIVERSITÄT BERLIN Das RoboCup-Team der Freien Universität Berlin Peter Ackers, Sven Behnke, Bernhard Frötschl, Wolf Lindstrot, Manuel.
ROBERT NYSTROM GAME PROGRAMMING PATTERNS III.8 Thema: Sequencing Patterns Seminar: Softwaretechnologie II (Teil 2) Dozent: Prof. Dr. Manfred Thaller Referent:
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
ESP Tutorium Studienassistent: Ewald Moitzi Gruppe 1.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Aufgaben zu Rückgabewerten
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Bewegung des Pacman.
Die Klasse Vielfrass in Java
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Grundkurs Informatik 11-13
Variable: typ varName = Wert Kiste: Art Aufschrift  Inhalt
 Präsentation transkript:

ebene robot_ebene1 team_ebenerobot_ebene team_ebene0robot_ebene0robot_ebene2 feldspieler_ebene1feldspieler_ebene0feldspieler_ebene2torwart_ebene1torwart_ebene0 agent torwart teamrobot #define t3_101_I 0 #define t1_000_I 1 #define t3_102_I 2 #define t2_010_I 3 #define t2_101_I 4 #define t4_202_I 5 #define t1_010_I 6 #define t2_200_I 7 #define t5_202_I 8 #define t4_201_I 9 feldspieler

class agent { public: agent(); virtual ~agent(){;} virtual void addverhalten(class verhalten *v, int level) = NULL; //( class verhalten *v, int level ); virtual void action() = NULL; class ebene *ebenen[MAX_EBENEN]; char *name; int anz_ebenen; }; class torwart:public robot { public: void init(char *r_name, class team *my_team ); }; class team:public agent { public: team(); team( int teamnr, float seite); virtual ~team(); virtual void init(char *t_name); void addverhalten( class verhalten *v, int level ) {;} void action(); agent *getAgent(const char *name); //Eigene Ebenen: class ebene *ebenen[MAX_EBENEN]; //Oberste Ebene der Robbis class ebene *robbi_ebenen[MAX_AGENTS]; //Robbis: class robot *robbis[ MAX_AGENTS ]; //Anzahl der Spieler: int anz_mitglieder; int spielmodus; //Teamdaten: class robovektor unser_tor; class robovektor gegner_tor; // Gegner: class enemy *enemies[ MAX_AGENTS ]; int anz_enemies; int teamnummer; // 0 oder 1 int torwart_id; int hau_weg_counter; unsigned int timer; // Methoden zum Setzen der Daten void writeRobbiData(int internalID,int externalID, float posX, float posY, float dx, float dy); void SwitchSeite() // links-1, rechts 1 void writeEnemyData(int internalID, float posX, float posY, float dx=1.f, float dy=0.f); void setEnemyAnz(int anz){anz_enemies = anz;} void writeRobbiHindernis(int internalID, float hx, float hy); void writeFieldData( float ux, float uy, float gx, float gy }; class robot:public agent { public: robot(); virtual void init(char *r_name, class team *my_team ); void addverhalten( class verhalten *v, int level ); void action(); *ebenen[MAX_EBENEN]; class robovektor position; class robovektor direction; class robovektor old_orientierung; class robovektor orientierung; class robovektor hindernis; class robovektor homeposition; class robovektor unser_anstoss_hp; class robovektor gegner_anstoss_hp; class robovektor gegner_elfer_hp; float maxspeed, maxdiff; class team *my_team; // für Kommunikation comm_data robot_command; }; class team_ebene0:public team_ebene { public: team_ebene0(class team *myself):team_ebene(myself) { resolution = 1;} team_ebene0(class team *myself,/* int id,*/ class ebene *he):team_ebene(myself,/* id,*/ he) {resolution = 1;} int counter; void aktualisiereDaten(); void eval(); void init(); }; class feldspieler:public robot { public: void init(char *r_name, class team *my_team ); };

class ebene { //Methoden: public:ebene(); ebene( class ebene *he ); void addverhalten( class verhalten *neuesverhalten, int index, const char* name); void add_sensor(int index, const char* name, float norm=1.0f); void add_aktor(int index, const char* name); virtual void aggregiereDaten() { ;} // before eval of higher_E virtual void aktualisiereDaten() { ;} // after eval of higher_E void addausgabe( int n, float *p, int t, const char *s ); void delausgabe( float *p); void ausgabe(); virtual void eval(); virtual void init(); //Daten: int roboid; class ebene *higher_E; class verhalten *alleverhalten[MAX_VERHALTEN]; int anz_verhalten; float sensoren[ MAX_SENSOREN ]; int anz_sensoren; char *sensor_names[ MAX_SENSOREN ]; float sensor_norm[ MAX_SENSOREN ]; float aktoren[ MAX_AKTOREN ][ 3 ]; // 2te Dimension für die deltas, 3te für Normierung int anz_aktoren; char *aktor_names[ MAX_AKTOREN ]; int timer; int subsampling_fak; //Subsampling der hoeheren Ebene int resolution; float *pufferpointer[5]; // Pointer auf den Ringpuffer des BehaviorViews, in den Daten geshrieben werden sollen int typ[5]; // Gibt an, ob Aktor Sensor oder Vaerhaltensaktivierungsfaktor in den Ringpuffer geschrieben werden sollen int index[5]; // Gibt den Index des Wertes an, der in den Ringpuffer geschrieben werden soll int number[5]; //Gibt die Nummer des Ringpuffers an, in den geschrieben werden soll int anz_ausgaben; // Gibt an, wieviele Werte aus der Ebene ausgegeben werden; }; feldspieler_ebene0, feldspieler _ebene1, feldspieler _ebene2 implementieren eval(), init(), aggregiereDaten(), aktualisiereDaten(); class team_ebene:public ebene { public: class team *me; team_ebene(class team *myself):ebene() { me = myself; } team_ebene(class team *myself, class ebene *he):ebene( he) { me = myself; } void init(){;} }; class robot_ebene:public ebene { public: class robot *me; robot_ebene (class robot *myself, class ebene *he):ebene(he) {me = myself;} }; class team_ebene0:public team_ebene { public: team_ebene0(class team *myself):team_ebene(myself) { resolution = 1;} team_ebene0(class team *myself,/* int id,*/ class ebene *he):team_ebene(myself,/* id,*/ he) {resolution = 1;} int counter; void aktualisiereDaten(); void eval(); void init(); }; robot_ebene0, robot_ebene1, robot_ebene2 implementieren eval(), init(), aggregiereDaten(), aktualisiereDaten();

class verhalten { //Methoden: public: verhalten() { e = 0; aktivierungsfaktor = 0.; name = NULL;} verhalten( class ebene *b ) { e = b; aktivierungsfaktor = 0.; name = NULL; } virtual void aktivierungsfunktion() = 0; virtual void zielfunktion() { ;} void eval(); //Daten: class ebene *e; //Pointer auf die eigene Ebene float aktivierungsfaktor; CString *name; }; Von verhalten erben und implementieren aktivierungsfunktion und zielfunktion: ///////////////// Feldspieler ///////////////////////// #define e0_v_fahren 0 #define e0_v_lenken 1 #define e0_v_fahrenvorwaerts 2 #define e0_v_lenkenvorwaerts 3 #define e0_v_fahrenausweichen 4 #define e0_v_lenkenausweichen 5 #define e0_v_fahrenvollstrecken 6 #define e0_v_lenken_ausweichen_ball 7 #define e0_v_fahren_haurein 8 #define e0_v_lenkengohome 9 #define e0_v_fahrengohome 10 #define e0_v_fahrenanlauf 11 #define e0_v_lenkenanlauf 12 ///////////////// Torwart ///////////////////////////// #define tw_e0_v_halten 0 #define tw_e0_v_fahrentorwartstellen 1 #define tw_e0_v_fahrentorwarthalten 2 #define tw_e0_v_stellen 3 /////////////////////////Torwart/////////////////////////// #define tw_e1_v_schiessen 0 ////////////////////// Feldspieler //////////////////////////// #define e1_v_ausweichen 0 #define e1_v_zumOrtmitStop 1 #define e1_v_Anlauf 2 #define e1_v_vollstrecken 3 #define e1_v_ausweichen_ball 4 #define e1_v_blocken 5 #define e1_v_laufenmitBall 6 #define e1_v_hau_rein 7 #define e1_v_hau_weg 8 #define e1_v_gohome 9 #define e1_v_hau_aus_der_Ecke 10 #define e1_v_stay 11 #define e1_v_ausrichten 12 /////////////////// Feldspieler ////////////////// #define e2_v_Torschuss 0 #define e2_v_dribbeln 1 #define e2_v_Abwehren 2 #define e2_v_Stehen 3 #define e2_v_Homing 4 #define e2_v_Spezial_Torschuss 5 #define e2_v_IchMachAnstoss 6 /////////////////// Team ////////////////// #define t_e0_v_angriff 0 #define t_e0_v_abwehr 1

class Spielfeld { public: Spielfeld(); void ballprediction(); void glaetten(); class robovektor CenterPoint; class robovektor oldballposition, newballposition; class robovektor glatte_ballposition; class robovektor balldirection; class robovektor glatte_balldirection; class robovektor very_glatte_balldirection; class robovektor ballbewegung; std::vector standardSituationen; int spielstatus; int fuer_team; // gibt an für welches Team Standardsituation bool daten_sind_neu; DWORD bild_time; float streckfaktor; robovektor predicted_positions[MAX_PREDICTION_POSITIONS]; }; class steuerung { public: steuerung(); int timer; DWORD last_action_ticks; float *pufferpointer; // für hartbeat bool neues_team(std::string name, int teamNr); void add_pufferpointer(float *ringpuffer); class team *team[2]; int anz_teams; teamTemplates team_templates; };

//===================================================================================== //======================================== E B E N E 0 =============================== //===================================================================================== /////////////////////////////////////////// Sensoren ////////////////// Robot ///////////////////////// #define r_e0_s_ballwinkel 0 ////////////////// Feldspieler ///////////////////////// #define e0_s_zielwinkel 1 //[ -pi; pi ] gesehen in Orientierungsrichtung #define e0_s_zielentfernung 2 // #define e0_s_richtung 3 // 1 = vorwaerts, -1 = rueckwaerts #define e0_s_speed 4 // #define e0_s_drehwinkel 5 //Winkel, um den sich der Robbi im letzten Schritt gedreht hat #define e0_s_ausweichen_winkel 6 #define e0_s_ausrichtenwinkel 7 ///////////////// Torwart /////////////////////////////// #define tw_e0_s_ballposition_X 1 #define tw_e0_s_ballposition_Y 2 #define tw_e0_s_balldirection_X 3 #define tw_e0_s_balldirection_Y 4 #define tw_e0_s_robbiposition_X 5 #define tw_e0_s_robbiposition_Y 6 #define tw_e0_s_torwart_ziel_entfernung 7 // nur die y-Komponente #define tw_e0_s_last_ballposition_X 8 #define tw_e0_s_last_ballposition_Y 9 #define tw_e0_s_torwart_zielwinkel 10 #define tw_e0_s_parallel_winkel 11//Winkel zwischen Orientierung und y-Achse //////////////////////////////////////////// Verhalten ////////////////// Feldspieler ///////////////////////// #define e0_v_fahren 0 #define e0_v_lenken 1 #define e0_v_fahrenvorwaerts 2 #define e0_v_lenkenvorwaerts 3 #define e0_v_fahrenausweichen 4 #define e0_v_lenkenausweichen 5 #define e0_v_fahrenvollstrecken 6 #define e0_v_lenken_ausweichen_ball 7 #define e0_v_fahren_haurein 8 #define e0_v_lenkengohome 9 #define e0_v_fahrengohome 10 #define e0_v_fahrenanlauf 11 #define e0_v_lenkenanlauf 12 ///////////////// Torwart ///////////////////////////// #define tw_e0_v_halten 0 #define tw_e0_v_fahrentorwartstellen 1 #define tw_e0_v_fahrentorwarthalten 2 #define tw_e0_v_stellen 3 /////////////////////////////////////////////// Aktoren ////////////////////// Robot ////////////////////////// #define r_e0_a_lenken 0 #define r_e0_a_fahren 1 //////////////////////// Feldspieler ////////////////////// #define e0_a_ausweichentscheidung 2 #define e0_a_ballausweichentscheidung 3 //////////////////// Torwart /////////////////////////// #define tw_e0_a_zielposition_X 2 #define tw_e0_a_zielposition_Y 3

//===================================================================================== //======================================== E B E N E 1 =============================== //===================================================================================== ///////////////////////////////////////////////// Sensoren ////////////////////// Robot ////////////////////////// #define r_e1_s_unser_tor_X 0 #define r_e1_s_unser_tor_Y 1 ////////////////// Feldspieler ///////////////////////// #define e1_s_ballposition_X 2 // wird von der unteren Ebene upgedated (smoothed average) #define e1_s_ballposition_Y 3 #define e1_s_robbiposition_X 4 #define e1_s_robbiposition_Y 5 #define e1_s_hindernis_X 6 #define e1_s_hindernis_Y 7 #define e1_s_hindernis_entfernung 8 #define e1_s_hindernis_winkel 9 #define e1_s_richtung 10 //Robbi vorwaerts oder rueckwaerts ( 1 oder -1 ) #define e1_s_ballentfernung 11 //Entfernug vom Robbi zum Ball #define e1_s_schusszielwinkel 12 //Von der Orientierung des Robbis unabhängiger Winkel // zwischen (Schussziel-Ball) und (Schussziel-Robbi) #define e1_s_schusszielentfernung 13 // Entfernung zwischen Robbi und Schussziel #define e1_s_entfernung_ball_ziel 14 //Entfernung zwischen Ball und Schussziel #define e1_s_auftreffpunkt_X 15 // Wo der Robbi aauf die gegnerische Torauslinie trifft, wenn er immer gerdaeaus fährt #define e1_s_auftreffpunkt_Y 16 #define e1_s_hindernis_ziel_winkel 17 //Von der Orientierung des Robbis unabhängiger Winkel // zwischen (Robbi-Hindernis) und (Robbi-Ball) #define e1_s_in_vollstreckenposition 18 //Sensor, der aktiv wird, wenn robby in Vollstrechenposition // langsame deaktivierung #define e1_s_balldirection_X 19 // wird von der unteren Ebene upgedated (smoothed average) #define e1_s_balldirection_Y 20 #define e1_s_zielwinkel 21 #define e1_s_in_haureinposition 22 #define e1_s_last_ballposition_X 23 // wird von der eigenen Ebene gerettet #define e1_s_last_ballposition_Y 24 #define e1_s_predicted_ballposition_X 25 // wird von der eigenen Ebene berechnet #define e1_s_predicted_ballposition_Y 26 #define e1_s_ballwinkel 27 #define e1_s_ball_ziel_winkel 28 //Von der Orientierung des Robbis unabhängiger Winkel // zwischen (Robbi-Ball) und (Robbi-Ziel) #define e1_s_robbispeed 29 //geschwindigkeit des roboters #define e1_s_dangerous_gegner_X 30 #define e1_s_dangerous_gegner_Y 31 #define e1_s_schuss_ok 32 #define e1_s_pred_ball_Anlauf_X 33 #define e1_s_pred_ball_Anlauf_Y 34 #define e1_s_robbidirection_X 35 #define e1_s_robbidirection_Y 36 #define e1_s_robbiorientierung_X 37 #define e1_s_robbiorientierung_Y 38 #define e1_s_pred_ball_haurein_X 39 #define e1_s_pred_ball_haurein_Y 40 #define e1_s_pred_ball_ausweichen_X 41 #define e1_s_pred_ball_ausweichen_Y 42 #define e1_s_drehwinkel 43 #define e1_s_bernhard 44 #define e1_s_fahren 45 #define e1_s_lenken 46 #define e1_s_zielentfernung 47 #define e1_s_pred_ball_Blocken_X 48 #define e1_s_pred_ball_Blocken_Y 49 #define e1_s_geradeaus 50 /////////////////Torwart///////////////////////////// #define tw_e1_s_balldirection_X 2 #define tw_e1_s_balldirection_Y 3 #define tw_e1_s_schuss_an 4 /////////////////////////Torwart/////////////////////////// #define tw_e1_v_schiessen 0 ////////////////////// Feldspieler //////////////////////////// #define e1_v_ausweichen 0 #define e1_v_zumOrtmitStop 1 #define e1_v_Anlauf 2 #define e1_v_vollstrecken 3 #define e1_v_ausweichen_ball 4 #define e1_v_blocken 5 #define e1_v_laufenmitBall 6 #define e1_v_hau_rein 7 #define e1_v_hau_weg 8 #define e1_v_gohome 9 #define e1_v_hau_aus_der_Ecke 10 #define e1_v_stay 11 #define e1_v_ausrichten 12 ////////////////////////////////////////////////// Aktoren ///////////////// Robot //////////////////////// #define r_e1_a_schuss 0 /////////////////// Feldspieler ////////////////// #define e1_a_zielposition_X 1 #define e1_a_zielposition_Y 2 #define e1_a_ausweichen_ziel_X 3 #define e1_a_ausweichen_ziel_Y 4 #define e1_a_blockposition_X 5 #define e1_a_blockposition_Y 6

//===================================================================================== //======================================== E B E N E 2 =============================== //===================================================================================== ///////////////////////////////////////////////// Sensoren ///////////////// Robot //////////////////////// /////////////////// Feldspieler ////////////////// #define e2_s_ballposition_X 0 #define e2_s_ballposition_Y 1 #define e2_s_robbiposition_X 2 #define e2_s_robbiposition_Y 3 #define e2_s_gegner_tor_X 4 #define e2_s_gegner_tor_Y 5 #define e2_s_unser_tor_X 6 #define e2_s_unser_tor_Y 7 #define e2_s_sollich 8 #define e2_s_glatter_bernhard 9 #define e2_s_dynamik_home_X 10 #define e2_s_dynamik_home_Y 11 ////////////////////////////////////////////////// Verhalten ///////////////// Robot //////////////////////// /////////////////// Feldspieler ////////////////// #define e2_v_Torschuss 0 #define e2_v_dribbeln 1 #define e2_v_Abwehren 2 #define e2_v_Stehen 3 #define e2_v_Homing 4 #define e2_v_Spezial_Torschuss 5 #define e2_v_IchMachAnstoss 6 ////////////////////////////////////////////////// Aktoren ///////////////// Robot //////////////////////// /////////////////// Feldspieler ////////////////// #define e2_a_schussziel_X 0 #define e2_a_schussziel_Y 1 #define e2_a_homeziel_X 2 #define e2_a_homeziel_Y 3 //===================================================================================== //======================================== T E A M E B E N E 0 =============================== //===================================================================================== ///////////////////////////////////////////////// Sensoren //////////////////////Team////////////////////// #define t_e0_s_ballposition_X 0 #define t_e0_s_ballposition_Y 1 #define t_e0_s_predicted_ballposition_X 2 #define t_e0_s_predicted_ballposition_Y 3 #define t_e0_s_angriff 4 #define t_e0_s_gegner_torwart_X 5 #define t_e0_s_gegner_torwart_Y 6 ///////////////////////////////////////////////// Verhalten #define t_e0_v_angriff 0 #define t_e0_v_abwehr 1

fahrenfahrenvorwaerts lenkenfahrenausweichen lenkenausweichen fahrenvollstrecken lenken_ausweichen_ball fahrengohome lenkenvorwaerts lenkengohomefahrenanlauf lenkenanlauf hau_aus_der_Eckegohomehau_weghau_reinblockenausweichen_ballvollstreckenAnlaufausweichen HomingIchMachAnstossSpezial_TorschussAbwehrenTorschuss AngriffAbwehr

hau_aus_der_Ecke gohome hau_weg hau_rein blocken ausweichen_ball vollstrecken Anlauf ausweichen Homing IchMachAnstoss Spezial_Torschuss Abwehren Torschuss Cross-over hemmingsimple hemming