Entwickler-Ecke
Open Source Projekte - Mühlespiel
Fiete - Mo 05.01.09 15:40
Titel: Mühlespiel
Frohes neues Jahr,
endlich bin ich fertig und ihr könnt testen.
Zu den Spielregeln und dem Spielfeld näheres hier:
http://de.wikipedia.org/wiki/M%C3%BChle_(Spiel)
Eine Mühle wird durch drei Steine auf einer Linie gebildet,
Jeder Spieler hat zu Beginn 9 Spielsteine, die abwechselnd auf jedes freie Feld gesetzt werden können. Wer eine Mühle schließt, muß einen gegnerischen Stein nehmen, jedoch nicht aus einer geschlossenen Mühle. Hat der Gegner nur geschlossene Mühlen kann also kein Stein weggenommen werden!
Die Position geschlagener Steine wird mit einem roten x, ein gesetzter Stein mit einem blauem Quadrat markiert.
Wenn jeder seine 9 Steine platziert hat, wird abwechselnd auf ein freies Nachbarfeld gezogen. (per drag&drop) Auch hier können durch Bilden von Mühlen gegnerische Steine geschlagen werden (s.o.).
Hat ein Spieler nur noch drei Steine, darf er seine Steine beliebig auf freie Felder setzen (springen).
Wer keinen Zug ausführen kann oder nur noch zwei Steine besitzt, hat das Spiel verloren.
Das Spiel endet spätestens nach 100 Zügen mit Remis oder der Spieler bricht das Spiel vorher ab.
Das Programm arbeitet NICHT mit einer Datenbank wie Mr. Data von Peter Stahlhacke, sondern nur mit Bewertungskriterien, die in Mühle.ini gespeichert sind.
Menue-Struktur:
Spiel
Stellung öffnen
Stellung speichern
Spielabbruch
Beenden
Es gibt 11 Level
Einstellungen
Mensch gegen Mensch
Computer beginnt
Mensch beginnt
Service
Zugrücknahme.....aktuellen Spielerzug zurücknehmen
Zugvorschlag..... Vorschlag für den Spieler, o.G.
Zugbewertung..... Blick ins Gehirn
Spielprotokoll... Spielzüge werden angezeigt
Sound............ Spielkram, Musik beim Starten, Beenden und Siegermittlung
Parameter........ hier kann der Spieler die Bewertung ändern, sie wird in Mühle2.ini gespeichert. Falls Mühle2.ini besser sein sollte als Mühle.ini muß der User selbst die Dateien umbenennen oder die Inhalte umkopieren.
Möglichkeiten zum Experimentieren in der Prozedur Computerzug:
Viel Spaß
Fiete
Moderiert von
Narses: Beitragsformatierung überarbeitet.
Edit1: Zeile 747 verbessert - 19 statt 18
jaenicke - Mo 05.01.09 16:04
Wenn ich das Programm noch beenden könnte außer über den Taskmanager wäre es schön...
Beim Beenden kommt nur diese Meldung, danach bleibt das Programm offen...
| Zitat: |
| In C:\Programme\Mühle\\Mühle2.ini kann nicht geschrieben werden. |
Abgesehen von den doppelten Backslashes hält es sich also nicht an die Systemstandards, funktioniert deshalb nicht, und ist also erstmal unbrauchbar. :nixweiss:
// EDIT:
Und die doppelten Backslashes kommen daher:
Delphi-Quelltext
1:
| ExtractFilePath(Application.ExeName)+'\Mühle.ini' |
ExtractFilePath fügt selbst einen an. ;-)
Xabitire - Mo 05.01.09 17:00
Hi, sehr anschaulich muss ich sagen! :zustimm:
Hab früher oft Mühle gespielt, aber so einen starken Gegner, wie deine KI hab ich bisher noch nicht getroffen. :D Die kennt ja alle Tricks! Zumindestens mal alle, die ich kenne! Aber dann hab ich ja wenigstens einen Grund zum üben :wink:
Was mich allerdings ein wenig stört sind die kleinen Felder zum Auswählen! Vor allem, beim Schlagen treff ich meistens nicht direkt beim ersten mal, weil ja noch die Steine drüber liegen! Und dann jedes mal die Showmessage wegzuklicken, ist ein bisschen nerftötend!
Muss mir mal bei Gelegenheit noch den Source angucken! Vor allem den Teil mit der KI :wink:
MFG Blackbird8690
Fiete - Di 06.01.09 10:59
Danke ihr Tüftler,
@jaenicke: den Fehler kann ich nicht reproduzieren(Delphi6 pro mit XP), hab den Backslash erstmal entfernt :?
@blackbird8690: die Clickfelder hab ich jetzt vergrößert, Prozedur SpielFeldAusgabeMouseDown, der Wert 20 muß durch einen anderen ersetzt werden
Hochladen werde ich die neueste Version aber erst nach weiterer Überarbeitung.
Bis dahin weiter viel Spaß
Fiete
Delete - Di 06.01.09 12:11
Hallo,
super gelungen... bin gespannt, wie das update aussieht...
viele grüße
klabri - Di 06.01.09 12:56
Hallo,
und wann kommt das Update?
jaenicke - Di 06.01.09 14:11
Fiete hat folgendes geschrieben : |
| @jaenicke: den Fehler kann ich nicht reproduzieren(Delphi6 pro mit XP), hab den Backslash erstmal entfernt :? |
Der Fehler liegt nicht am Backslash, das funktioniert anscheinend auch mit doppelten, aber ob das immer geht weiß ich nicht, deshalb hab ich es erwähnt. Das Problem sind die fehlenden Rechte. Leg das Programm einfach unter c:\programme und erstelle ein neues eingeschränktes Konto.
Mit dem Konto wird dir das gleiche passieren. Es wird nicht funktionieren.
Funktionieren tut das nur als Admin. Und damit unter Vista bei jedem neu installierten System schon nicht mehr. Bei XP funktioniert es ja, solange man sein System nicht richtig einrichtet und nicht mehr als Admin arbeitet. (Bei Mehrbenutzerbetrieb funktioniert es sowieso nicht, außer beim Admin.)
Das habe ich hier auch nochmal erklärt, an einer einfachen Lösung ohne dass man sich viel drum kümmern muss arbeite ich gerade. (Das wird dann in dem Beitrag verlinkte Beitrag, aber der ist noch in Arbeit.)
http://www.delphi-library.de/viewtopic.php?p=541636#541636
Fiete - Sa 10.01.09 10:38
Moin blackbird8690
die Felder sind jetzt größer, die nervtötenden Meldungen habe ich durch Beep ersetzt und Backslash rausgenommen, war syntaktisch nicht ok.
Die Änderungen sind hochgeladen.
Gruß
Fiete
mimi - Sa 14.02.09 19:14
Läuft sogar unter wine *G*. Ist nicht schlecht. Nur gab es anscheint ein unentschieden *G*. Der Computer hat das Spiel beendet als er nur noch drei hatte und nur noch von einer Mühle zu nächsten Spingen konnte bei mir *G*
AndyH - Mi 11.03.09 20:18
Hallo,
tolles Programm, hab aber gerade einen Fehler entdeckt. In folgender Partie hat der Computer mit Level 6 begonnen.
1 ) S: B6
2 ) W: D6
3 ) S: F4
4 ) W: D2
5 ) S: B4
6 ) W: B2
7 ) S: F2
8 ) W: F6
9 ) S: D7
10 ) W: E4
11 ) S: C5
12 ) W: D3
13 ) S: D1
14 ) W: E3
15 ) S: C3
16 ) W: E5 x C5
17 ) S: D5
gewonnen hat der PC!
Hier sagt das Programm "gewonnen hat der PC!" obwohl ich noch einen Stein setzen darf.
Andreas
Fiete - Do 12.03.09 10:42
Moin Andreas,
danke für den Tip.
In Zeile 747 steckt der Fehler: es muß heißen
Delphi-Quelltext
1:
| if ZugNummer<19 then exit; |
vorher stand hier eine 18 :autsch:
Die neuen Versionen lade ich noch hoch.
Gruß
Fiete
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!