![]() |
Ratezahl 2 Delphi (leicht)
Ich schätze mal für euch ist es recht leicht sowas zu machen ,also wenn man es kann^^
Hier ist erstmal mein Ratespiel ![]() Daran werdet ihr sehen das wir noch ganz am anfang sind. grade mit if anweisungen angefangen. Jetzt muss ich drei aufgaben hinzufügen vieleicht könnt ihr mir ja helfen 1. Anzahl der benötigten Versuche anzeigen 2.Zur besseren unterstüzung beim raten soll auf einem weiteren panel die botschaft kalt warm heiß usw erscheinen je nachdem wie nahe man an der zahl dran ist 3. Bei mehr als 10 versuchen soll das programm die lösung ausgeben und das weiterraten verweigern Könnt ihr mir bitte helfen? |
Re: Ratezahl 2 Delphi (leicht)
Zitat:
Zitat:
Zitat:
|
Re: Ratezahl 2 Delphi (leicht)
1: immer wenn du auf "Raten" klickst eine Variable hochzählen, bei erraten ausgeben und auf 0 setzen
2: du kannst ja schauen ob richtigeZahl-GerateneZahl > 10 usw ist 3: wie bei 1) nur wenn variable = 10 dann... |
Re: Ratezahl 2 Delphi (leicht)
du könntest bei dem raten button folgendes einfügen:
Delphi-Quellcode:
var count : integer; begin // dein zeug count := count + 1 if count = x then // für x kannst du einfügen wieviel versuche // was du dann machn willst |
Re: Ratezahl 2 Delphi (leicht)
Zitat:
du deklarierst hier ne lokale variable :zwinker: |
Re: Ratezahl 2 Delphi (leicht)
Zitat:
Zum ersten wird count nirgendwo initialisiert, kann also theoretisch alles sein ;) Und zum zweiten: selbst wenn wir mal davon ausgehen, dass count 0 ist, wird die Abfrage nur dann true ergeben, wenn x=1 ist ;) schließlich ist count nur lokal definiert :zwinker: |
Re: Ratezahl 2 Delphi (leicht)
öhm ich kann mir daraus nicht besonders viel vorstellen wie mach ich das denn nun? kann mir das einer erklärren oder in meiner beispiel datei zeigen?
Ich bin noch ein ziemlicher noob in der ganzen sache |
Re: Ratezahl 2 Delphi (leicht)
Ne lokale Variable ist nur während der Laufzeit der Prozedur/Funktion/Methode existent. Beim nächsten Klick handelt es sich um eine andere Variable mit dem selben Namen.
|
Re: Ratezahl 2 Delphi (leicht)
:oops:
shame on me :( dann mach bei form1 create noch
Delphi-Quellcode:
(diesma net local xD)
procedure TForm1.FormCreate(Sender: TObject);
begin count := 1; end;
Delphi-Quellcode:
jetzt müssts gehn^^
var
count : integer; @mkinzler weis ich, hab nur net nachgedacht^^ |
Re: Ratezahl 2 Delphi (leicht)
wo muss ich
var count : integer; enfügen? |
Re: Ratezahl 2 Delphi (leicht)
Nun verschaffst du dem Spieler auch noch ein Handicap :lol: Initialisiere die Variable besser mit 0. Und das nicht nur beim Programmstart sonder besser beim Beginn eines neuen Spieles.
[Edit] Zitat:
[/Edit] |
Re: Ratezahl 2 Delphi (leicht)
ok das hab ich hinzugefügt... das war jetzt zu aufgabe 1 oder?
Ich kenn mich damit halt noch garnicht aus.... und wie zeige ich jetzt an wie viele Versuche man hatte? |
Re: Ratezahl 2 Delphi (leicht)
Und zu 3.
Delphi-Quellcode:
Vorher natürlich Label anlegen.
Label.Caption := IntToStr( count);
|
Re: Ratezahl 2 Delphi (leicht)
unter was muss das jetzt rein?
Label4.Caption := IntToStr( count); (bei mir ist es label4 das neuerstellte) |
Re: Ratezahl 2 Delphi (leicht)
also ich zeig hier ma wie das gerüst sein könnte^^ (berichtigt mich, wenn ich mal wieder n paar fehler mach :mrgreen: )
Delphi-Quellcode:
so ungefähres gerüst xD
var
Form1: TForm1; versuche : integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin // was du machn wolltest versuche := versuche + 1; Label2.Caption := IntToStr(versuche); if versuche = 10 then Label1.Caption := 'Maximale Rateanzahl erreicht, Neue runde?'; Button1.Enabled := false; end; procedure TForm1.Button2Click(Sender: TObject); begin // das der button womit man ne neue raterunde anfangen kann versuche := 0; Button1.Enabled := true; Label1.Caption := 'Rate die Zahl'; end; procedure TForm1.FormCreate(Sender: TObject); begin versuche := 0; end; end. |
Re: Ratezahl 2 Delphi (leicht)
entschuldigung an alle mal... ihr erstellt laufend neue nachrichten mit irgendwelchen code shcnipseln womit ich rein garnichts anfangen kann ....
kann nicht jemand meine pas datei nicht einfach editieren so das ich es mir anschauen kann ? |
Re: Ratezahl 2 Delphi (leicht)
Dann befasse dich mal mit den Grundlagen.
|
Re: Ratezahl 2 Delphi (leicht)
sind das hausaufgaben?
|
Re: Ratezahl 2 Delphi (leicht)
könnt ihr mir nicht einfach die 3 Aufgaben in die pas datei einbindne`? So Sympel wie möglich
nein keine hausaufgaben es ist blos ein Aufgabenzettel aber ohne hilfe komm ich einfach net weiter |
Re: Ratezahl 2 Delphi (leicht)
Zitat:
|
Re: Ratezahl 2 Delphi (leicht)
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab hier n ähnliches rateprogramm, von ner cd aus nem tutorial buch, mit dem ich ma gearbeitet hab (fand das buch sehr hilfreich)
kannsts dir ja ma ankucken ![]() |
Re: Ratezahl 2 Delphi (leicht)
@cran7: Schreibst du dann auch seine Arbeit?
|
Re: Ratezahl 2 Delphi (leicht)
tz vergisst es... ich lösch meinen account ja schon wieder... alles was ich wollte war ein wenig hilfe für einen laien aber egal....
|
Re: Ratezahl 2 Delphi (leicht)
Zitat:
ich hab ihm nur n source von nem programm gegeben, is nichma von mir, sondern von cd, die ich hier rumliegn hatte... @andiak ich würd dir empfehlen nen einsteiger buch zulesen, da hat man meiner meinung nach am meisten von |
Re: Ratezahl 2 Delphi (leicht)
kann ja sein aber wir hatten jetzt 3 stunden informatik und niemand hat davon geredet das ich dann gleich ein buch lesen soll doer das muss doch auch so klappen
|
Re: Ratezahl 2 Delphi (leicht)
Zitat:
|
Re: Ratezahl 2 Delphi (leicht)
ich akzeptiere nicht nur fertige lösungen aber wenn man da irgendwelche codeschnipsel sag ich mal da reinschreibt weiß ich nicht wo ich das einfügen soll..
und woher soll ich wissen was eine globale variable ist das wurde uns halt noch nicht gesagt... ich weiß was ne methode nen wert nen ereignis und sowas ist aber mehr auch nicht und wie man ne if anweisung schreibt ich hätte jede frage einzeln posten sollen erstmal wie ich anzeigen lassen kann wie oft ich schon getippt habe (auf einen label) unter var habe ich jetzt noch "count : integer;" und im Form1 bei oncreate procedure TForm1.FormCreate(Sender: TObject); begin count := 0; end; ist das richtig? für aufgabe eins? jetzt hab ich Label4 wo die anzahl der versuche stehen soll wie mach ioch das? (die ersten beiden tutorials von der seite habe ich gemacht) |
Re: Ratezahl 2 Delphi (leicht)
Zitat:
-Grundgerüst Programm ... ![]() |
Re: Ratezahl 2 Delphi (leicht)
kann ich die versuchs anzhal mit Label4.Caption :=Count
darstellen? Wenn ja wo muss die prozedure rein |
Re: Ratezahl 2 Delphi (leicht)
Delphi-Quellcode:
Dort wo du auch hochzählst. Aber schau dir doch mal die Codes von cran7 an.
Lable4.Caption := IntToStr( count);
|
Re: Ratezahl 2 Delphi (leicht)
ok hab ich dieser button mit wo "Rate" draufsteht besitzt jetzt folgendes:
procedure TForm1.Vergleiche(Sender: TObject); begin count := count + 1; Label4.Caption := IntToStr( count); if count = 10 then Label4.Caption := 'Maximale Rateanzahl erreicht, Neue runde?'; BRaten.Enabled := false end; if StrToInt(EEingabe.Text) > Zahl then begin PAntwort.Caption := 'zu groß!'; PAntwort.Color := clred end; begin if StrToInt (EEingabe.Text) < Zahl then begin PAntwort.Caption := 'zu klein'; PAntwort.Color := clred end; begin if StrToInt (EEingabe.Text) = Zahl then PAntwort.Caption := 'Richtig!'; PAntwort.Color := clgreen end // Dies ist ein Kommentar. // Einrückungen verdeutlichen Abhängigkeiten zwischen Anweisungen // und machen den Programm-Code besser lesbar. end; allerdings kommt jetzt ein fehler bei: if StrToInt(EEingabe.Text) > Zahl then Deklaration erwartet aber if gefunden was habe ich falsch gemacht |
Re: Ratezahl 2 Delphi (leicht)
Füge ein begin nach
Delphi-Quellcode:
ein
if count = 10 then
|
Re: Ratezahl 2 Delphi (leicht)
danke... das hab ich jetzt das funktioniert...
Ich weiß das ich etwas bei form1.oncreate einfügen muss damit die Random immer anders ist nur welches befehl? Außerdem brauch ich jetzt ein button der alles zurück setzt für ein neues spiel könnt ihr mir da eventuell denkanstöße geben? |
Re: Ratezahl 2 Delphi (leicht)
Delphi-Quellcode:
Randomize;
|
Re: Ratezahl 2 Delphi (leicht)
eine frage noch außer das mit dem Button für neues spiel
warum wird mein PAntwort Button immer grün auch wenn die zahl zu groß oder zu klein ist normalerweiße sollte er nur grün werden wenn die iengegebene Zahl richtig ist: if StrToInt(EEingabe.Text) > Zahl then begin PAntwort.Caption := 'zu groß!'; PAntwort.Color := clred end; begin if StrToInt (EEingabe.Text) < Zahl then begin PAntwort.Caption := 'zu klein'; PAntwort.Color := clred end; begin if StrToInt (EEingabe.Text) = Zahl then PAntwort.Caption := 'Richtig!'; PAntwort.Color := cllime end |
Re: Ratezahl 2 Delphi (leicht)
Es waren zu viele begins bzw. an der falschen Stelle. Das Setzen der farbe grün wurde deshalb immer ausgeführt.
Delphi-Quellcode:
if StrToInt(EEingabe.Text) > Zahl then
begin PAntwort.Caption := 'zu groß!'; PAntwort.Color := clred end; if StrToInt (EEingabe.Text) < Zahl then begin PAntwort.Caption := 'zu klein'; PAntwort.Color := clred end; if StrToInt (EEingabe.Text) = Zahl then begin PAntwort.Caption := 'Richtig!'; PAntwort.Color := cllime end; |
Re: Ratezahl 2 Delphi (leicht)
Ok thanks das habe ich jetzt
hinbekommen genauso mit dem darstellen der richtigen zahl bei 10 falschen versuchen Label7.Caption := IntToStr ( Zahl); Gibt es ein befehl welcher sagt dass, das Programm kommplet neu geladen werden soll? für "Neues Spiel" |
Re: Ratezahl 2 Delphi (leicht)
Warum das es reicht doch alle Ausgabe die Eingabe und die Zählervariable zurückzusetzen und eine neue Zufallszahl zu ermitteln.
|
Re: Ratezahl 2 Delphi (leicht)
ich hab dort jetzt folgendes stehen bei Onclick beim "Neues SPiel" button
count := 0; BRaten.Enabled := true ; Label4.Caption := '' ; Zahl := Random(100); ScrollBar.Position := Zahl irgendwie klappt es abe rnoch net |
Re: Ratezahl 2 Delphi (leicht)
Was klappt nicht?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr. |
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-2025 by Thomas Breitkreuz