Vier-in-einer-Reihe

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Vier-in-einer-Reihe

Beitrag von wennerer »

Hallo Mathias,
du musst mit 32bit kompilieren dann ist der Fehler weg.
Build instructions

You have to build the engine, which is a C program, and the GUI, which is a Lazarus project.

To build the engine, open a terminal in engine folder and type the following command:

gcc -m32 -c *.c
gcc -m32 *.o -o ../connect4

The engine must be compiled to 32-bit application, otherwise it doesn't work well. This is the reason for the -m32 option.

To build the GUI, open with Lazarus the c4.lpi project in ui folder.

Both applications, connect4[.exe] and c4[.exe], must be in the same directory, with lang.cfg (a language file) and white_ob.cn4 (the opening book for the engine).
Viele Grüße
Bernd

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

Re: Vier-in-einer-Reihe

Beitrag von Roland Chastain »

Mathias hat geschrieben:
Do 27. Aug 2020, 16:19
Wollte dein Programm testen aber es kommt ein SIGSEGV.

Dann springt er hier hin:

Code: Alles auswählen

  until g[x, y] = CBorder;        
Danke. Ich werde versuchen zu verstehen, was los ist.
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

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

Re: Vier-in-einer-Reihe

Beitrag von Roland Chastain »

wennerer hat geschrieben:
Do 27. Aug 2020, 17:25
du musst mit 32bit kompilieren dann ist der Fehler weg.
Ich bin nicht sicher, ob dies die Ursache für diesen Fehler ist.
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Vier-in-einer-Reihe

Beitrag von wennerer »

Hallo Roland,
ich finde ihr Programm vier-in-einer-Reihe sehr gelungen. 1+.
Auf eine kleine Sache möchte ich noch hinweisen. Im Menü werden bei mir die Textfarben weiß auf weißen Hintergrund wenn ich mit der Maus drüber fahre.
Bildschirmfoto.png
Bildschirmfoto.png (18.91 KiB) 3605 mal betrachtet
Viele Grüße
Bernd

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

Re: Vier-in-einer-Reihe

Beitrag von Roland Chastain »

wennerer hat geschrieben:
Do 27. Aug 2020, 18:04
ich finde ihr Programm vier-in-einer-Reihe sehr gelungen. 1+.
Danke!
wennerer hat geschrieben:
Do 27. Aug 2020, 18:04
Auf eine kleine Sache möchte ich noch hinweisen. Im Menü werden bei mir die Textfarben weiß auf weißen Hintergrund wenn ich mit der Maus drüber fahre.
Ich weiß nicht was ich sagen soll. Es ist ein normales Menü. Ich habe nichts Besonderes gemacht. :?
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Vier-in-einer-Reihe

Beitrag von Mathias »

In der Arduino ide hatte ich das Menüproblem auch mal.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Vier-in-einer-Reihe

Beitrag von Mathias »

wennerer hat geschrieben:
Do 27. Aug 2020, 17:25
Hallo Mathias,
du musst mit 32bit kompilieren dann ist der Fehler weg.
Build instructions

You have to build the engine, which is a C program, and the GUI, which is a Lazarus project.

To build the engine, open a terminal in engine folder and type the following command:

gcc -m32 -c *.c
gcc -m32 *.o -o ../connect4

The engine must be compiled to 32-bit application, otherwise it doesn't work well. This is the reason for the -m32 option.

To build the GUI, open with Lazarus the c4.lpi project in ui folder.

Both applications, connect4[.exe] and c4[.exe], must be in the same directory, with lang.cfg (a language file) and white_ob.cn4 (the opening book for the engine).
Viele Grüße
Bernd
Wäre irgendwie komisch, so ein einfaches Programm müsste doch aufvalken Plattformen laufen.
Ich meine damit nicht das auswerten von Zügen. Sondern die gui.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Vier-in-einer-Reihe

Beitrag von Roland Chastain »

Mathias hat geschrieben:
Do 27. Aug 2020, 16:19
Wollte dein Programm testen aber es kommt ein SIGSEGV.

Dann springt er hier hin:

Code: Alles auswählen

  until g[x, y] = CBorder;        
Ich habe ein paar kleine Änderungen vorgenommen. Wenn Sie die Zeit (und den Wunsch) haben, können Sie es noch einmal versuchen (und möglicherweise den Inhalt der Datei c4.log anzeigen)?

https://github.com/rchastain/velena

Oder könnten Sie zuerst dieses kleine Programm ausprobieren?

Code: Alles auswählen

program gridtest;

uses
  SysUtils, Classes, Grid;

var
  g: TGrid;
  
begin
  EmptyGrid(g);
  WriteLn(GridToText(g));
  WriteLn(GridValue(CWhite, g));
  
  if InsertDisk(g, CWhite, 4) then
  begin
    WriteLn(GridToText(g));
    WriteLn(GridValue(CWhite, g));
  end;
end.
Welches sollte normalerweise das folgende Ergebnis ergeben:
[roland@portable ui]$ ./gridtest
#################
# . . . . . . . #
# . . . . . . . #
# . . . . . . . #
# . . . . . . . #
# . . . . . . . #
# . . . . . . . #
#################
0
#################
# . . . . . . . #
# . . . . . . . #
# . . . . . . . #
# . . . . . . . #
# . . . . . . . #
# . . . X . . . #
#################
1
[roland@portable ui]$
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Vier-in-einer-Reihe

