Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Tic Tac Toe - Scorekeeper in Datenbank oder Text File speichern (https://www.delphipraxis.net/212659-tic-tac-toe-scorekeeper-datenbank-oder-text-file-speichern.html)

Tamino 12. Mär 2023 15:45

Tic Tac Toe - Scorekeeper in Datenbank oder Text File speichern
 
Hallo eine Frage wie kann ich für mein Tic Tac Toe Spiel was ich in Delphi 10 programmiert habe, die Daten wie oft jemand gewonnen hat als eine Highscore Liste speichern?
Beziehungsweise wie weiße ich denen dann auch Namen zu oder wie können Spieler sich selber Namen geben beim Mehrspieler Modus um in der Liste aufzutauchen?

zeras 12. Mär 2023 15:52

AW: Tic Tac Toe - Scorekeeper in Datenbank oder Text File speichern
 
Du speicherst einfach Score und Namen in einer Datei ab. Die kannst du dann immer wieder auswerten und gegebenenfalls updaten, wenn es höhere Scores gibt.

Tamino 12. Mär 2023 16:09

AW: Tic Tac Toe - Scorekeeper in Datenbank oder Text File speichern
 
Ich bin nur ziemlich unerfahren was das angeht, da ich mit Vorgaben programmiere. Hättest du eventuell einen Ansatz (Quellcode) wie ich die Speicherung Vollziehe? Erst einmal Danke für deine Antwort!

zeras 12. Mär 2023 16:30

AW: Tic Tac Toe - Scorekeeper in Datenbank oder Text File speichern
 
Ich habe mal OpenAI gefragt. Darf man das überhaupt dann hier posten?
Hier die Antwort. Vielleicht hilft das dir.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    lblScore: TLabel;
    btnAddPoint: TButton;
    btnSave: TButton;
    edtName: TEdit;
    Label1: TLabel;
    procedure btnAddPointClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FScore: Integer;
    FUserName: string;
    FFileName: string;
    procedure UpdateScoreLabel;
    procedure SaveScore;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.UpdateScoreLabel;
begin
  lblScore.Caption := IntToStr(FScore);
end;

procedure TForm1.btnAddPointClick(Sender: TObject);
begin
  Inc(FScore);
  UpdateScoreLabel;
end;

procedure TForm1.btnSaveClick(Sender: TObject);
begin
  FUserName := edtName.Text;
  SaveScore;
end;

procedure TForm1.SaveScore;
var
  FileStream: TFileStream;
  Writer: TBinaryWriter;
begin
  FileStream := TFileStream.Create(FFileName, fmCreate);
  try
    Writer := TBinaryWriter.Create(FileStream);
    try
      Writer.Write(FUserName);
      Writer.Write(FScore);
    finally
      Writer.Free;
    end;
  finally
    FileStream.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FFileName := ExtractFilePath(Application.ExeName) + 'scores.dat';
  if FileExists(FFileName) then
  begin
    var FileStream := TFileStream.Create(FFileName, fmOpenRead);
    try
      var Reader := TBinaryReader.Create(FileStream);
      try
        FUserName := Reader.ReadString;
        FScore := Reader.ReadInteger;
        UpdateScoreLabel;
      finally
        Reader.Free;
      end;
    finally
      FileStream.Free;
    end;
  end;
end;

end.

Tamino 12. Mär 2023 16:31

AW: Tic Tac Toe - Scorekeeper in Datenbank oder Text File speichern
 
Alles klar ich schaue es mal durch Danke! :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz