Entwickler-Ecke
Open Source Projekte - baue eine Brücke, ein Logikspiel
Fiete - Mi 11.08.10 15:50
Titel: baue eine Brücke, ein Logikspiel
Moin,
gespielt wird auf einem 11*11-Feld, in dem jeder 30 Brückenpfeiler besitzt.
Die Spieler verbinden abwechselnd ihre Brückenpfeiler(waagerecht bzw. senkrecht).
Brücken können sich nicht kreuzen.
Der Mensch muß von einem Brückenpfeiler auf der linken Seite eine Brücke zu einem Brückenpfeiler auf der rechten Seite bauen oder umgekehrt.
Der Computer muß von einem Brückenpfeiler auf dem unteren Rand eine Brücke zu einem Brückenpfeiler auf dem oberen Rand bauen oder umgekehrt.
Wer es als erster geschafft hat, der ist
S i e g e r !!!
Viel Spaß!!!
Edit1: Die Fenstergröße ist über <Ansicht> wählbar.
Xions Hinweis habe ich realisiert. Stufe:=1; ist jetzt in Formcreate verschoben.
Die Änderungen liegen jetzt vor.
Xion - Fr 13.08.10 14:09
Cooles Spiel erstmal. Ab "Könner" ist die KI auch ganz gut. Nur ist sie irgendwie anfällig bei vertikalen Verbindungen. (KI ist "Genie")
Fiete - Do 19.08.10 18:29
Moin Xion,
est mal danke für Deine Mühe.
Den "Fehler" konnte ich auf Level 5, PC beginnt, nicht reproduzieren.
Im 3. Zug setzt das Programm auf (6|4) , nicht auf (10|4):?:
Die KI ist so programmiert, daß der PC immer gewinnt wenn er auf Stufe 5 beginnt!
Die KI sieht so aus
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| If Random(100)<20*Stufe Then Begin Strategiezug(ACol,ARow,X,Y); If Not Erlaubt(X,Y) Then Zufallszug(ACol,ARow,X,Y); End Else Zufallszug(ACol,ARow,X,Y); |
Gruß
Fiete
Xion - Do 19.08.10 19:44
Kann es sein dass du beim Klick auf neues Spiel die Stufe nicht korrekt setzt?
Edit:
Hihi, ich weiß warum :D Eigentlich ganz einfach wenn mans erstmal weiß.
Delphi-Quelltext
1:
| procedure TBridge.LevelClick(Sender: TObject); |
Dort ist logischerweise der Schweinehund (da ja nur dort Stufe gesetzt wird).
Problem:
Du überprüfst dabei den Sender, setzt aber Inital Stufe auf 1 (warum eigentlich?) Gleichzeitig hast du dem "Level"-Knopf im MainMenu auch das Event zugewiesen, welches natürlich dann nicht in der Sender-If-Struktur ist. Also wird Stufe auf 1 gesetzt, wenn ich nur die ausgewählte Stufe angucke ;)
FinnO - Fr 20.08.10 13:46
Also Wenn man als Spieler anfängt, ist das Genie sehr einfach zu schlagen. Andersherum hab ich da allerdings immer versagt. Alle Anderen Stufen gewinnt man auf Anhieb.
Aber sehr spannendes spiel. Erinnert mich an die vorletzte Software-Challenge ;)
Hidden - Fr 20.08.10 13:57
Hi -
Ein schönes Spiel, nur ein bisschen klein.
Ich persönlich möchte als User eigentlich immer die Fenstergröße bestimmen dürfen, ließe sich das einrichten, und die Spielfläche dann entsprechend skalieren? :lupe: (Auf Bitmap zwischenzeichnen, dann per StretchDraw() auf Paintbox/etc).
lg,
Fiete - So 22.08.10 10:37
Moin Hidden,
die gewünschten Änderungen liegen vor.
Gruß
Fiete
Hidden - So 22.08.10 11:49
Danke :)
Horst-Dieter - Do 21.10.10 09:09
Ich habe mir erlaubt, Deine Spielidee zu verwenden und das Programm in der Oberfläche (Verwendung von TImage an Stelle von TDrawGrid) zu verändern. Es wird meines Erachtens dadurch übersichtlicher. Außerdem ist die Spielfeldgröße veränderbar und die Züge werden protokolliert und können rückgängig gemacht werden. Sieh es Dir doch einmal an (Thema: Brücken).
Xearox - Do 21.10.10 15:02
hab einen Bug gefunden.
Stufe Genie.
CPU Fängt an.
1-2-3-4-5-6-7-8-9-0-11
---------------------|
0-x-0-x-0-x-0-x-0-x-A|1
x-0-x-0-x-0-x-0-x-0-A|2
0-x-0-x-0-x-0-x-0-x-A|3
x-0-x-0-x-0-x-0-x-0-A|4
0-x-0-x-0-x-0-x-0-x-A|5
x-0-x-0-x-0-x-0-x-0-A|6
0-x-0-x-0-x-0-x-0-x-A|7
x-0-x-0-x-0-x-0-x-0-A|8
0-x-0-x-0-x-0-x-0-x-A|9
x-0-x-0-x-0-x-0-x-0-A|0
C-C-C-C-C-C-C-C-T-C-F|11
so, baut man da hin, wo die "A"s sind seine Felder auf, und wenn die CPU das Feld T erreicht, baut man das der CPU in den Weg, also das Feld F, und baut seine Felder weiter nach unten.
Sobald die Reihe voll ist, gewinnt keiner, obwohl eine korrekte linie Gebaut wurde.
Edit: Theoretisch würde der Spieler gewinnen. Du hast ja weiter oben geschrieben, das bei Genie, die CPU immer gewinnt.
Kann ja sein, das da was Falsch ist, irgendeine Abfrage oder so, bzw. überprüfst du bei Genie überhaupt, ob der Spieler eine Reihe voll hat?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!