AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Minesweeper

Ein Thema von Bob7 · begonnen am 16. Mär 2023 · letzter Beitrag vom 18. Mär 2023
 
Incocnito

Registriert seit: 28. Nov 2016
230 Beiträge
 
#5

AW: Delphi Minesweeper

  Alt 17. Mär 2023, 16:29
Hi Bob,

ich glaube du musst dein Problem noch etwas genauer beschreiben.
Je nachdem, was ich in FormCreate für eine Anzahl eingebe, das Feld wird korrekt erweitert.

Mir ist noch aufgefallen, dass es auch weniger Minen sein können, als gewünscht,
da du nicht prüfst, ob eine zu setzende Mine auf ein Feld legst auf dem schon eine Miene liegt.

Hinweis hierzu: Das ist zwar nur ein Spiel, aber um sicher zu gehen, dass er nur einen Durchlauf braucht,
um die Minen zu setzen, könntest du das Array als Liste sehen und dann die Minen absteigend platzieren.

Zur Veranschaulichung, soll das dein Spielfeld sein:
a b c
d e f
g h i
Erste Zufallszahl Random(9){+1} = 3
also nimmst du das dritte Feld und platzierst eine Mine
a b X
d e f
g h i
Zweite Zufallszahl Random(8){+1} = 6
also nimmst du das sechste freie Feld
1=a 2=b 3=d 4=e 5=f 6=g
a b X
d e f
X h i
Dritte Mine Random(7){+1} = 6
1=a ... c und g ja auslassen ... 6=h
a b X
d e f
X X i

So könntest du 3 Minen platzieren, ohne Gefahr zu laufen, dass ein Feld mehrfach belegt wird und gleichzeitig
verhinderst du eine theoretische Endlosschleife, falls der Zufallsgenerator nie die freien Felder trifft.

Als zweites nehme mal in CreateMinesAndCounts

A:=random(Gamesize) + 1;
B:=random(Gamesize) + 1;

und schmeiß die beiden "if(A=0) then A=1" und "if(B=0) then B=1"
raus. Denn so waren
- Nie die letzte Zeile und Spalte besetzen
- Die ersten Zeilen und Spalten waren doppelt so oft besetzt

Ansonsten läuft es schon recht gut. ��

Liebe Grüße
Incocnito

Geändert von Incocnito (17. Mär 2023 um 16:31 Uhr)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz