15 Puzzle Programmierung
15 Puzzle Programmierung
Hallo,
ich suche eine Version von 15 Puzzle in Lazarus (muss nicht eine zu komplizierte Variante sein). Ihr kennt das Spiel sicher. Vielleicht kann mir jemand helfen oder hat so eine Programmierung zur Hand.
Ihr würdet mir sehr helfen.
Gruß, mainze
ich suche eine Version von 15 Puzzle in Lazarus (muss nicht eine zu komplizierte Variante sein). Ihr kennt das Spiel sicher. Vielleicht kann mir jemand helfen oder hat so eine Programmierung zur Hand.
Ihr würdet mir sehr helfen.
Gruß, mainze
Re: 15 Puzzle Programmierung
Schreibt mir bitte für Zuarbeiten eine private Nachricht.
Gruß, mainze
Gruß, mainze
Re: 15 Puzzle Programmierung
Eine PN, damit der Lehrer nichts mitkriegt?
Und wovon träumst du nachts?
Und wovon träumst du nachts?

-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: 15 Puzzle Programmierung
Von dem 16en Feld das fehlt.Und wovon träumst du nachts?

Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Niesi
- Lazarusforum e. V.
- Beiträge: 580
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.9 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: 15 Puzzle Programmierung
Als Tipp: Du wirst nie was wirklich lernen, wenn Du Dir alles machen lässt - und Suchmaschinen können nützlich sein ...mainze hat geschrieben: So 18. Feb 2024, 13:25 Hallo,
ich suche eine Version von 15 Puzzle in Lazarus (muss nicht eine zu komplizierte Variante sein). Ihr kennt das Spiel sicher. Vielleicht kann mir jemand helfen oder hat so eine Programmierung zur Hand.
Ihr würdet mir sehr helfen.
Gruß, mainze
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: 15 Puzzle Programmierung
Ein bisschen suchen und man wird fündig.und Suchmaschinen können nützlich sein ...
https://wiki.lazarus.freepascal.org/15-puzzle
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Niesi
- Lazarusforum e. V.
- Beiträge: 580
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.9 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: 15 Puzzle Programmierung
Ich wollt's nicht soooo einfach machen ..Mathias hat geschrieben: Mo 19. Feb 2024, 19:09Ein bisschen suchen und man wird fündig.und Suchmaschinen können nützlich sein ...
https://wiki.lazarus.freepascal.org/15-puzzle

