Delphi-PRAXiS
Seite 5 von 13   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Memory-Spiel: Ideen (https://www.delphipraxis.net/187916-memory-spiel-ideen.html)

XardasLP 27. Jan 2016 21:06

AW: Memory-Spiel: Ideen
 
STRG+F

Suchen nach "Flip" oder "OnFlip" beides keine Treffer. also nein ist nicht hilfreich :P

Aber ansonsten kann man dort ja immer mal reinschauen.

Es gibt welche die machen einen Trainer für Fahrschulfragen.
Den kann ich mir auch ohne eine einzige Klasse zusammenklicken. Ist einfach unfair. Der eine nimmt Snake, programmiert das von YT nach und fertig. Der andere nimmt Tetris, programmiert das von YT nach und fertig.

Also so ist Schulzeit. Das was die Lehrer nicht wissen sollen wir uns selbst aneignen. Machen ja schließlich Abitur, da gehört das ja dazu. Das die Lehrer ihr Wissen über die Jahre verlegt haben und jedes Jahr die gleichen Qelltexte abschreiben ist ja egal. :wink::!:

XardasLP 27. Jan 2016 21:13

AW: Memory-Spiel: Ideen
 
Zitat:

Ist der Kommentar von dir oder von mir? Aber Hilfe lesen hilft.
der ist von der Delphi Treff Seite kopiert

Luckie 27. Jan 2016 21:19

AW: Memory-Spiel: Ideen
 
Zitat:

Zitat von XardasLP (Beitrag 1328532)
STRG+F

Suchen nach "Flip" oder "OnFlip" beides keine Treffer. also nein ist nicht hilfreich :P

Das ist jetzt nicht dein Ernst? :shock: Das ist ein selbst definiertes Ereignis. Das nennt man dann "programmieren".

DeddyH 27. Jan 2016 21:22

AW: Memory-Spiel: Ideen
 
Mit STRG+F sucht man übrigens in der aktuellen Unit, die Hilfe wird Windows-üblich mit F1 geöffnet.

XardasLP 27. Jan 2016 21:35

AW: Memory-Spiel: Ideen
 
Zitat:

Mit STRG+F sucht man übrigens in der aktuellen Unit, die Hilfe wird Windows-üblich mit F1 geöffnet.
Ich habe übrigens deine 198 seitige PDF durchsucht... denkst auch ich bin blöd. Erst schickst du mir die, weil ich dort nachschauen soll und dann sowas :lol: schon bisschen blöd. ^.^


Zitat:

Das ist jetzt nicht dein Ernst? Das ist ein selbst definiertes Ereignis. Das nennt man dann "programmieren".
Ja tut mir Leid, das sprengt ja nun wirklich den Rahmen, weiß zwar das man sowas machen kann. Auch wenn man einen Button mit anderer Hintergrundfarbe haben möchte muss man den selbst erstellen und einbinden usw. - ändert nicht's daran, dass wir das alles noch nicht hatten.

Wenn ich dir alle unsere 30 Projekte zeige kannst du mir gerne verraten wie man daraus ein Memory Spiel entwickeln soll, was halt mehr Umfang hat als die 30 Projekte "addiert" :roll::-D

XardasLP 27. Jan 2016 21:38

AW: Memory-Spiel: Ideen
 
An diesem Projekt haben wir auch nachdem wir Geschäftsmodelle, use-case Diagramme, Anwendungsdiagramme, Sequenzdiagramme usw. durchgegangen sind noch so 2-3x 90 Minuten gearbeitet.

Bei uns hat jeder SOOOOOOOOOOOOO optimale Vorraussetzungen dieses Spiel gut abzuschließen :)

Delphi-Quellcode:
unit Umain;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    EditID: TEdit;
    ButtonND: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    RG: TRadioGroup;
    ButtonBA: TButton;
    ButtonSAVE: TButton;
    ButtonCLOSE: TButton;
    EditDS: TEdit;
    EditB: TEdit;
    EditLZ: TEdit;
    CB: TComboBox;
    EditmZ: TEdit;
    EditmR: TEdit;
    EditGz: TEdit;
    EditGza: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    procedure ButtonBAClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ButtonNDClick(Sender: TObject);
    procedure RGClick(Sender: TObject);
    procedure ButtonSAVEClick(Sender: TObject);
    procedure ButtonCLOSEClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  liste: TStrings;
  anz: integer;

implementation

uses UDarlehen;

{$R *.dfm}

