Upload
leal
View
32
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Team : 13th Legion
Igor PshulJulie MogounMax Schmitt
Steffen Balzer
Übersicht
Zeitplan, Tools
Flussdiagramm
MethodenFazit
Zeitplan
Templates
Vorlagen, die mit Inhalt gefüllt werden können
SVN
„Ordner“ auf den von mehreren PC‘s zugegriffen werden kann
Datensicherung in einem zentralen Projektarchiv (repository)
Revisionszählung mit Möglichkeit der Wiederherstellung
SVN unter Windows (Turtoise Client)
SVN unter Linux
Entwurf-Strategie
Flussdiagramm
Kampfbeginn
Rückzug in ruhige Zone, dabei feuern
Scannen
Mit Teamkamerad am Rand treffen
Position im
Gegnerauf-kommen
Gegner in Teamnähe
Ja
Nein
Ja
Nein
Offensivtaktik
Defensivhaltung
Offensivtaktik
Mehrere Gegner
Zielenergie < 15%
Richtung Gegner-
aufkommen
Rückzug des
Gegners
Ziel fokussieren und
gemeinsamer Angriff
Verfolgen und vernichten
Ziel nach Energie scannen
Zwischen Ziel mit geringster
Energie und Reichweite
wählen
Ja
Nein
JaNein
Nein
Nein
Scannen
Kampf-beginn
Ja
Ja
Defensivtaktik
Blindes Feuern in Richtung
Gegneraufkommen
Gegner in Teamnähe
Mehr Treffer als Fehlschüs
se
Nein
Feuer einstellen
Ja
Ja
Nein
Scannen
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 - Drehen
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);}
Klassendiagramm
Fazit
Erfahrungen Probleme
Verbesserungs-vorschläge
Erweiterbar- und
Wiederverwert-barkeit
Fragen