AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm Böse Sechs

Ein Thema von Coolend · begonnen am 17. Dez 2017 · letzter Beitrag vom 17. Dez 2017
Antwort Antwort
Coolend

Registriert seit: 17. Dez 2017
5 Beiträge
 
#1

Programm Böse Sechs

  Alt 17. Dez 2017, 17:20
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.

Geändert von TBx (18. Dez 2017 um 11:12 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 17:38
Delphi-Quellcode:
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);
Das kann so nicht funktionieren. Da fehlen begin und end.

Bei ordentlicher Formatierung sieht man das.
Hier wird 100x wurf := verabeitet.
  Mit Zitat antworten Zitat
Coolend

Registriert seit: 17. Dez 2017
5 Beiträge
 
#3

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 17:41
Ok danke aber er soll das ja nicht 100 mal machen sonder solange bis eine 6 gewürfelt wird dann ist ende.
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 17:46
Zitat:
Ok danke aber er soll das ja nicht 100 mal machen sonder solange bis eine 6 gewürfelt wird dann ist ende.
Dann musst du das auch genau so hinschreiben. Da steht aber von 1 bis 100 aktuell.

Ist das vorgefertigter Code vom Lehrer?
  Mit Zitat antworten Zitat
Coolend

Registriert seit: 17. Dez 2017
5 Beiträge
 
#5

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 17:50
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
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 17:52
Geh deinen Code mal Wort für Wort durch und beantworte mir dann folgende Frage:

was passiert, nachdem einmal gewürfelt wurde exakt?
  Mit Zitat antworten Zitat
Coolend

Registriert seit: 17. Dez 2017
5 Beiträge
 
#7

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 18:09
Genau das ist mein Problem ich habe keine ahnung was jetzt kommt.
Habe jetzt die while-schleife ausprobiert.
Delphi-Quellcode:
while (wurf<>6) do
wurf:=random(6)+1;
begin
  spielstand:=spielstand+wurf
end;
writeln(spielstand);
readln();
end.
aber da kommt auch nichts richtiges zustande.
Ist die while schleife denn richtig oder die for-schleife ?

Geändert von TBx (18. Dez 2017 um 11:15 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 18:11
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?
  Mit Zitat antworten Zitat
Coolend

Registriert seit: 17. Dez 2017
5 Beiträge
 
#9

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 18:30
Delphi-Quellcode:
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.
Folgendes Problem:
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.

Geändert von TBx (18. Dez 2017 um 11:16 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

AW: Programm Böse Sechs

  Alt 17. Dez 2017, 18:36
Zitat:
if e=N then
Überlege mal, von welchem Datentyp deine Eingabe ist. Wie vergleicht man sowas dann?

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:
 // Pseudocode!
WENN keine = ahnung DANN
 X;
 Y;
Im obigen Beispiel würde, wenn WENN wahr ist, nur X ausgeführt werden.
So ist es richtig, wenn beide ausgeführt werden sollen
Delphi-Quellcode:
 // Pseudocode!
WENN keine = ahnung DANN
 BEGIN
  X;
  Y;
 END;
Deswegen ist eine ordentliche Formatierung Pflicht!
Hier im Forum gibt es übrigens Delphi-Tags.
  Mit Zitat antworten Zitat
Antwort Antwort


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:20 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