AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Numbers! ist fertig, was kann noch ergänzt werden?
Thema durchsuchen
Ansicht
Themen-Optionen

Numbers! ist fertig, was kann noch ergänzt werden?

Ein Thema von Nashy · begonnen am 29. Nov 2014 · letzter Beitrag vom 4. Dez 2014
Antwort Antwort
Seite 1 von 2  1 2      
Nashy

Registriert seit: 22. Nov 2014
14 Beiträge
 
#1

Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 29. Nov 2014, 23:34
Hallo,

habe meine erste kleine App fertig programmiert, und frage mich, was ich nun noch ergänzen kann. Die App ist sehr einfach: Beim Klick auf ''Go'' würfelt der Computer eine Zufallszahl. Diese wird in einem Editfeld für 3 Sekunden ausgegeben. Der Spieler muss sich diese Kombination merken und nachdem die 3 Sekunden vorbei sind in das Eingabe Feld eingeben.
Der Computer prüft die Eingabe. Ist sie Falsch, verliert man ein Leben. Bei 0 Leben ist das Spiel verloren.

Ich habe nun als Features einen Zähler für die Spiele, einen Zähler für die richtigen Antworten, eine Lebenanzeige, und einen Countdown.
Was kann ich noch ergänzen um das Programm zu erweitern? Ich wollte eigentlich gerne Töne einbauen bei Richtig/Falsch, jedoch gibt es bei mir die Funktion PlaySound nicht..

Dann hatte ich mir überlegt, einen TSwitch einzubauen, um zwischen Zahlen und Buchstaben hin und her schalten zu können, jedoch habe ich nirgendwo gefunden, wie ich einen TSwitch programmieren kann.. also bin ich auch hier über Hilfe sehr dankbar.
Habt ihr noch andere (möglichst relativ einfache) Vorschläge, wie ich meine App ergänzen kann?

Vielen Dank im Vorraus!

Nashy

Delphi XE7
FireMonkey
  Mit Zitat antworten Zitat
MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 30. Nov 2014, 00:05
Hi,

ich denke das ist es was du suchst.

Code:
 Switch1.IsChecked
True oder False übergeben und entsprechend variable setzten für Zahlen oder Buchstaben.
Veritas et Aequitas
  Mit Zitat antworten Zitat
Benutzerbild von humbuck
humbuck

Registriert seit: 26. Nov 2014
Ort: BW
65 Beiträge
 
Delphi XE4 Professional
 
#3

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 30. Nov 2014, 09:56
Du müsstest allerdings dann den Namen deiner App überdenken...
Jörch
Wissen ist Macht!
Wenn man nix weiß, muss man halt nur wissen, wo man nachschlagen muss.
Ergo: Ich weiß nix - macht nix.
  Mit Zitat antworten Zitat
Nashy

Registriert seit: 22. Nov 2014
14 Beiträge
 
#4

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 30. Nov 2014, 19:39
Danke für die Antworten - Name wird noch überdacht!

Was ist denn das Gegenteil von ischecked?
Ich muss dem Programm sagen, wenn Eingabe=Ausgabe und Switch1.ischecked then... und natürlich auch, wenn Eingabe=Ausgabe aber der Switch ist nicht aktiv. (Versteht man was ich meine?)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#5

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 30. Nov 2014, 19:52
not Switch1.IsChecked ?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 30. Nov 2014, 19:55
vermutlich liefert ischecked boolean zurück, also TRUE oder FALSE

not (xy.ischecked)

wäre dann, was Du brauchst.
Gruß, Jo
  Mit Zitat antworten Zitat
Nashy

Registriert seit: 22. Nov 2014
14 Beiträge
 
#7

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 30. Nov 2014, 20:27
jupp das stimmt, bringt mich aber vor das nächste Problem

Delphi-Quellcode:
procedure TForm1.ButtonDoneClick(Sender: TObject);
begin
TimerLeben.Enabled := true;
if (Editausgabe.text=EditEingabe.text) and switch1.IsChecked then
begin
  LabelAusgabe.Text := 'Richtig!';
  randomize;
  Zufallszahl:= random(9)+1;
  EditEingabe.Text := ''        ;
  ButtonGo.Enabled:= true;
  ButtonDone.Enabled:= false;
  EditAusgabe.Text := EditAusgabe.Text + inttostr(Zufallszahl);
  EditAusgabe.visible := true;
  TimerCountdown.Enabled := true;
  EditEingabe.ReadOnly:= true;
  ButtonGo.Enabled := false;
  ButtonDone.Enabled:= false;
  Buttondone.Visible:= true;
  Countdown:=3;
  Level:= Level + 1 ;
  Labelrichtig.Visible := true;
  Labelrichtig.Text := 'Du hast ' + IntToStr (Level) + ' richtige Antworten gegeben' ;
  end ;
  if (Editausgabe.Text=EditEingabe.Text) and not switch1.ischecked then
  begin
  LabelAusgabe.Text := 'Richtig!';
 randomize;
Zufallsbuchstabe := Chr (Random (26) + 64 + 1) ;
EditAusgabe.Text := EditAusgabe.Text + Zufallsbuchstabe;
  EditEingabe.Text := ''        ;
  ButtonGo.Enabled:= true;
  ButtonDone.Enabled:= false;
  EditAusgabe.visible := true;
  TimerCountdown.Enabled := true;
  EditEingabe.ReadOnly:= true;
  ButtonGo.Enabled := false;
  ButtonDone.Enabled:= false;
  Buttondone.Visible:= true;
  Countdown:=3;
  Level:= Level + 1 ;
  Labelrichtig.Visible := true;
  Labelrichtig.Text := 'Du hast ' + IntToStr (Level) + ' richtige Antworten gegeben' ;
end ;
if not (Editausgabe.Text=EditEingabe.Text) then

begin
EditAusgabe.ReadOnly := true;
LabelAusgabe.Text := 'Falsch';
ButtonGo.Visible := false;
ButtonWeiter.Visible := true;
ButtonWeiter.Enabled := true;
EditAusgabe.Visible := true;
ButtonWeiter.Text := 'Weiter' ;
ButtonGo.Enabled:= false;
ButtonDone.Enabled:= false;
TimerLeben.Enabled:= true;
Loose := Loose +1;
EditEingabe.Text := '';


end;
end;
Führe ich das Programm jetzt aus, so kommen wenn ich den Switch 'Aktiviert' habe beim Klick auf Go (unten) eine Zahl und ein Buchstabe. Beim weiterspielen wird außerdem jede Eingabe als Falsch angezeigt.. (oben)


Edit:

Hab das Problem, mit dem Buchstaben und der Zahl gelöst indem ich Editausgabe.Text:= '' ; geschrieben habe.

Außerdem ist mir folgendes Aufgefallen: Der Text in LabelAusgabe 'Du hast x richtige Antworten gegeben.' Wird angezeigt und aktualisiert, gleichzeitg kommt Falsch und ein Leben verschwindet! Also wird irgendwie sowohl richtig als auch falsch abgespielt.. // aus Gründen der Übersichtlichkeit habe ich die Procedure von ButtonGo rausgenommen

Geändert von Nashy (30. Nov 2014 um 20:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 1. Dez 2014, 08:17
Ich hab mir mal erlaubt, den Code zu formatieren, das erleichtert die Übersichtlichkeit enorm und macht auch die Fehlersuche einfacher:
Delphi-Quellcode:
procedure TForm1.ButtonDoneClick(Sender: TObject);
begin
  TimerLeben.Enabled := true;
  if (Editausgabe.text = EditEingabe.text) and switch1.IsChecked then
    begin
      LabelAusgabe.text := 'Richtig!';
      randomize;
      Zufallszahl := random(9) + 1;
      EditEingabe.text := '';
      ButtonGo.Enabled := true;
      ButtonDone.Enabled := false;
      Editausgabe.text := Editausgabe.text + inttostr(Zufallszahl);
      Editausgabe.visible := true;
      TimerCountdown.Enabled := true;
      EditEingabe.ReadOnly := true;
      ButtonGo.Enabled := false;
      ButtonDone.Enabled := false;
      ButtonDone.visible := true;
      Countdown := 3;
      Level := Level + 1;
      Labelrichtig.visible := true;
      Labelrichtig.text := 'Du hast ' + inttostr(Level) +
        ' richtige Antworten gegeben';
    end;
  if (Editausgabe.text = EditEingabe.text) and not switch1.IsChecked then
    begin
      LabelAusgabe.text := 'Richtig!';
      randomize;
      Zufallsbuchstabe := Chr(random(26) + 64 + 1);
      Editausgabe.text := Editausgabe.text + Zufallsbuchstabe;
      EditEingabe.text := '';
      ButtonGo.Enabled := true;
      ButtonDone.Enabled := false;
      Editausgabe.visible := true;
      TimerCountdown.Enabled := true;
      EditEingabe.ReadOnly := true;
      ButtonGo.Enabled := false;
      ButtonDone.Enabled := false;
      ButtonDone.visible := true;
      Countdown := 3;
      Level := Level + 1;
      Labelrichtig.visible := true;
      Labelrichtig.text := 'Du hast ' + inttostr(Level) +
        ' richtige Antworten gegeben';
    end;
  if not(Editausgabe.text = EditEingabe.text) then
    begin
      Editausgabe.ReadOnly := true;
      LabelAusgabe.text := 'Falsch';
      ButtonGo.visible := false;
      ButtonWeiter.visible := true;
      ButtonWeiter.Enabled := true;
      Editausgabe.visible := true;
      ButtonWeiter.text := 'Weiter';
      ButtonGo.Enabled := false;
      ButtonDone.Enabled := false;
      TimerLeben.Enabled := true;
      Loose := Loose + 1;
      EditEingabe.text := '';
    end;
end;
Ist Dir schon aufgefallen, dass Du vieles mehrfach tust? Wie wäre es denn mit dieser Logik?
Delphi-Quellcode:
if Editausgabe.text = EditEingabe.text then
  begin
    if switch1.IsChecked then
      begin
        //Code für Fall "Zahlen"
      end
    else
      begin
        //Code für Fall "Buchstaben"
      end;
    //gemeinsamer Code
  end
else
  begin
    //Code für falsche Antwort inkl. Beschriftung von Labelrichtig
  end;
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

Geändert von DeddyH ( 1. Dez 2014 um 08:52 Uhr) Grund: Schreibfehler korrigiert
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 1. Dez 2014, 08:48
Da muss ich DeddyH zustimmen: Wenn du viel ähnlichen Code hast ist das oft ein Indiz dafür, dass man hier etwas verbessern kann.

Eine Erweiterungsmöglichkeit wäre ein steigender Schwierigkeitsgrad, umso länger das Spiel läuft.
Du lässt also intern noch einen Zähler mitlaufen, der z.B. aller 5 Zahlen die Zufallszahl um eine Stelle verlängert. So wird das Spiel immer schwieriger und irgendwann ist es vorbei.

Grüße
Headbucket
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 1. Dez 2014, 08:53
In welchem Supermarkt kann man das Spiel kaufen, oder gibt es auch irgendwo zum Download?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:48 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