200 likes | 290 Views
Team : 13th Legion Igor Pshul Julie Mogoun Max Schmitt Steffen Balzer. Übersicht. Zeitplan. Templates. Vorlagen, die mit Inhalt gefüllt werden können. SVN. SVN unter Windows ( Turtoise Client). SVN unter Linux. Entwurf- Strategie Flussdiagramm. Kampfbeginn. Scannen.
E N D
Team : 13th Legion Igor Pshul Julie Mogoun Max Schmitt Steffen Balzer
Templates Vorlagen, die mit Inhalt gefüllt werden können
Kampfbeginn Scannen Position im Gegnerauf-kommen Rückzug in ruhige Zone, dabei feuern Ja Nein Mit Teamkamerad am Rand treffen Gegner in Teamnähe Ja Offensivtaktik Nein Defensivhaltung
Offensivtaktik Mehrere Gegner Zwischen Ziel mit geringster Energie und Reichweite wählen Kampf-beginn Ja Nein Ziel fokussieren und gemeinsamer Angriff Rückzug des Gegners Nein Ja Richtung Gegner-aufkommen Zielenergie < 15% Ziel nach Energie scannen Ja Nein Ja Nein Verfolgen und vernichten Scannen
Defensivtaktik Gegner in Teamnähe Ja Nein Blindes Feuern in Richtung Gegneraufkommen Mehr Treffer als Fehlschüsse Ja Nein Feuer einstellen Scannen
Methoden - Drehen if (getHeading() > Zielwinkel ) { if (getHeading() - Zielwinkel >=0 && getHeading()- Zielwinkel <90) { turnLeft(getHeading()-Zielwinkel ); ahead(); } if (getHeading() - Zielwinkel <=359 && getHeading()- Zielwinkel >=270) { turnRight(360 - getHeading()+Zielwinkel ); ahead(); } if (getHeading() - Zielwinkel <270 && getHeading()- Zielwinkel >=180) { turnLeft( (getHeading()-Zielwinkel) - 180); back(); } if (getHeading() - Zielwinkel <180 && getHeading() - Zielwinkel >=90) { turnRight(180 - (getHeading() -Zielwinkel)); back(); } }
Methoden - F_FILTER private ArrayList <ScannedRobotEvent> filter = new ArrayList(); (…) synchronized void filter(ScannedRobotEvent e){ int i=0; boolean none = true; while (i< filter.size()){ if(filter.get(i).getName().equals(e.getName())) none = false; i++; } if(none && !isTeammate(e.getName())) filter.add(e); }
F_Navigation_population (1) public double[] populationCheck (ArrayList <ScannedRobotEvent> filter){ int anz1=0, anz2=0, anz3=0 ,anz4=0; double[] ziel = new double[4]; for (int i = 0; i < filter.size(); i++){ if (getTargetsX(robot, filter.get(i)) > robot.getBattleFieldWidth()/2 && getTargetsY(robot, filter.get(i)) > robot.getBattleFieldHeight() /2) anz1++;
F_Navigation_population (2) else if (…) double x_1_1 = robot.getBattleFieldWidth() - (robot.getBattleFieldWidth()/4), y_1_1 = robot.getBattleFieldHeight(), x_1_2 = robot.getBattleFieldWidth(), y_1_2 = robot.getBattleFieldHeight() - (robot.getBattleFieldHeight()/4), (…) if(anz1 <= anz2 && anz1 <= anz3 && anz1 <= anz4) {ziel[0]=x_1_1; ziel[1] = y_1_1; ziel[2] = x_1_2; ziel[3] = y_1_2;} else if (…) return ziel;
Kommunikation Sender (...) try{ broadcastMessage(e.getName()); } catch(Exception ex){ out.println("Fehler beim Senden der Nachricht von"+getName()); } double[] befehl = new double[2]; (...) try{ broadcastMessage(befehl); out.print("sende Nachricht"); } catch(Exception ex){ out.println("Fehler beim Senden der Nachricht von"+getName()); } (...)
Kommunikation Empfänger public void onMessageReceived(MessageEvent e){ Object empfang = e.getMessage(); if(empfang instanceof double[]){ ziel = (double[]) empfang; out.print("empfangen"); start2 = true; m.moveTo(ziel[0], ziel[1]); start2 = false; } else if(empfang instanceof String){ befehl = (String) empfang; out.println(befehl); }
Erfahrungen Probleme Fazit Verbesserungs-vorschläge Erweiterbar- und Wiederverwert-barkeit