Manche können nicht mal suchen. War schon immer so ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
- KodeZwerg
- Beiträge: 110
- Registriert: Mo 6. Feb 2023, 11:04
- OS, Lazarus, FPC: Win64, Lazarus 64 [trunk], FPC win64-win32 [stable]
- CPU-Target: x86_64
Re: 15 Puzzle Programmierung
Von der Sache her finde ich dieses Puzzle spiel ist ein gutes Einsteigerprojekt um den Umgang mit der Programmiersprache zu erlernen.
Ich selbst würde gegenüber dem Wiki Beispiel, was auch sehr einfach ist, ein Bild malen und dem ein Click-Event spendieren.
Per Point kann man auslesen in welchen Bereich man geklickt hat, jetzt nur noch ein 2D array damit assoziieren und schon ist die Logik fertig
Ich selbst würde gegenüber dem Wiki Beispiel, was auch sehr einfach ist, ein Bild malen und dem ein Click-Event spendieren.
Per Point kann man auslesen in welchen Bereich man geklickt hat, jetzt nur noch ein 2D array damit assoziieren und schon ist die Logik fertig

Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: 15 Puzzle Programmierung
Was man auch noch machen könnte, das die Buttons/Images Pixelweise rutschen. Die Möglichkeiten sind fast Endlos.Von der Sache her finde ich dieses Puzzle spiel ist ein gutes Einsteigerprojekt um den Umgang mit der Programmiersprache zu erlernen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Niesi
- Lazarusforum e. V.
- Beiträge: 580
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.9 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: 15 Puzzle Programmierung
Stimmt - allerdings ist dazu Lust am Programmieren und Lernen vonnöten.Mathias hat geschrieben: Di 20. Feb 2024, 15:34Was man auch noch machen könnte, das die Buttons/Images Pixelweise rutschen. Die Möglichkeiten sind fast Endlos.Von der Sache her finde ich dieses Puzzle spiel ist ein gutes Einsteigerprojekt um den Umgang mit der Programmiersprache zu erlernen.
Hier wollte doch nur wer seine Hausaufgaben gemacht bekommen ...

Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
- Beiträge: 47
- Registriert: Fr 21. Feb 2020, 19:17
- OS, Lazarus, FPC: Win10/64
- CPU-Target: 64 Bit
- Wohnort: Osterholz-Scharmbeck
Re: 15 Puzzle Programmierung
Vielleicht ging es aber auch um die Ausbildung zur Führungskraft,Hier wollte doch nur wer seine Hausaufgaben gemacht bekommen ...
da geht es nicht um selber wissen oder selber verstehen,
da geht es darum es von anderen machen zu lassen.
-
- Lazarusforum e. V.
- Beiträge: 280
- Registriert: Sa 26. Mai 2012, 17:31
- OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
- CPU-Target: 64Bit
Re: 15 Puzzle Programmierung
icho2099 hat geschrieben: Do 22. Feb 2024, 09:59 Vielleicht ging es aber auch um die Ausbildung zur Führungskraft,
...
da geht es darum es von anderen machen zu lassen.
YMMD
just my two Beer
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: 15 Puzzle Programmierung
Dann vermitteln wir an dieser Stelle gleich mal den ersten Grundsatz: "Wenn man es nicht selber kann und es dringend braucht, dann muss man ordentlich zahlen."icho2099 hat geschrieben: Do 22. Feb 2024, 09:59 Vielleicht ging es aber auch um die Ausbildung zur Führungskraft,
da geht es nicht um selber wissen oder selber verstehen,
da geht es darum es von anderen machen zu lassen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 214
- Registriert: Mo 3. Jan 2011, 13:34
- OS, Lazarus, FPC: Win11 (L 3.0 FPC 3.2.2)
- CPU-Target: 64Bit
- Wohnort: Nürnberg
Re: 15 Puzzle Programmierung
Immerhin liefert ChatGPT folgende Lösung für die Aufgabenstellung "program a 15-puzzle in Lazarus"
Certainly! The 15-puzzle is a classic sliding puzzle that involves arranging 15 numbered tiles in a 4x4 grid with one empty space.
Here is a simple console-based implementation in Lazarus (Free Pascal):
This program initializes the 15-puzzle, shuffles it, and allows the user to solve it by making moves using the WASD keys (W - Up, A - Left, S - Down, D - Right). The game continues until the user enters 'Q' to quit or successfully solves the puzzle.
Ob die Lösung von ChatGPT kompilierbar ist und die Fragestellung des "Lehrers" beantwortet, überlasse ich dem ursprünglichen Fragesteller.
Schon der Versuch, die ChatGPT-Lösung zu verstehen, würde den Fragesteller ein Level nach oben katapultieren auf seinem Weg zum Programmierer-Olymp.
Und damit man mich nicht falsch versteht: Ich halte nichts von ChatGPT-Lösungen, weil sie in den meisten Fällen nicht kompilierbar sind oder schlichtweg "gelogen" sind.
Ich halte auch nichts davon, wenn Schüler nach Lösungen für Ihre Informatik-Unterricht Hausaufgaben dieses Forum befragen, ohne vorher ihre eigenen Programmierversuche zu offenbaren.
Aber ChatGPT heutzutage ersetzt das google von gestern. Da muss man halt damit klar kommen.
Als Lehrer würde ich mir vom Schüler seine Lösung erklären lassen und dabei sehr schnell merken, ob die Lösung vom Schüler verstanden wurde, oder nur ein Nachplappern einer ChatGPT-Lösung ist.
Certainly! The 15-puzzle is a classic sliding puzzle that involves arranging 15 numbered tiles in a 4x4 grid with one empty space.
Here is a simple console-based implementation in Lazarus (Free Pascal):
Code: Alles auswählen
program FifteenPuzzle;
{$mode objfpc}{$H+}
uses
SysUtils, Crt;
const
Size = 4;
type
TGameBoard = array[1..Size, 1..Size] of Integer;
var
Board: TGameBoard;
procedure InitializeBoard;
var
i, j, k: Integer;
begin
k := 1;
for i := 1 to Size do
for j := 1 to Size do
begin
if k < Size * Size then
Board[i, j] := k
else
Board[i, j] := 0; // Empty space
Inc(k);
end;
end;
procedure DisplayBoard;
var
i, j: Integer;
begin
WriteLn('---------------------');
for i := 1 to Size do
begin
for j := 1 to Size do
begin
if Board[i, j] = 0 then
Write('| ')
else
WriteFormat('| %2d ', [Board[i, j]]);
end;
WriteLn('|');
WriteLn('---------------------');
end;
end;
procedure ShuffleBoard;
var
i, j, k, randI, randJ: Integer;
begin
Randomize;
for k := 1 to 1000 do // Shuffle 1000 times
begin
repeat
randI := Random(Size) + 1;
randJ := Random(Size) + 1;
until Board[randI, randJ] <> 0;
// Swap the empty space with a random neighboring tile
if (randI > 1) and (Board[randI - 1, randJ] = 0) then
begin
Board[randI - 1, randJ] := Board[randI, randJ];
Board[randI, randJ] := 0;
end
else if (randI < Size) and (Board[randI + 1, randJ] = 0) then
begin
Board[randI + 1, randJ] := Board[randI, randJ];
Board[randI, randJ] := 0;
end
else if (randJ > 1) and (Board[randI, randJ - 1] = 0) then
begin
Board[randI, randJ - 1] := Board[randI, randJ];
Board[randI, randJ] := 0;
end
else if (randJ < Size) and (Board[randI, randJ + 1] = 0) then
begin
Board[randI, randJ + 1] := Board[randI, randJ];
Board[randI, randJ] := 0;
end;
end;
end;
procedure PlayGame;
var
move: Char;
emptyI, emptyJ: Integer;
begin
repeat
ClrScr;
DisplayBoard;
WriteLn('Use WASD to move tiles, Q to quit.');
Write('Your move: ');
move := UpCase(ReadKey);
emptyI := 0;
emptyJ := 0;
// Find the empty space coordinates
for emptyI := 1 to Size do
for emptyJ := 1 to Size do
if Board[emptyI, emptyJ] = 0 then
break;
// Move tile based on user input
case move of
'W': if emptyI < Size then
begin
Board[emptyI, emptyJ] := Board[emptyI + 1, emptyJ];
Board[emptyI + 1, emptyJ] := 0;
end;
'S': if emptyI > 1 then
begin
Board[emptyI, emptyJ] := Board[emptyI - 1, emptyJ];
Board[emptyI - 1, emptyJ] := 0;
end;
'A': if emptyJ < Size then
begin
Board[emptyI, emptyJ] := Board[emptyI, emptyJ + 1];
Board[emptyI, emptyJ + 1] := 0;
end;
'D': if emptyJ > 1 then
begin
Board[emptyI, emptyJ] := Board[emptyI, emptyJ - 1];
Board[emptyI, emptyJ - 1] := 0;
end;
end;
until (move = 'Q') or CheckWinCondition;
end;
function CheckWinCondition: Boolean;
var
i, j, k: Integer;
begin
k := 1;
for i := 1 to Size do
for j := 1 to Size do
begin
if k < Size * Size then
begin
if Board[i, j] <> k then
Exit(False);
end
else if Board[i, j] <> 0 then
Exit(False);
Inc(k);
end;
DisplayBoard;
WriteLn('Congratulations! You solved the puzzle!');
Result := True;
end;
begin
InitializeBoard;
ShuffleBoard;
PlayGame;
end.
Ob die Lösung von ChatGPT kompilierbar ist und die Fragestellung des "Lehrers" beantwortet, überlasse ich dem ursprünglichen Fragesteller.
Schon der Versuch, die ChatGPT-Lösung zu verstehen, würde den Fragesteller ein Level nach oben katapultieren auf seinem Weg zum Programmierer-Olymp.
Und damit man mich nicht falsch versteht: Ich halte nichts von ChatGPT-Lösungen, weil sie in den meisten Fällen nicht kompilierbar sind oder schlichtweg "gelogen" sind.
Ich halte auch nichts davon, wenn Schüler nach Lösungen für Ihre Informatik-Unterricht Hausaufgaben dieses Forum befragen, ohne vorher ihre eigenen Programmierversuche zu offenbaren.
Aber ChatGPT heutzutage ersetzt das google von gestern. Da muss man halt damit klar kommen.
Als Lehrer würde ich mir vom Schüler seine Lösung erklären lassen und dabei sehr schnell merken, ob die Lösung vom Schüler verstanden wurde, oder nur ein Nachplappern einer ChatGPT-Lösung ist.
- Niesi
- Lazarusforum e. V.
- Beiträge: 580
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.9 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: 15 Puzzle Programmierung
Bislang habe ich an die 12 Versuche unternommen, von einer AI was programmiert zu bekommen. Manche Sachen waren durchaus einfach. Es ist aber noch nie was sinnvolles dabei herausgekommen.
Ich habe die Dinger NICHT korrigiert, nicht weiter nachgefragt und keinerlei Rückmeldung gegeben - das wäre dann ja Training für die AI. Das möchte ich dann sehr gut bezahlt bekommen.
AI wird absolut überschätzt, und ich glaube, wer von einer AI etwas programmiertes geliefert bekommt, was selbst nicht deutlich besser hinzubekommen wäre, sollte das Programmieren sein lassen ...
Ich habe die Dinger NICHT korrigiert, nicht weiter nachgefragt und keinerlei Rückmeldung gegeben - das wäre dann ja Training für die AI. Das möchte ich dann sehr gut bezahlt bekommen.
AI wird absolut überschätzt, und ich glaube, wer von einer AI etwas programmiertes geliefert bekommt, was selbst nicht deutlich besser hinzubekommen wäre, sollte das Programmieren sein lassen ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...