preload
basicPlayer

Win Pascal, Schleifen Problem :(

Comunio.de Foren-Übersicht -> Off Topic General
Autor Nachricht
Gast





BeitragVerfasst am: 30 Aug 2004 16:14   Titel: Antworten mit Zitat

Vorweg:

Bitte net auslachen, hab Informatik erst 3 Stunden gehabt!!

Nun zum Thema. Ich will das Spiel 17und4 nachbauen. Mein Problem ist jetzt, dass wenn die Kartensumme des Computers höher als 21 ist, schreibt er trotzdem er hätte gewonnen. Wenn ich das mit einer if-schleife wegmachen will, steh da immer:

Sie haben gewonnen, der Computer hat 22.
Sie haben verloren, der Computer hat 22.

Er gibt also beides aus.. wie mach ich das besser?


Hier der Code:

---------------------------------
program florianskartenspiel;

uses wincrt;

var
Kartenwert,Kartensumme,Kartenwert2,Computer,i:integer;
jn:string;



begin {Hauptprogramm};
randomize;


For i:=1 to 10 do Begin
Kartenwert:=random(11)+1;
Kartenwert2:=random(11)+1;
Computer:=Computer+Kartenwert2;
Kartensumme:=Kartensumme+Kartenwert;
writeln('Kartenwert: ',Kartenwert,' Kartensumme: ',Kartensumme);

if Kartensumme>21 then begin
writeln('');
writeln('');
writeln('Sie haben sich verzockt!!! Der Computer gewinnt!');
i:=10;
end
else begin
if Kartensumme=21 then begin
i:=10;
end;


writeln('Wollen Sie noch eine Karte ziehen? (j/n)');readln(jn);
if jn='n' then begin
if Computer<Kartensumme then
writeln('Sie haben gewonnen, der Computer hat: ',Computer);
if Kartensumme<=Computer then
writeln('Sie haben verloren, der Computer hat: ',Computer);
i:=10;


end;
end;
end;
end.

---------------------------------

Habt vielen Dank


EDIT:

achja: Copyright by P(L)USSY

<font size=-1>[ Diese Nachricht wurde geändert von: P(L)USSY am 2004-08-30 17:19 ]</font>

[ Diese Nachricht wurde geändert von: P(L)USSY am 2004-08-30 17:47 ]
Nach oben
Gast





BeitragVerfasst am: 30 Aug 2004 16:30   Titel: Antworten mit Zitat


Zitat:
if Computer
writeln('Sie haben gewonnen, der Computer hat: ',Computer);

wenn das genau so im programmcode ist, dann liegt der fehler hier. denn nach "if computer" folgt nichts, so dass das nächste writeln einfach immer ausgegeben wird.
Nach oben
Gast





BeitragVerfasst am: 30 Aug 2004 16:48   Titel: Antworten mit Zitat

ne.. irgendwie hatte das board das net angezeigt.. wenn man auf edit geklickt hat, war das da..
Nach oben
Gast





BeitragVerfasst am: 30 Aug 2004 20:51   Titel: Antworten mit Zitat

if Computer<Kartensumme then

na, ist das zeichen denn auch richtig rum, ich glaube nicht

if Computer>Kartensumme then

denke mal, dass es damit eher klappen dürfte

[ Diese Nachricht wurde geändert von: celsion am 2004-08-30 21:52 ]
Nach oben
Gast





BeitragVerfasst am: 30 Aug 2004 21:28   Titel: Antworten mit Zitat

das problem is ja, dass die meldung 2 mal ausgegeben wird und nicht wie sie ausgegeben wird.

ob nun also < oder so> ist im ersten schritt vollkommen egal


trotzdem danke @ all
Nach oben
Gast





BeitragVerfasst am: 30 Aug 2004 22:30   Titel: Antworten mit Zitat

Vll probierst es so

Zitat:

uses wincrt;

var
Kartenwert,Kartensumme,Kartenwert2,Computer,i:integer;
jn:string;



begin {Hauptprogramm};
randomize;

For i:=1 to 10 do Begin
Kartenwert:=random(11)+1;
Kartenwert2:=random(11)+1;
Computer:=Computer+Kartenwert2;
Kartensumme:=Kartensumme+Kartenwert;
writeln('Kartenwert: ',Kartenwert,' Kartensumme: ',Kartensumme);

if Kartensumme>21 then begin
writeln('');
writeln('');
writeln('Sie haben sich verzockt!!! Der Computer gewinnt!');
i:=10;
end;
if Kartensumme=21 then begin
writeln('Sie haben gewonnen!');
i:=10;
end;
if Computer>21 then begin
writeln('Sie haben gewonnen! Der Computer hat: ',Computer);
i:=10;
end;
end;

writeln('Wollen Sie noch eine Karte ziehen? (j/n)');readln(jn);
if jn='n' then begin
if Computer writeln('Sie haben gewonnen, der Computer hat: ',Computer);
if Kartensumme<=Computer then
writeln('Sie haben verloren, der Computer hat: ',Computer);
i:=10;
end;
end;
end;
end.

Vll passts. Aber mein letzter Info Unterricht ist schon 1,5Jahre her... also kein Gewähr!
Nach oben
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group