# Applet für "Vier Gewinnt": Welche Klassen verwende



## Yamato (11. Jun 2007)

Hallo,

Ich habe ein mittlerweile recht brauchbares "Vier Gewinnt"-Programm, das allerdings bisher nur als reine Konsolenanwendung läuft. Nun überlege ich, das Programm in ein Applet zu giessen. Da ich bisher mit Swing & Co. noch nicht sehr viel Erfahrung sammeln konnte (und bevor ich ganz falsch anfange), meine Frage:

Welche Klassen bzw. Methoden sind für die Realisierung geeignet?

Ich möchte nur ein einfaches graphisches Spielbrett mit Feldern, in die durch Klicken die Spielsteine gesetzt werden. Daneben sollen noch Informationen über die Berechnung angezeigt werden.
Laut Javahandbuch kann man das Paket java.awt.geom.* verwenden - bevor ich mich aber falsch entscheide, wollte ich mal nachfragen, was der geeignetste Weg ist.


----------



## Marco13 (11. Jun 2007)

Was du aus java.awt.geaom brauchst und was nicht, kann man so nicht sagen. Du kannst die Klassen verwenden, um deine Objekte (Spielsteine) zu reräsentieren. Mußt du aber nicht. Hm. Ansonsten wäre sowas
http://java.sun.com/docs/books/tutorial/uiswing/
ein möglicher Einstiegspunkt.


----------



## Quaxli (12. Jun 2007)

Wenn es um Spiele geht und jemand Swing verwende will, stellen sich mir immer die Fußnägel auf.  :wink: 
Ist aber z. T. einfach eine subjektive Abneigung.
Wenn es ein Applet werden soll, reicht es eigentlich, die paint-Methode des Applets zu überschreiben und die entsprechenden Objekte da rein zu zeichnen.

Ich würde ein Objekt der Klasse java.awt.geom.* für die Spielsteine verwenden, z. B. Rectangle. 
Das Spielfeld würde ich entweder über Grafikprimitive selbst zeichnen oder mit Hilfe eines Grafikprogramms vorentwerfen und als Hintergrundbild zeichnen.

Ich habe allerdings den Eindruck, daß das Dein erster Schritt in diese Richtung ist. Daher würde ich Dir empfehlen erst einmal ein paar Tutorials zum Thema Spieleentwicklung anzusehen, z. B. hier
Den genauen Link habe ich momentan leider nicht und kann die Seite hier auch nicht aufrufen, aber das findest Du schon. Es geht zwar nicht um Applets, aber das Prinzip ist jeweils das Gleiche.

Es geht natürlich auch mit Swing und wenn Du in die Richtung gehen willst, solltest Du den Link von Marco13 einmal ansehen - ist Geschmackssache.

<edit>

Hier ist noch ein Tutorial zur Spieleentwicklung mit Java. Ich denke das ist für Anfänger auch ganz gut. 

</edit>


----------



## Wildcard (12. Jun 2007)

Quaxli hat gesagt.:
			
		

> Wenn es um Spiele geht und jemand Swing verwende will, stellen sich mir immer die Fußnägel auf.  :wink:


Swing ist gerade für jemanden der sich nicht zutraut eine für seinen Anwendungsfall bessere BufferStrategy mit hardwarebeschleunigten Bildern als die Leute von SUN zu entwickeln (das dürfte hier im Forum auf 97% der Mitglieder zutreffen) die richtige Wahl.


----------



## Quaxli (12. Jun 2007)

Man kann aber für Applets ein sehr einfachere Doppelbufferung basteln, als auf BufferStrategy zurück zu greifen. Und für ein einfaches "4 gewinnt" sollte die dicke reichen.


----------



## Wildcard (12. Jun 2007)

Quaxli hat gesagt.:
			
		

> Man kann aber für Applets ein sehr einfachere Doppelbufferung basteln, als auf BufferStrategy zurück zu greifen. Und für ein einfaches "4 gewinnt" sollte die dicke reichen.


Die ist dann aber schlechter als die Standard Strategy von Swing und das obwohl Swing komfortabler und funktionsreicher ist.


----------



## Quaxli (12. Jun 2007)

Da könnten wir uns jetzt wohl noch länger "streiten" 

Am Besten schaut sich Yamato mal die einzelnen Möglichkeiten durch und entscheidet dann selbst was im am Besten gefällt. 

Genug Links zum Lesen und Lernen hat er ja jetzt.


----------



## Wildcard (12. Jun 2007)

Quaxli hat gesagt.:
			
		

> Da könnten wir uns jetzt wohl noch länger "streiten"


Das glaube ich weniger, da dir eine Argumentation gegen Swing sehr schwer fallen wird  :wink:


----------



## Yamato (13. Jun 2007)

Ich werde mir beide Sachen mal anschauen. Mir geht es in erster Linie um den Aufwand, der möglichst klein sein soll.

Mir ist auch nicht klar, was ihr mit "BufferStrategy" meint?! Hardwarebeschleunigte Bilder brauche ich sicher nicht für eine simple Visualisierung.


----------



## Marco13 (13. Jun 2007)

Solange du keinen 3D-Shooter oder komplexe(!) animierte 2D-Grafiken machen willst, brauchst du dir glaubich nicht so viele Gedanken zu machen - nimm den einfachsten Weg, denn für ein graphisch so wenig aufwändiges Spiel ist das mit Sicherheit der richtige.


----------



## Quaxli (13. Jun 2007)

Es geht dabei um die Methode der DoppelBufferung. Mit Doppelbufferung wird verhindert, daß Objekte in einem Spiel flackern, wenn sie bewegt werden. Es gibt da mehrere Möglichkeiten:

Entweder packst Du ein JPanel in Dein Applet, wie von Wildcard vorgeschlagen, welches automatisch doppelt gepuffert ist oder Du bastelst eine eigene kleine Lösung rein. Ein Beispiel dafür findest Du in dem 2. Link den ich gepostet habe.

Schau Dir halt mal durch, was Dir besser gefällt.


----------

