Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Objektbildung-Schwierigkeiten » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 5 Beiträge
ed209

Jetzt doch mal noch eine längere Antwort:

Es ist zwar gut sich Gedanken zu machen bevor man modelliert, aber ich hab die Erfahrung gemacht daß man als Informatikstudent der ersten Semester auch schnell geneigt alles etwas zu überdesignen.

Es ist hilfreich sich zuerst über den Problembereich klar zu werden, also die Klassen die den Spielstatus abbilden:
Eine Klasse Spielfigur die die aktuellen Werte einer Spielfigur abbilden. Ork erbt von Spielfigur und Orkkrieger von Ork (keine ahnung ob das bei deinem Projekt Sinn ergibt, das ist nur ein Beispiel).

Die Spiellogik kann und sollte man auch in Klassen kapseln, aber da ist nicht alles sinnvoll.
Ich bin mir nicht sicher ob es sinnvoll ist, Klassen für Angreifer und Verteidiger zu haben.
Beides sind Rollen die eine Spielfigur spielen kann und diese Rollen wechseln über die Zeit.
Vererbungsstrukturen sind fest und können nicht mehr geändert werden.

So würde ich es zum Beispiel für logischer halten eine Routine fernkampfAngriff zu haben, die als Parameter zwei Spielfiguren erhält.
Für die Geltungsdauer der methode ist dann die Rollenverteilung klar, danach ist die Zuordnung nicht mehr gültig:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
static void fernkampfAngriff(Spielfigur angreifer, Spielfigur verteidiger) {
	int bf = angreifer.irgendeinWert();
	int s = angrefer.getWaffe().irgendeinAndererWert();
	int w = verteidiger.nocheinWert();
	// [...]
	verteidiger.nimmSchaden(schaden);
}
ed209

Kleiner Tip:

Es hilfe das Code-tag zu verwenden damit die einrückungen erhalten bleiben:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:

class foo {
	int bar () {
		return 42;
	}
}

Bartagaemchen

Ok,

erst mal die Schussphase, die ich ja dazu bringen möchte, dass sie Werte aus den figuren entnimmt

public class Testphase
{ Agressor Ang = new Agressor();
Verteidiger Def = new Verteidiger();
public void main()
{
//verwundungstabelle Regelbuch verwundungsTabelle[w][s]
int[][] verwundungsTabelle ={
{},
{0,4,3,2,2,2,2,2,2,2,2},
{0,5,4,3,2,2,2,2,2,2,2},
{0,6,5,4,3,2,2,2,2,2,2},
{0,6,6,5,4,3,2,2,2,2,2},
{0,0,6,6,5,4,3,2,2,2,2},
{0,0,0,6,6,5,4,3,2,2,2},
{0,0,0,0,6,6,5,4,3,2,2},
{0,0,0,0,0,6,6,5,4,3,2},
{0,0,0,0,0,0,6,6,5,4,3},
{0,0,0,0,0,0,0,6,6,5,4}};


for (int q=1;q<=50;q++){
int bf= 4;// Aggressor; keine manuelle Eingabe
int s=4; //Waffe; keine manuelle Eingabe
int w= 4; //Verteidiger; keine manuelle Eingabe
int kast = (int)Math.round((Math.random()*6+.5));
int trefferwurf;
trefferwurf=bf+kast;
System.out.print("Wurf, Treffer? = "+kast +" ");
if (trefferwurf>=7)
{//Gegner getroffen
System.out.printf ("getroffen ");
kast = (int)Math.round((Math.random()*6+.5));
System.out.print("Wurf, Verwundung?= "+kast +" ");
if(kast>=verwundungsTabelle[w][s])
{//Verwundet
System.out.printf ("vernichtet");
}
else
{
System.out.printf ("verfehlt ");
}

}
System.out.println (); }
}
}

Für die Klassen Aggressor und Verteidiger habe ich noch keine Vorschläge...
die Spielfiguren enthalten nur Werte, die Methode Schießen, soll noch eingefügt werden.
ED

Vielleicht würde es helfen wenn du das Klassendiagramm von dem was du bereits hast posten würdest.
Bartagaemchen Objektbildung-Schwierigkeiten

Hallo ihr!

Ich bin zwar neu hier im Forum, hoffe aber, dass ich dieses Thema richtig platziert habe.
Ich habe es mir zur Aufgabe gemacht, dass Tabltop-Spiel Warhammer 40.000 als Java Programm zu schreiben. Das Spiel wird größtenteils ausgewürfelt (soweit habe ich alles geschafft!).
Das Spiel beinhaltet 3 Phasen, die Schussphase ist zwar die einfachste, aber ich komme trotzdem nicht weiter. Würfeln sowie auswerten der Ergebnisse sind auch kein Problem.
Hier fängt es an: das Spiel beinhaltet eine Vielfalt von Spielfiguren, die fast alle schießen können. um aber die Klasse Schussphase nicht zu komplex gestalten zu müssen wollte ich zwei Objekte einfügen, Aggressor und Verteidiger. Die Figuren können sowohl Aggressor als auch Verteidiger werden, sprich, die Klasse Agressors beispielsweise müsste ein Objekt der Spielfigur erstellen... doch wie mache ich das? Ich kriege das nicht hin! Muss ich dann tatsächlich in dieser Klasse Agressor Methoden für jede einzelne Figur erstellen, die dann von der Figur aufgerufen wird?

Bevor ich es vergesse: als Basis nutze ich Java BlueJ, falls es was besseres (aber acuh kostenloses!) gibt, schreibt es mir bitte!

Freue mich auf Anregungen, falls was unklar ist, schreibt es einfach!

Gruß Bartagaemchen