procedure TForm1.ButtonBAClick(Sender: TObject);
begin
 EditDS.Enabled := False;
  EditB.Enabled := False;
  EditLZ.Enabled := False;
  CB.Enabled := False;
  Label3.Enabled := False;
  Label4.Enabled := False;
  Label5.Enabled := False;
  Label6.Enabled := False;
  Label7.Enabled := True;
  Label8.Enabled := True;
  Label9.Enabled := True;
  Label10.Enabled := True;
  EditGZ.Enabled := True;
  EditGza.Enabled := True;
  EditmR.Enabled := True;
if (EditDS.Text = '') or (EditB.Text = '') or (EditLZ.Text = '') or (CB.Text = '')
    then begin
    EditDS.SetFocus;
         end
    else begin
        darlehen.set_DS(strtofloat(Editds.Text));
        darlehen.set_BE(strtodate(EditB.Text));
        darlehen.set_LZ(strtoint(EditLZ.Text));
        darlehen.set_JZ(strtofloat(CB.Text));
        case RG.ItemIndex of
          0: begin
                EditMR.Text := formatfloat('0.00',darlehen.get_mon_Raten);
                EditMZ.Clear;
                EditGZ.Text := formatfloat('0.00',darlehen.get_ges_zinsen);
                EditGza.Text := formatfloat('0.00',darlehen.get_ges_zahlung);
             end;
          1: begin
                EditMZ.Text := formatfloat('0.00',darlehen.get_mon_Zinsen);
                EditMR.Text := '';
             end;
    end;
     EditGz.Text := formatfloat('0.00', darlehen.get_ges_zinsen);
     EditGza.Text := formatfloat('0.00', darlehen.get_ges_zahlung);
end;
ButtonSave.Enabled := True;
ButtonClose.Enabled := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  liste := TStringList.Create;
end;

procedure TForm1.ButtonNDClick(Sender: TObject);
begin
  ButtonND.Enabled := False;
  EditID.Enabled := False;
  Label2.Enabled := False;
  EditDS.Enabled := True;
  EditB.Enabled := True;
  EditLZ.Enabled := True;
  CB.Enabled := True;
  Label3.Enabled := True;
  Label4.Enabled := True;
  Label5.Enabled := True;
  Label6.Enabled := True;
  if RG.ItemIndex = -1
  then begin
          showmessage('Bitte Darlehensart auswählen! ');
       end
  else begin
          liste.LoadFromFile('darlehen.txt');
          anz := + liste.Count + 1000;
          //showmessage(inttostr(anz));
          EditID.Text := upcase(RG.Items[RG.ItemIndex][1]) + inttostr(anz);
          case RG.ItemIndex of
          0: darlehen := TAnnuitaetendarlehen.create(Editid.Text);
          1: darlehen := TEndfaelliges_Darlehen.create(Editid.Text);
          end;
          ButtonBA.Enabled := True;
       end;
end;

procedure TForm1.RGClick(Sender: TObject);
begin
ButtonND.Enabled := True;
Label2.Enabled := True;
end;

procedure TForm1.ButtonSAVEClick(Sender: TObject);
begin
  liste.Add(darlehen.speichern);
  liste.SaveToFile('darlehen.txt');
  showmessage('Daten erfolgreich gespeichert!');
  liste.Free;
  darlehen.Free;
end;

procedure TForm1.ButtonCLOSEClick(Sender: TObject);
begin
close;
end;

end.
Unit2:

Delphi-Quellcode:
unit UDarlehen;

interface

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

type
 TDarlehen = class
  protected
    Ident: string;
    Darlehensschuld: real;
    Beginn: TDateTime;
    Laufzeit: integer;
    Jahreszins: real;
    A: real;
  public
    constructor create;
    procedure set_DS (Wert: real);
    procedure set_BE (Wert: TDateTime);
    procedure set_LZ (Wert: integer);
    procedure set_JZ (Wert: real);
    function get_mon_Zinsen(): real; virtual;
    function get_mon_Raten(): real; virtual;
    function get_ges_zinsen(): real; virtual;
    function get_ges_zahlung(): real;
    function speichern(): string;
 end;

 TAnnuitaetendarlehen = class(TDarlehen)
   private
   public
    constructor create(id: string);
    function get_mon_Raten(): real; override;
    function get_ges_Zinsen(): real; override;
 end;

 TEndfaelliges_Darlehen = class(TDarlehen)
    public
      constructor create(id: string);
      function get_mon_Zinsen(): real; override;
      function get_ges_Zinsen(): real; override;
 end;

