Erstellen eines Minesweeper-Spiels

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
RBen
Beiträge: 1
Registriert: Do 4. Mär 2021, 14:04

Erstellen eines Minesweeper-Spiels

Beitrag von RBen »

Guten Tag liebe Member des Forums,

ich habe geplant ein „Minesweeper“-Programm in Lazarus (Pascal) zu erstellen. Allerdings sind meine Kenntnisse in Lazarus sehr beschränkt und es scheitert schon bei der Erstellung der Oberfläche des Programms.
Bomben sollen hierbei das Spiel beenden und um eine Zufällig generierte Bombe müssen –wie beim richtigem Spiel- Zahlen erstellt werden, welche die Anzahl der umliegenden Bomben wiederspiegelt. Ich habe sozusagen das Konzept bereit, doch kann es nicht in Lazarus umsetzen.

Meine Vorstellung:
 15*15 Feld
 20% Bomben
 Start Knopf
 „Loosing“-Screen
 (Anpassung der schwierigkeit)

Ich wäre euch sehr Dankbar, wenn ihr mir –vorallem beim Anfang helfen könntet.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Erstellen eines Minesweeper-Spiels

Beitrag von six1 »

Hu... also wenn du nur die Vorstellung hast, ein Spiel zu programmieren und gar keine Idee, wie du das Spielfeld erstellen kannst, wird es irgendwie hart werden.
Hört sich irgendwie nach Ausbildungsaufgbe an 8)

So würde ich es angehen:

Struktur für das Spielfeld erstellen.
Es gibt Eigenschaften für das Spielfeld als Ganzes und Eigenschaften der einzelnen Felder, die alle gleich sind.

Also zuerst die Eigenschaften eines Feldes:

Code: Alles auswählen

  Type TFeld = Record
	Panel:TPanel;
	Picture:TImage;
	Caption:TLabel;
   end;
Dann benötigst du das Spielfeld;

Code: Alles auswählen

  Type TSpielFeld = Record
	Fields:array of array of TFeld;
	SizeFields:integer; // width and height
	space:integer;  // Abstand der Felder zueinander
	CountX:integer;
	CountY:integer;
   end;
Dann erzeugst du eine Variable für das Spielfeld

Code: Alles auswählen

.....
private
  Spielfeld:TSpielFeld ;
public

end;
Nach dem Start legst du z.B. im OnCreate der Form ein paar Variablen fest mit der Größe der Felder usw.
Dies kannst du auch aus der Form Size berechnen.
Jetzt kannst du mit den Vorgaben das Spielfeld erzeugen...

Code: Alles auswählen

  Spielfeld.SizeFields:=60;
  Spielfeld.Space:=2;
  Spielfeld.CountX:=15;
  Spielfeld.CountY:=15;
  setlength(Spielfeld.Fields, Spielfeld.CountY);
  for y := 0 to  Spielfeld.CountY-1 do
  begin
    setlength(Spielfeld.Fields[y], Spielfeld.CountX);
    for x := 0 to  Spielfeld.CountX-1 do
    begin
         Spielfeld.Fields[y][x].Panel:=TPanel.create(nil);
         Spielfeld.Fields[y][x].Panel.Parent:=Form1;
         Spielfeld.Fields[y][x].width:=Spielfeld.SizeFields;
         Spielfeld.Fields[y][x].height:=Spielfeld.SizeFields;
         ...usw.
    end;
  end; 
...obiges ist Freihand gepinselt und soll als Anstoß dienen :mrgreen:
Gruß, Michael

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Erstellen eines Minesweeper-Spiels

Beitrag von Winni »

Hi!

Was Six1 anbietet ist ja die "Turbo-Pascal-Schule für Fortgeschrittene". Oder so.

Ich werf mal in die Runde:

Ein DrawGrid nehmen, das erspart viel Arbeit.

Allerdings ist der Code von Six1 eine gute Anfängerschulung.
Kommt drauf an, was der Fragende so kann.

Winni

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Erstellen eines Minesweeper-Spiels

Beitrag von six1 »

:lol: also ich bin fertig Ben, wie siehts aus?
Es sind nur260 Zeilen Code bis end.

Zeig mal ein bisschen von dem, was du bis jetzt hast...
Gruß, Michael

nevermore2k
Beiträge: 81
Registriert: Sa 1. Mai 2021, 15:39

Re: Erstellen eines Minesweeper-Spiels

Beitrag von nevermore2k »

six1 :) würde gerne mal das Minesweeper Projekt von dir sehen.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Erstellen eines Minesweeper-Spiels

Beitrag von six1 »

Anbei das Projekt

MinesSweeper.zip
(1.9 MiB) 139-mal heruntergeladen
Gruß, Michael

nevermore2k
Beiträge: 81
Registriert: Sa 1. Mai 2021, 15:39

Re: Erstellen eines Minesweeper-Spiels

Beitrag von nevermore2k »

danke

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Erstellen eines Minesweeper-Spiels

Beitrag von siro »

Schick gemacht.

Deine .exe wird bei mir vom Windows Defender als schwerwiegender Virus ausgegeben.
virus_defender.jpg
virus_defender.jpg (13.45 KiB) 2225 mal betrachtet
Wenn ich neu compiliere und meine exe benutze, kein Problem.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Erstellen eines Minesweeper-Spiels

Beitrag von sstvmaster »

Bei mir das gleiche.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Erstellen eines Minesweeper-Spiels

Beitrag von six1 »

Habe meine Exe mit UPX gepackt...
Da ist kein Virus drin...
Gruß, Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Erstellen eines Minesweeper-Spiels

Beitrag von af0815 »

Dann schmeisst die Exe raus. Der Source reicht doch.

Sehr viele Virenscanner gehen auf FPC kompilierte Dateien los, da sie gewissen Mustern entsprechen. Alles was nicht von bestimmten Compileren erzeugt wird ist einmal verdächtig. Manchmal reichen Debuginfos aus um positive false zu werden. Ganz arg ist es, falls du auch noch Strip drüber laufen lässt :-) Zumindest eine Zeitlang wurde das automatisch als Virulent qualifiziert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Roland Chastain
Beiträge: 156
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: Erstellen eines Minesweeper-Spiels

Beitrag von Roland Chastain »

Hallo ! Hier ist (falls jemand interessiert ist) ein Minesweeper, den ich vor ein paar Jahren gemacht habe. Es ist ein Windows-Programm.
Dateianhänge
demineur-windows.zip
(6.77 KiB) 106-mal heruntergeladen
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Antworten