Autor |
Beitrag |
Fiete
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: So 28.10.07 18:06
Zu einem Strategiespiel wie TicTacToe, 3DTTT, 5 gewinnt oder ähnlichem sind Planung und Algorithmen nötig.
Zusammengefaßt ist dies im Anhang TTT.zip (Strategie 2007.doc)
Am Beispiel von TTT stelle ich die Verfahren und Prozeduren vor.
Zusätzlich gibt es als Anwendung noch 3DTTT und Gobang (5 gewinnt).
In der Bewertungsfunktion werden nur Zahlen addiert, trotzdem simuliert der Rechner
einen spielstarken Gegner. Dies war für mich selbst überraschend.
Weitere Spiele können noch folgen (4 gewinnt, 3D 4 gewinnt,Kalaha, Reversi)
Gruß, Fiete
Edit1: kleine Programmverbesserungen an Gobang
Einloggen, um Attachments anzusehen!
_________________ Fietes Gesetz: use your brain (THINK)
Zuletzt bearbeitet von Fiete am Do 22.11.12 19:31, insgesamt 2-mal bearbeitet
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 28.10.07 18:16
Hab nur mal kurz das 3D-TTT angeguckt:
- Umlaute sind im Archiv defekt, deshalb kann er die Dateien dann nicht finden ("grün");
- Das Lila geht ja mal gar nicht
- Was soll denn die Meldung "Das Spiel wird beendet!", die ist unnötig
- alte Rechtschreibung?
- Bild flakert ein wenig;
- Ich als Spieler kann ganz schnell klicken, noch bevor der Computer zum Denken kommt und gewinne damit;
- Wenn ich den Spielverlauf nicht sehen möchte, kommt Meldung noch mal, usw.;
Von der Idee her gar nicht schlecht, lediglich die Umsetzung könnte noch ein Tick besser sein.
PS: Das wäre in der OpenSource-Sparte besser aufgehoben.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: So 28.10.07 21:37
Einige Änderungen:
- jetzt gruen
- Lila war eine Herausforderung zum Ändern. Übrigens "Die Farbe Lila" ist ein toller Film!
- Die Meldung ist persönliche Note
- Ich bin mit der alten Rechtschreibung groß geworden, also behalte ich sie bei
- Die Klickerei ist beseitigt, es fehlte eine Abfrage
- war Fehlerfortsetzung
Wer ver schiebt alles in open source?
Gruß, Fiete
Einloggen, um Attachments anzusehen!
_________________ Fietes Gesetz: use your brain (THINK)
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 29.10.07 00:06
Moin!
Hab´s verschoben.
Bitte aktualisiere - wie hier üblich - die Downloads in deinem ersten Beitrag, danke!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: Do 01.11.07 12:45
4 gewinnt in 2d und 3d sind fertig!
Gruß, Fiete
Einloggen, um Attachments anzusehen!
_________________ Fietes Gesetz: use your brain (THINK)
Zuletzt bearbeitet von Fiete am Mi 05.12.07 20:00, insgesamt 2-mal bearbeitet
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: Fr 02.11.07 14:45
Ein neues Programm: Reversi
Die Regeln:
Auf einem 8×8-Brett legen die Spieler abwechselnd Spielsteine, deren Seiten unterschiedlich (rot und grün) gefärbt sind. Ein Spieler ("Rot") legt seinen Stein immer mit der roten Seite nach oben, der andere ("Grün") entsprechend mit der grünen. Zu Spielbeginn befinden sich vier Steine in vorgegebener Anordnung auf dem Brett. Ein Spieler muss seinen Stein auf ein leeres Feld legen, das horizontal, vertikal oder diagonal an ein bereits belegtes Feld angrenzt. Wird ein Stein gelegt, werden alle gegnerischen Steine, die sich zwischen dem neuen Spielstein und einem bereits gelegten Stein der eigenen Farbe befinden, umgedreht. Spielzüge, die zu keinem Umdrehen von gegnerischen Steinen führen, sind nicht erlaubt. Das Ziel des Spiels ist es, am Ende eine möglichst große Anzahl von eigenen Steinen auf dem Brett zu haben.
Viel Spaß beim Testen!
Gruß, Fiete
Einloggen, um Attachments anzusehen!
_________________ Fietes Gesetz: use your brain (THINK)
Zuletzt bearbeitet von Fiete am Fr 16.11.07 14:40, insgesamt 2-mal bearbeitet
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: Fr 02.11.07 14:53
Die neueste Version von Kalaha(Awari, Bohnenspiel)
Die Regeln:
Das Kalaha-Spielbrett besteht aus zwei Muldenreihen mit jeweils sechs Spielmulden. Außerdem befindet sich an jedem Ende eine größere Gewinnmulde, auch Kalah genannt, welche im Laufe der Partie die gefangenen Steine aufnimmt. Jedem Spieler gehören die sechs Spielmulden auf seiner Seite des Brettes und die rechts von ihm gelegene Gewinnmulde.
Die Runden der Spieler bestehen darin, die Steine in den Mulden zu bewegen. Wenn ein Spieler an der Reihe ist, wählt er eine seiner Spielmulden, nimmt ihren Inhalt und verteilt ihn im Gegenuhrzeigersinn in die darauf folgenden Mulden. Dabei wird in jede Mulde, außer in die gegnerische Gewinnmulde, ein Stein gelegt
Wenn der letzte Stein in der eigenen Gewinnmulde landet, gewinnt der aktive Spieler eine Extra-Runde (oder: Bonus-Zug). Dies kann der Spieler auch mehrmals wiederholen und darf dann jeweils weiterspielen.
Wenn der letzte Stein in einer leeren Spielmulde des aktiven Spielers landet und direkt gegenüber in der gegnerischen Mulde ein oder mehrere Steine liegen, sind sowohl der letzte Stein als auch die gegenüberliegenden Steine gefangen und werden zu den eigenen Steinen in die Gewinnmulde gelegt.
Wenn ein Spieler an der Reihe ist, jedoch seine Spielmulden alle leer sind, ist die Partie beendet. Der Gegner leert seine Spielmulden ebenfalls und legt die Steine in seine Gewinnmulde. Gewinner ist, wer die meisten Steine in seiner Gewinnmulde hat
Gruß, Fiete
Einloggen, um Attachments anzusehen!
_________________ Fietes Gesetz: use your brain (THINK)
Zuletzt bearbeitet von Fiete am Fr 16.11.07 09:53, insgesamt 1-mal bearbeitet
|
|
AndyH
Hält's aus hier
Beiträge: 4
Win NT 4.0, Win 2000, Win XP
Delphi 7
|
Verfasst: Do 15.11.07 21:01
Hallo Fiete,
das Kalaha Programm kann man leider nicht herunterladen.
Andreas
Moderiert von Narses: Link entfernt
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: Fr 16.11.07 09:57
Moin Andreas,
ich habe die zip-Datei noch einmal hochgeladen, müßte jetzt klappen!
Gruß, Fiete
p.s. Narses hatte den Link entfernt
_________________ Fietes Gesetz: use your brain (THINK)
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Fr 16.11.07 10:11
Vielleicht findest Du hier, bzw in dem Code noch anregungen zur Spielstrategie. Es wurde der NegaMax-Algorithmus implementiert, dier vielleicht schneller ist, als der von Dir implementierte Minimax/Alpha-Beta-Algorithmus.
www.delphi-forum.de/...nspiel&start=100
_________________ Na denn, dann. Bis dann, denn.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 16.11.07 11:13
Moin!
Fiete hat folgendes geschrieben: | p.s. Narses hatte den Link entfernt |
Narses hatte die "Werbung" aus dem Posting entfernt, das hatte nix mit deinen Beiträgen/Anhängen zu tun.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Sinspin
      
Beiträge: 1335
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Fr 16.11.07 12:33
Rewersi : Mords geiler Fehler : Wenn mal der Computer nicht ziehen kann geht es nicht weiter. Es wird einem immer nur gesagt das man gerade nicht ziehen kann weil der computer zieht. -> der kann ja aber nicht!
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: Fr 16.11.07 14:43
Moin Stefan,
der Bug ist vernichtet!
Eine Anweisung fehlte
Jetzt müßte das Programm richtig arbeiten.
Gruß, Fiete
_________________ Fietes Gesetz: use your brain (THINK)
|
|
AndyH
Hält's aus hier
Beiträge: 4
Win NT 4.0, Win 2000, Win XP
Delphi 7
|
Verfasst: Fr 16.11.07 20:37
Hi Fiete,
habe gestern und heute mal dein Vier Gewinnt Prog. getestet. Von der Spielstärke her bin ich positiv überrascht. Endlich mal wieder ein VG Prog. das besser spielt als der Durchschnitt anderer Vier Gewinnt Programme. Mit den aller stärksten VG Programmen kann es jedoch noch nicht mithalten. Soweit ich das sehe, verwendet dein Prog. ja auch noch keine Hash Tabelle, kein Eröffnungsbuch usw. Die Spielstärke deines Progs entspricht in etwa der ersten lauffähigen Version meines eigenen VG Programmes Conny, das zu der Zeit auch noch keine Hashtabelle, kein Eröffnungsbuch usw. verwendet hatte. Mein Prog. Conny habe ich übrigens auch in Delphi entwickelt.
Ich habe dein Prog. jetzt auch auf meiner Hompage aufgelistet. In der Ratingliste unter brettspiele.sanher.de/4gewinnt_elo.htm findest du es jedoch noch nicht, da ich erst noch ein anderes Prog. testen möchte, bevor ich auch diese update. Dein Prog. habe ich bislang in 84 Partien gegen andere Programme getestet. Die Ratingzahl ist somit schon relativ genau, und liegt bereits im Bereich von etwa +/-30 ELO.
Auf meiner HP findest du auch jede Menge Gegner (= andere Programme) für deine Strategiespiel-Programme. Sobald ich Zeit habe, werde ich dort z.B. auch dein Reversi, Gobang und dein Kalaha Prog. auflisten.
Nochmal zu deinem VG Prog.: Das beinhaltet noch einen Bug. Es meldet auch dann Remis, wenn der Nachziehende mit seinem letzten Stein noch gewinnen kann. Versuch mal folgende Partie nachzuspielen, dann weisst du was ich meine:
43 44 44 33 33 75 54 53 55 51 17 11 22 22 22 66 77 66 66 77 11
Dein Prog. spielte in dieser Partie mit Level 10 als Anziehender.
Ansonsten enthält dein VG Prog. alle wichtigen Funktionen, wie z.B. Zugrücknahme. Was mich persönlich etwas nervt, sind die Abfragen, und OK-Meldefenster bei den boolschen Menü-Schalten wie z.B. Warnung, Zugbewertung und Sound.
Ob diese Funktionen aktiviert oder deaktiviert sind, sieht man doch im Menü anhand der Menüpunkt-Eigennschaft "checked".
Habe mir den Code an den Stellen deshalb z.B. wie folgt geändert.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Procedure TVG.ZugbewertungClick(Sender: TObject); Begin Anzeigen := not Anzeigen; if Anzeigen then begin VG.Width:=Ausgabe.Left+Ausgabe.Width+10; VG.Position:=poScreenCenter end else begin VG.Width:=Ausgabe.Left; VG.Position:=poScreenCenter; end; Ausgabe.Visible:=Anzeigen; Zugbewertung.Checked:=Anzeigen; End; |
Welchem Zweck die Eingabe eines Spielernamens dient habe ich auch noch nicht herausgefunden. Finde ich pers. auch etwas nervig.
Die zuletzt genannten Kritiken bitte nicht falsch verstehen, ist eben meine persönliche Meinung. Im grossen und ganzen finde ich dein Prog. aber sehr gut.
mfg
Andreas
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: Sa 17.11.07 13:34
Moin Andreas,
erst mal danke fürs testen.
Die Funktion Remis enthält den Bug.
Die neue Version:
Function TVG.Remis(B:TBewertung):Boolean;
Var K:Integer;
Begin
Remis:=True;
For K:=1 To 69 Do
If B[K].Wert<3 {hier stand Anzahl  } Then Begin Remis:=False;Exit End // Reihe ist reinrassig
End;
Ich wollte nur mit einer Bewertung für die Gewinnreihen arbeiten.
// 1-4 Computer ... 5-8 TSpieler
Const RWerte:Array[1..8]of Integer=(5,21,110,4000,6,32,135,6000);
Diese Werte sind mit Sicherheit nicht optimal.
Man könnte auch ein Programm schrieben, das gegen sich selbt spielt und die Bewertung automatisch ändert.
Sozusagen ein Evolutionsprogramm.
Mein Programm bewertet noch nicht die Höhe der Spielsteine. Da sollte ich wohl noch  reinstecken!
Das stärkste 4gewinnt-Programm ist wohl VELENA
www.ce.unipr.it/~gbe/velena.html
Entwickelt von Victor Allis, Matheprof aus Niederlande.
Die Abfragen, und OK-Meldefenster sind bei mir persönliche Note.
Es ist in Ordnung, wenn du das entfernst.
Der Spielername sollte eigentlich in einer Hiscore-Liste aufgenommen werden.
Hab ich noch nicht fertig.
Gruß, Fiete
_________________ Fietes Gesetz: use your brain (THINK)
|
|
AndyH
Hält's aus hier
Beiträge: 4
Win NT 4.0, Win 2000, Win XP
Delphi 7
|
Verfasst: Di 04.12.07 16:50
Hallo Fiete,
> Die Funktion Remis enthält den Bug.
Nach meinen Tests läuft dein Vier Gewinnt Programm jetzt prima. Hast du schon eine aktuelle Version hochgeladen?
Wenn du die Bewertung noch optimieren möchtest, schau dir mal folgenden Artikel von James D. Allen an:
james.fabpedigree.com/connect4.htm
Ups, der Artikel ist nicht mehr online. Er wird laut Webseite in 2008 als Buch erscheinen.
Empfehlenswert ist auch folgende Bachelor Arbeit von Hendrik Baier:
www.ke.informatik.tu...06/Baier_Hendrik.pdf
Eine Bewertungsfunktion nach Victor Allis dürfte etwas schwieriger sein:
www.connectfour.net/Files/connect4.pdf
Weitere Links zum Thema Programmierung von "2-Personen-Nullsummenspielen mit vollständiger Information" findest du auch auf meiner Webseite.
Dein Programm ist übrigens nach 120 Testpartien in meiner Ratingliste auf Platz 18 von 151 getesteten Vier Gewinnt Programmen. Also bereits sehr gut !!!, trotz deiner spartanischen Bewertungsfunktion  . Obwohl zu den Top 10 ist es jedoch noch ein riesiger Abstand. Zur Ratingliste siehe: brettspiele.sanher.de/4gewinnt.htm oder direkt: brettspiele.sanher.de/data/connect4.txt
> Das stärkste 4gewinnt-Programm ist wohl VELENA
> www.ce.unipr.it/~gbe/velena.html
> Entwickelt von Victor Allis, Matheprof aus Niederlande.
Ja und nein. Velena wurde von Giuliano Bertoletti entwickelt und zwar nach den Thesen von Victor Allis.
Nach meinen Tests spielt Velena sehr stark, aber als Nachziehender nicht so zwingend wie mein Programm Conny oder das Programm Vianiato. Von den derzeit frei erhältlichen Programmen ist Velena wohl das stärkste, da man Vianiato im Internet scheinbar nicht mehr herunterladen kann und mein Prog. derzeit noch privat ist. Ich möchte meinem Prog. demnächst noch eine neue GUI verpassen, bevor ich es öffentlich mache.
Gruß
Andreas
|
|
Fiete 
      
Beiträge: 617
Erhaltene Danke: 364
W7
Delphi 6 pro
|
Verfasst: Mi 05.12.07 20:07
Moin Andreas,
>Hast du schon eine aktuelle Version hochgeladen?
Ist erledigt!
An der Verbesserung arbeite ich noch, die Höhe der Steine wird noch mit eingearbeitet.
Danke für die Links, besonders die Bachelor Arbeit von Hendrik Baier.
Ich finde es toll, dass du eine Ratingliste erstellt hast.
Gruß
Fiete
_________________ Fietes Gesetz: use your brain (THINK)
|
|
|