AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Slotmaschine in Delphi - Bitte um Hilfsstellung
Thema durchsuchen
Ansicht
Themen-Optionen

Slotmaschine in Delphi - Bitte um Hilfsstellung

Ein Thema von Back2Code · begonnen am 23. Mär 2012 · letzter Beitrag vom 24. Mär 2012
Antwort Antwort
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#1

Slotmaschine in Delphi - Bitte um Hilfsstellung

  Alt 23. Mär 2012, 10:28
Zurzeit arbeite ich an einer Slotmaschine wie eine, die man so aus den Casinos kennt. Sie ist noch relativ simpel gehalten und ich mache das ganze nur zu Lernzwecken.

Hier mal der aktuelle SCR Code :

Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Windows, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls, ComCtrls, Menus, ActnList, Spin, FileCtrl;

type

  { TForm1 }

  TForm1 = class(TForm)
    FloatSpinEdit1: TFloatSpinEdit;
    Guthabenlb: TLabel;
    s4: TLabel;
    s5: TLabel;
    s6: TLabel;
    s7: TLabel;
    s8: TLabel;
    s9: TLabel;
    Timer3: TTimer;
    Winlb: TLabel;
    Loselb: TLabel;
    slotbn: TButton;
    s1: TLabel;
    s2: TLabel;
    s3: TLabel;
    Timer1: TTimer;
    Timer2: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure slotbnClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
  private
    { private declarations }
    FRollen : array [0..2, 0..9] of String;
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  wins,loses : Integer;
  guthaben : Double = 10;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.slotbnClick(Sender: TObject);
  begin
  Guthaben := Guthaben - 1.00;
  Guthabenlb.Caption := FloatToStr(guthaben) + ('');
  Timer1.Enabled := True;
  Timer2.Enabled := True;
  slotbn.Enabled := false;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
  j: integer;
  n: integer;
  digits: TStringlist;

  begin
  Digits := TStringList.Create;
  try
    for i := low(FRollen) to high(FRollen) do
    begin
      for j := low(FRollen[i]) to high(FRollen[i]) do
        Digits.Add(IntToStr(j));

      for j := low(FRollen[i]) to high(FRollen[i]) do
      begin
        n := Random(Digits.Count);
        FRollen[i, j] := Digits[n];
        Digits.Delete(n);
      end;

    end
  finally
    Digits.Free;
  end;

  for i:=low(FRollen) to high(FRollen) do
  begin


  end;
end;



//==================================================================================================\\
// Drehen der Slots im Zufallsmodus
//==================================================================================================//
procedure TForm1.Timer1Timer(Sender: TObject);
begin
s1.Caption := IntToStr(Random(9));
s2.Caption := IntToStr(Random(9));
s3.Caption := IntToStr(Random(9));
s4.Caption := IntToStr(Random(9));
s5.Caption := IntToStr(Random(9));
s6.Caption := IntToStr(Random(9));
s7.Caption := IntToStr(Random(9));
s8.Caption := IntToStr(Random(9));
s9.Caption := IntToStr(Random(9));
end;

//==================================================================================================//



//===================================================================================================\\
// Gewonnen / Verloren abfrage
//===================================================================================================//
procedure TForm1.Timer2Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  Timer2.Enabled := false;
  if (s1.Caption = s5.Caption) and (s1.Caption = s9.Caption) then
  begin
    Guthaben := Guthaben + 5.00;
    Inc(wins);
  end
  else
  if (s1.Caption = s4.Caption) and (s1.Caption = s7.Caption) then
  begin
    Guthaben := Guthaben + 5.00;
    Inc(wins);
  end
  else
    if (s2.Caption = s5.Caption) and (s2.Caption = s8.Caption) then
    begin
      Guthaben := Guthaben + 5.00;
      Inc(wins);
    end
    else
      if (s3.Caption = s6.Caption) and (s3.Caption = s9.Caption) then
      begin
        Guthaben := Guthaben + 5.00;
        Inc(wins);
      end
      else
        if (s3.Caption = s5.Caption) and (s3.Caption = s7.Caption) then
        begin
          Guthaben := Guthaben + 5.00;
          Inc(wins);
        end
        else
        Inc(loses);
        slotbn.Enabled := True;
        Loselb.Caption := 'Loses: ' + IntToStr(loses);
        Winlb.Caption := 'Wins: ' + IntTostr(Wins);
        end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
  if (guthaben = 0) or (guthaben < 0) then
  begin
  Timer3.Enabled := False;
  MessageBox(handle,'Du hast verloren!','Verlierer!',MB_OK);
  close();
