![]() |
Programm Böse Sechs
Hey Leute
ich bin neu hier und habe ne frage zu einem Programm. Bin ein kompletter Anfänger in Lazarus und muss folgendes Programm schreiben. Eine Konsolen Anwendung reicht ich brauche keine GUI. Würfeln und die Augenzahl wird addiert. Sobald man eine 6 würfelt werden die Punkte zurückgesetzt. Man soll auch selber entscheiden können wann man die Punkte Sichern will, also mit einer Fragen. Ich bin mittlerweile so weit das er Würfelt mit einer for-schleife. Aber ich weiß nicht wie ich jetzt weiter machen soll. Wäre über hilfe sehr dankbar. Schönes Wochenende noch :) LG Coolend Quellcode:
Delphi-Quellcode:
program boese_sechs;
var i,wurf,spielstand : integer; var e,j,n: string; begin writeln('Spielregeln: Es wird solange gewuerfelt bis der Spieler eine 6 Wuerfelt oder man den Zug beendet.'); writeln('Sobald die Zahl 6 gewuerfelt wird ist der Zug vorbei und die Punkte werden auf 0 gesetzt.'); writeln('Die Punktezahl ergibt sich aus der Augenzahl des Wuerfels'); writeln('Ziel ist es die Hoehere Punktzahl zu erreichen. Die Obergrenze liegt bei 100'); writeln('Druecke Enter um das Spiel zu starten!'); readln(); randomize(); for i:=1 to 100 do wurf:=random(6)+1; if (wurf<5) then spielstand:=spielstand+wurf else writeln('Du hast eine 6 gewuerfelt und Verloren! :('); writeln('Dein Spielstand ist: ',spielstand); writeln('Willst du weiter spielen? Dann druecke "Enter"'); readln(); end. |
AW: Programm Böse Sechs
Delphi-Quellcode:
Das kann so nicht funktionieren. Da fehlen begin und end.
for i:=1 to 100 do
wurf:=random(6)+1; if (wurf<5) then spielstand:=spielstand+wurf else writeln('Du hast eine 6 gewuerfelt und Verloren! '); writeln('Dein Spielstand ist: ',spielstand); Bei ordentlicher Formatierung sieht man das. Hier wird 100x wurf := verabeitet. |
AW: Programm Böse Sechs
Ok danke aber er soll das ja nicht 100 mal machen sonder solange bis eine 6 gewürfelt wird dann ist ende.
|
AW: Programm Böse Sechs
Zitat:
Ist das vorgefertigter Code vom Lehrer? |
AW: Programm Böse Sechs
Ne ist mein erstes Programm was ich schreiben soll. Habe nur die Info bekommen:
Würfeln von 1-6, wenn eine 6 gewürfelt wurde ist es vorbei und man hat verloren. Man kann die Punkte nach jedem Wurf entweder speichern oder weiter würfeln. Habe aber allerdings keine ahnung was genau da der richtige Befehl ist. z.B Würfelt 3 würfeln Ja oder Nein? wenn ja dann alte Würfelanzahl(3) + neue zahl wenn nein dann speichern (3) Wenn 6 dann Verloren und ende. Und bis maximal 100 punkte |
AW: Programm Böse Sechs
Geh deinen Code mal Wort für Wort durch und beantworte mir dann folgende Frage:
was passiert, nachdem einmal gewürfelt wurde exakt? |
AW: Programm Böse Sechs
Genau das ist mein Problem ich habe keine ahnung was jetzt kommt.
Habe jetzt die while-schleife ausprobiert.
Delphi-Quellcode:
aber da kommt auch nichts richtiges zustande.
while (wurf<>6) do
wurf:=random(6)+1; begin spielstand:=spielstand+wurf end; writeln(spielstand); readln(); end. Ist die while schleife denn richtig oder die for-schleife ? |
AW: Programm Böse Sechs
Das zweite sieht schon besser aus, ist aber trotzdem falsch.
Lies mal Wort für Wort durch was dein Programm macht und stell das dann dem gegenüber was es machen soll. Hat euch eurer Lehrer keine Grundlagen beigebracht? |
AW: Programm Böse Sechs
Delphi-Quellcode:
Folgendes Problem:
while (wurf<>6) do
begin wurf:=random(6)+1; Writeln('Dein Wurf war: ',wurf); spielstand:=spielstand+wurf; writeln('Dein aktueller Spielstand lautet: ',spielstand,', Weitermachen? "J" oder "N"'); readln(e); if e=N then writeln('Dein aktueller Punktestand lautet: ',spielstand); if wurf=6 then spielstand:=0; writeln('Du hast verloren dein Spielstand lautet: ',spielstand); end; readln(); end. Er erkennt das mit dem "J" und "N" nicht. Wie geht das richtig? Und wenn der Wurf 6 ist soll das spiel aufhören und nicht noch weiter addieren. |
AW: Programm Böse Sechs
Zitat:
Und das andere Problem. Such mal bei Google nach delphi cancel loop. Nicht aber blind kopieren, sondern lesen und lernen. Und immer an begin end denken. Beispiel
Delphi-Quellcode:
Im obigen Beispiel würde, wenn WENN wahr ist, nur X ausgeführt werden.
// Pseudocode!
WENN keine = ahnung DANN X; Y; So ist es richtig, wenn beide ausgeführt werden sollen
Delphi-Quellcode:
Deswegen ist eine ordentliche Formatierung Pflicht!
// Pseudocode!
WENN keine = ahnung DANN BEGIN X; Y; END; Hier im Forum gibt es übrigens Delphi-Tags. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 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