Beitrag von wennerer »

Hallo,
bei mir sieht das Ergebnis so aus:
#################

# . . . . . . . #

# . . . . . . . #

# . . . . . . . #

# . . . . . . . #

# . . . . . . . #

# . . . . . . . #

#################
0
#################

# . . . . . . . #

# . . . . . . . #

# . . . . . . . #

# . . . . . . . #

# . . . . . . . #

# . . . X . . . #

#################
1
Viele Grüße
Bernd

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Vier-in-einer-Reihe

Beitrag von wennerer »

Hallo Roland,
das Programm läßt sich nun unter Linux 64bit kompilieren. Auch der Menütext bleibt schwarz. Soweit ich sehen konnte ist alles okay. Die Datei c4.log habe ich als.txt angehängt.

Viele Grüße
Bernd
Dateianhänge
c4.txt
(322 Bytes) 137-mal heruntergeladen

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

Re: Vier-in-einer-Reihe

Beitrag von Roland Chastain »

Hallo Bernd!
wennerer hat geschrieben:
Do 27. Aug 2020, 20:45
Hallo Roland,
das Programm läßt sich nun unter Linux 64bit kompilieren. Auch der Menütext bleibt schwarz. Soweit ich sehen konnte ist alles okay. Die Datei c4.log habe ich als.txt angehängt.
Gut! Danke.
wennerer hat geschrieben:
Do 27. Aug 2020, 20:35
bei mir sieht das Ergebnis so aus:
Ah ja, es gibt ein Problem mit dem Zeilenende. Ich werde das korrigieren.

Viele Grüße.

Roland
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Vier-in-einer-Reihe

Beitrag von Mathias »

Das #13#10 durch LineEnding ersetzen.

Wieso verwendest du einen String für diese Aufgabe. Ich hätte eine 2D Char Array genommen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Vier-in-einer-Reihe

Beitrag von Roland Chastain »

Mathias hat geschrieben:
Do 27. Aug 2020, 21:37
Das #13#10 durch LineEnding ersetzen.
Es ist getan.
Mathias hat geschrieben:
Do 27. Aug 2020, 21:37
Wieso verwendest du einen String für diese Aufgabe. Ich hätte eine 2D Char Array genommen.
Da ich faul bin, habe ich Folgendes getan. :)

Code: Alles auswählen

function GridToText(const g: TGrid): string;
const
  CSymbol: array[TDisk] of char = ('O', '.', 'X', '#');
  CCanvas =
  '#################'+ LineEnding +
  '# %s %s %s %s %s %s %s #'+ LineEnding +
  '# %s %s %s %s %s %s %s #'+ LineEnding +
  '# %s %s %s %s %s %s %s #'+ LineEnding +
  '# %s %s %s %s %s %s %s #'+ LineEnding +
  '# %s %s %s %s %s %s %s #'+ LineEnding +
  '# %s %s %s %s %s %s %s #'+ LineEnding +
  '#################';
begin
  result := Format(CCanvas, [
    CSymbol[g[1, 6]], CSymbol[g[2, 6]], CSymbol[g[3, 6]], CSymbol[g[4, 6]], CSymbol[g[5, 6]], CSymbol[g[6, 6]], CSymbol[g[7, 6]],
    CSymbol[g[1, 5]], CSymbol[g[2, 5]], CSymbol[g[3, 5]], CSymbol[g[4, 5]], CSymbol[g[5, 5]], CSymbol[g[6, 5]], CSymbol[g[7, 5]],
    CSymbol[g[1, 4]], CSymbol[g[2, 4]], CSymbol[g[3, 4]], CSymbol[g[4, 4]], CSymbol[g[5, 4]], CSymbol[g[6, 4]], CSymbol[g[7, 4]],
    CSymbol[g[1, 3]], CSymbol[g[2, 3]], CSymbol[g[3, 3]], CSymbol[g[4, 3]], CSymbol[g[5, 3]], CSymbol[g[6, 3]], CSymbol[g[7, 3]],
    CSymbol[g[1, 2]], CSymbol[g[2, 2]], CSymbol[g[3, 2]], CSymbol[g[4, 2]], CSymbol[g[5, 2]], CSymbol[g[6, 2]], CSymbol[g[7, 2]],
    CSymbol[g[1, 1]], CSymbol[g[2, 1]], CSymbol[g[3, 1]], CSymbol[g[4, 1]], CSymbol[g[5, 1]], CSymbol[g[6, 1]], CSymbol[g[7, 1]]
  ]);
end;
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Vier-in-einer-Reihe

Beitrag von Mathias »

Das was du gemacht hast, ist sehr fleissig, so viel Tiparbeit. 😉
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Vier-in-einer-Reihe

Beitrag von Roland Chastain »

Hallo! Eine neue Version des Spiels ist verfügbar. Die grafische Oberfläche wurde komplett überarbeitet.
linux-manjaro-german.png
linux-manjaro-german.png (31.2 KiB) 3444 mal betrachtet
https://github.com/rchastain/velena
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Antworten