var
darlehen: TDarlehen;


implementation


//*-----*//TDarlehen//*-----*//

constructor TDarlehen.create;
begin
//
end;


procedure TDarlehen.set_DS (Wert: real);
begin
  Darlehensschuld := wert;
end;


procedure TDarlehen.set_BE (Wert: TDateTime);
begin
  Beginn := wert;
end;


procedure TDarlehen.set_LZ (Wert: integer);
begin
  Laufzeit := wert;
end;


procedure TDarlehen.set_JZ (Wert: real);
begin
  Jahreszins := wert;
end;


function TDarlehen.get_mon_Zinsen(): real;
begin
//
end;


function TDarlehen.get_mon_Raten(): real;
begin
//
end;


function TDarlehen.get_ges_zinsen(): real;
begin
//
end;


function TDarlehen.get_ges_zahlung(): real;
begin
  result := Darlehensschuld + get_ges_zinsen;
end;


function TDarlehen.speichern(): string;
begin
  result := Ident + '#' + formatfloat('0.00',darlehensschuld)
                  + '#' + datetostr(Beginn)
                  + '#' + inttostr(Laufzeit)
                  + '#' + formatfloat('0.00',jahreszins)
                  + '#' + formatfloat('0.00',get_mon_zinsen)
                  + '#' + formatfloat('0.00',get_mon_raten)
                  + '#' + formatfloat('0.00',get_ges_zinsen)
                  + '#' + formatfloat('0.00',get_ges_zahlung);
end;


//*-----*//TAnnuitaetendarlehen//*-----*//

constructor TAnnuitaetendarlehen.create(id: string);
begin
  Ident := id;
end;


function TAnnuitaetendarlehen.get_mon_Raten(): real;
begin
  result := Darlehensschuld * power(1 + Jahreszins/1200, Laufzeit)
            *(Jahreszins/1200) /(power(1 + Jahreszins/1200, Laufzeit) -1);
  //Power errechnet aus Base und einen beliebigen Wert die Potenz. Wird als
  //Exponent ein Bruchwert oder ein Wert größer MaxInt angegeben,
  //muss Base größer als 0 sein.
end;


function TAnnuitaetendarlehen.get_ges_Zinsen(): real;
begin
  result := get_mon_Raten * laufzeit - Darlehensschuld;
end;


//*-----*//TEndfaelliges_Darlehen//*-----*//


constructor TEndfaelliges_Darlehen.create(id: string);
begin
  Ident := id;
end;


function TEndfaelliges_Darlehen.get_mon_Zinsen(): real;
begin
  result := get_ges_Zinsen
end;


function TEndfaelliges_Darlehen.get_ges_Zinsen(): real;
begin
  result := Darlehensschuld * power(1 + Jahreszins/100 {wegen Prozent},
            Laufzeit/12) - Darlehensschuld
end;


end.

DeddyH 27. Jan 2016 21:39

AW: Memory-Spiel: Ideen
 
Du hättest aber auch sagen können, dass sich die Suche auf die PDF bezog, ich war gedanklich innerhalb der Entwicklungsumgebung. Andererseits kann man sich tatsächlich fragen, ob es für einen simplen Wert gleich eine Klasse braucht. Zur Verwaltung dieser Werte hingegen würde sich eine solche sehr empfehlen.

XardasLP 27. Jan 2016 21:50

AW: Memory-Spiel: Ideen
 
Das ist halt auch so, an Unit2 sieht man ja, dass wir Klassen anders schreiben und so. Wie soll ich das viel komplexere verstehen. :O ^^

DeddyH 27. Jan 2016 21:57

AW: Memory-Spiel: Ideen
 
Schieb doch erstmal alle Gedanken an Klassen, Panels , Images etc. zur Seite und überlege Dir, was so ein Spiel ausmacht, was man dazu braucht und wie man das generell umsetzen könnte. Z.B. muss man ja 2 Karten irgendwie als zusammengehörig kennzeichnen. Erst nach dieser Grobskizzierung kann man dann ins Detail gehen.

Luckie 27. Jan 2016 21:59

AW: Memory-Spiel: Ideen
 
öHm. Was ist jetzt an deiner Unit2 prinzipielle anders als bei meinen Units/Klassen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr.
Seite 5 von 13   « Erste     345 67     Letzte »    

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