# 4 gewinnt



## anybody (17. Mai 2006)

Hi,

ich möchte das Spiel 4 gewinnt mit Java programmieren. Jetzt habe ich mich ein bischen schlau gemacht und bin immer wieder auf die Algorithmen Minimax und Alpha-Beta für die Optimierung gestossen. Verstehen tuh ich Sie aber wie Implementiere ich die? Sprich woher weiss ich wie welches Feld welche Gewichtung hat? Wie kann ich den GUI Programmieren und die einzelnen Felder ansprechen? Und und.. Für jegliche Hilfe wäre ich sehr dankbar. Ideen Tipps Tricks Tutorials usw wären wirklich super. Sprich ein Ansatz wie ich an sowas rangehen kann.. Für weiter Tipps für dei Optimierung wäre ich euch zu tiefst verpflichtet.

mfg anybody


----------



## André Uhres (17. Mai 2006)

anybody hat gesagt.:
			
		

> ..Und und.. _Für jegliche Hilfe wäre ich sehr dankbar_..


http://www.galileocomputing.de/openbook/javainsel4/


----------



## Johanness (18. Mai 2006)

Bei http://www.lbremer.de/viergewinnt.html findest Du einige interessante Informationen zu 4Gewinnt-Programmen.


----------



## Chuck Norris (18. Mai 2006)

anybody hat gesagt.:
			
		

> Hi,
> 
> ich möchte das Spiel 4 gewinnt mit Java programmieren. Jetzt habe ich mich ein bischen schlau gemacht und bin immer wieder auf die Algorithmen Minimax und Alpha-Beta für die Optimierung gestossen. Verstehen tuh ich Sie aber wie Implementiere ich die? Sprich woher weiss ich wie welches Feld welche Gewichtung hat? Wie kann ich den GUI Programmieren und die einzelnen Felder ansprechen? Und und.. Für jegliche Hilfe wäre ich sehr dankbar. Ideen Tipps Tricks Tutorials usw wären wirklich super. Sprich ein Ansatz wie ich an sowas rangehen kann.. Für weiter Tipps für dei Optimierung wäre ich euch zu tiefst verpflichtet.
> 
> mfg anybody


ich mache genau das gleiche als maturaarbeit (abi-arbeit oder wie das bei euch heisst)

paar tipps:
Zur gewichtung:

mittels min-max-algorithmus oder halt alpha-beta-cut "simulierst" du ja eine bestimmte anzahl züge im voraus (auch tiefe genannt). sobald du dann bei deiner maximal-tiefe angelangt bist, musst du einen feldbewerter aufrufen, der dein derzeitiges feld bewertet. darüber ist im inet wesentlich weniger zu finden als über die erwähnten algorithmen. ich empfehle erstmal einfach die 3er, 2er und 1er reihen von beiden spielern zu zählen und dann in einem bestimmten verähltnis zu kombinieren( bsp: ein 3er des ziehenden spielers zählt 20 punkte, ein 2er 9. bei einem 3er des nachziehenden werden 15 punkte abgezogen, usw.)

zur GUI
ich habe das wie folgt gelöst:
2 klassen.
die klasse feld:
repräsentiert 1 feld (von den 42 feldern (7x6)). dieses kann einen zustand (leer, spieler 1 oder spieler 2) annehmen. diese klasse impletiert die paint methode und zeichnet so den zustand.

2. klasse: grafik
diese klasse organisiert die ganze grafik (Menü, Eigenschaftsfenster, Mouse-Ereigniss) und enthält auch ein array der dimension [7][6] mit den 42 oben erhähnten feldern.


ich hoffe konnte dir ein bisschen helfen. wenn du noch fragen hast, stell sie nur.


----------



## anybody (20. Mai 2006)

Hallo Chuck Norris,

danke für deine ausführliche Information. Aber eine Sache verstehe ich da nicht. was meinst du mit 



> ich empfehle erstmal einfach die 3er, 2er und 1er reihen von beiden spielern zu zählen und dann in einem bestimmten verähltnis zu kombinieren( bsp: ein 3er des ziehenden spielers zählt 20 punkte, ein 2er 9. bei einem 3er des nachziehenden werden 15 punkte abgezogen, usw.)


----------

