Autor Beitrag
Smarty
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 21



BeitragVerfasst: Mo 27.03.06 18:01 
Hallo zusammen,

ich hab hier so ne Aufgabe, die mir Kopfscmerzen bereitet (für die Profies unter euch ist diese Aufgabe warscheinlich banal, aber ich als Anfänger......haha kp :gruebel: )

Die Aufgabe:
Der Computer schreibt eine Folge von Ziffern auf den Bildschirm, die nach 3 Seckunden gelöscht wird. Der Spieler muss sich diese Folge merken und anschließend eingeben. Wenn er richtig geraten hat, wird die Folge um eine Ziffer verlängert. Das Spiel läuft so lange, bis die Zifferfolge falsch eingetippt wird.

hab grad mal das hier geschaft


Quelltext

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
unit ZusatzU;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  folge:integer
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var zahl, zufallszahl:integer;

begin
zahl:=StrToInt(Edit1.Text);

if Edit2.Text=Edit1.Text then
  showmessage('RICHTIG')
else
  showmessage('FALSCH');  
end;

procedure TForm1.Button2Click(Sender: TObject);
var zufallszahl:integer;
begin
Edit2.Text:='';
randomize;
zufallszahl:=Random(800)+100;
Edit1.Text:=IntToStr(zufallszahl);
end;

end.



Ich will hier nicht den Eindruck erwecken, dass ich hoffe, dass mir jemand das fertige programm liefert (wäre ja unehrenhaft)
Leider hab ich in den paar Monaten Informatik noch nichts über den timer gelernt und die ergenzenden Zahlen klappen irgendwie auch nicht.
Mir würden einige Hinweise genügen, damit ich endlich weiter komme.

Würde mich wirklich über einen tip oder so freuen

Danke schon mal im vorraus...

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von Smarty am Mo 03.07.06 17:38, insgesamt 2-mal bearbeitet
Stoney
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 122

Mac OS X 10.6 "Snow Leopard", Ubuntu Linux 9.04, Mandriva 2010, Win 7, Win Vista, Win XP
Object Pascal (Turbo Delphi, FPC 2.2.4, Lazarus), C++ (Code::Blocks, XCode), Java (Eclipse)
BeitragVerfasst: Mo 27.03.06 18:24 
user profile iconSmarty hat folgendes geschrieben:

Der Computer schreibt eine Folge von Ziffern auf den Bildschirm, die nach 3 Seckunden gelöscht wird. Der Spieler muss sich diese Folge merken und anschließend eingeben. Wenn er richtig geraten hat, wird die Folge um eine Ziffer verlängert. Das Spiel läuft so lange, bis die Zifferfolge falsch eingetippt wird.

So wie ich deinen Quelltext sehe, hast du keine Ziffernfolge. Für eine Ziffernfolge würde sich ein (dynamisches) Array hervorragend eignen.

Was du brauchst ist ein Label, ein Button, ein Edit und ein Timer. Der Timer hat ein Intervall von 3000 ms und standardmäßig deaktiviert. Das Label hat anfänglich eine leere Caption. Mit einem Klick auf den Button werden die Zufallszahlen generiert und der Timer aktiviert. Im OnTimer-Event des Timers schreiben, dass die Zahlen verschwinden und das Edit angezeigt werden soll.
Das wäre einmal das Gründgerüst.

P.S.: Mach für deinen Quelltext bitte Delphi-Tags.

Edit: Sorry, war gerade auf dem falschen Dampfer. Ich habe gemeint, du willst eine Zahlenfolge machen :oops: ; vergiss das mit den Arrays :)


Zuletzt bearbeitet von Stoney am Mo 27.03.06 18:32, insgesamt 1-mal bearbeitet
starsurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Mo 27.03.06 18:28 
1. Variablen erleichtern einiges :D
wo willst du die zufallszahl speichern wenn du die wieder aus dem editfeld löschst?!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  zufallszahl:integer;
implementation

1.1 wie erweitere ich die var um eine stelle?
Um die var zu erweitern muss man von der alten aus gehen deswegen müssen wir sie erst mal so deklarieren das sie fürs ganze forumlar gilt und nicht nur für eine Prozedur(siehe oben).
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
zufallszahl:=zufallszahl*10+random(10);
{*
Funktionsweise:
1.zahl=0 *10 = 0 +zufallszahl zw (0..9)
2.zahl=3(beispielsweise) *10 =30 +zufallszahl zw (0..9) -> 33(beispielsweise) d.h.  zahl wird immer um eine stelle erweitert 
*}

2. Der Timer
Wie stell ich die Zeit ein in der der Timer ein Ereignis liefert?
ausblenden Delphi-Quelltext
1:
   timer1.interval:=3000; //bedeutet 3000 ms = 3s					

Wie stell ich den timer an bzw aus?
ausblenden Delphi-Quelltext
1:
2:
   timer1.enabled:=false; //aus
   timer1.enabled:=true;  //an

3.Wie soll das Programm laufen?

1.Spiel soll starten...
2.Computer erstellt(bzw erweitert) Zufallszahl, speichert diese in der Variablen dazu
3.Zahl soll 3 sek ausgegeben werden
3.1 Timer muss aktiviert werden
3.2 Zufallszahl wird angezeigt
3.3 Timer läuft 3 sek lang
3.4 Zufallszahl ausblenden
3.5 Timer muss deaktiviert werden
4.Spieler muss Zahl eingeben
5.Computer vergleicht Eingabe mit Variable
6.Wenn beide übereinstimmen dann fange wieder mit Schritt 2 an anderfalls SCHRITT 7
7.Variablen zurücksetzen und ENDE

_________________
GEIZ IST GEIL! - Ihr Sozialamt


Zuletzt bearbeitet von starsurfer am Mo 27.03.06 18:39, insgesamt 2-mal bearbeitet
Smarty Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 21



BeitragVerfasst: Mo 27.03.06 18:32 
Genau so soll es ablaufen

Vielen, vielen, vielen dank für eure Hilfe!

Ich muss noch ne menge verbessern, nehm mir das zu herzen...

Vielen, vielen, vielen dank noch mal
Smarty Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 21



BeitragVerfasst: Mo 27.03.06 19:32 
0