end;

end;

//======================================================================================================\\


end.
Ich hab jetzt ein paar Fragen worauf ich noch keine gute Erklärung gefunden habe :

Wie kann ich die Labels durch Icons ersetzen( Also, dass man dann z.B 3 Kronen hat)

Wie kann ich die Gewinne spezifisch den Symbolen anpassen? (3 Äpfel z.B nur 4 €, 3 7er dann 400 )

Wie kann ich den Einsatz erhöhen und dadurch die Gewinne verringern/erhöhen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Slotmaschine in Delphi - Bitte um Hilfsstellung

  Alt 23. Mär 2012, 10:34
Du würdest Dich leichter tun, wenn Du Logik und Darstellung trennen würdest. D.h. die gesamte Logik kommt in eine eigene Klasse, wie Du das dann darstellst, steht Dir völlig frei.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#3

AW: Slotmaschine in Delphi - Bitte um Hilfsstellung

  Alt 23. Mär 2012, 10:34
Du würdest Dich leichter tun, wenn Du Logik und Darstellung trennen würdest. D.h. die gesamte Logik kommt in eine eigene Klasse, wie Du das dann darstellst, steht Dir völlig frei.
OOP hab ich noch nicht richtig drauf...Werd ich mir als nächstes vornehmen. Nun aber zurück bitte zu meinen Fragen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Slotmaschine in Delphi - Bitte um Hilfsstellung

  Alt 23. Mär 2012, 10:38
Und damit zurück zu meiner Antwort. Das ist die einzig saubere Lösung, sonst bekommst Du später nur noch mehr Probleme, glaub mir das einfach mal.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Slotmaschine in Delphi - Bitte um Hilfsstellung

  Alt 23. Mär 2012, 11:40
Hach, das erinnert mich an meine Anfangszeit... eins meiner ersten Anfängerprojekte mit 9 Jahren oder so war auch eine primitive Slot-Machine. Ich habe damals gefärbte Panels an Stelle von Symbolen verwendet.

Wenn du Symbole verwenden willst, kannst du dir mal TImage anschauen. Du kannst für jedee „Rolle“ mehrere solcher Images übereinanderlegen und sie nach Bedarf mit Image.Visible := False/True aus- und einblenden. Den Status der einzelnen „Rollen“ musst du natürlich gesondert in Variablen abspeichern (Logik ↔ Darstellung), momentan speicherst du den Zustand ja direkt in den Captions der Labels.

Natürlich ist es nicht die sauberste Lösung, mehrere Images übereinanderzulegen, aber für den Anfang sollte es reichen. Es ist auch eher unwahrscheinlich, dass er sich später überlegt, dass er doch lieber eine Slot-Machine mit 100 Rollen haben will, von daher sollte es da auch keine Probleme geben... . Und sooo komplex ist so ein Programm ja auch nicht, dass man den Teil nicht relativ schnell neu schreiben kann, wenn man mit der Lösung unzufrieden ist.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Slotmaschine in Delphi - Bitte um Hilfsstellung

  Alt 24. Mär 2012, 11:58
@Robin2k

Da du ja XE2 im Einsatz hast, bieten sich dafür natürlich die Bei Google suchenLiveBindings an.

Im Anhang hast du ein kleine Projekt mit so eine Mini-Slot-Maschine, wo zum Einen der Code und die Anzeige getrennt ist, und zum Anderen die Verwendung der LiveBindings gezeigt wird.

(Source und exe im Anhang)

(BTW. mein 3000ter Beitrag )
Miniaturansicht angehängter Grafiken
screenshot.png  
Angehängte Dateien
Dateityp: zip SlotMaschine.zip (951,3 KB, 11x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:58 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