J'ai écrit ce programme de pendu en Pascal et j'ai regardé ce problème pendant un certain temps et n'aboutissant à rien. J'ai d'abord pensé que l'entrée lisait un \n
aussi, mais un peu de write()
plus tard et ce n'était pas le cas. ce qui se passe lorsque je tape a
, il passe par la boucle et fait tout correctement, mais il passe ensuite à nouveau avec rien ou un nouveau caractère de ligne ou quelque chose qui n'est pas visible. J'ai essayé de m'assurer que guess
obtient seulement un caractère, mais cela l'a fait boucler plusieurs fois avec le caractère non-visible.Alors que la boucle s'exécutait une fois (?)
Si quelqu'un peut vous donner une idée de ce qui ne va pas ici, ce serait génial. Google n'était en fait pas une très grande aide pour une fois
de toute façon, merci pour tout ce que vous pouvez offrir.
program p1;
const
MAX_GUESSES = 6;
mysteryWord = 'abomination';
//comparetext(str1,str2);
type
word = array[0 .. 11] of char;
var
guesses : word;
counter : integer;//for multipurpose counting ;)
wrong : integer;
keepGoing : boolean;
guess : char;
exists : boolean;
begin
guesses := '***********';
wrong := 0;
keepGoing := true;
repeat
keepGoing := false;
exists := false;
writeln('your word is ' + guesses + '.');
write('You have '); //this one line is separated into 3
write(6-wrong); //because it wont allow (6-wrong) to
writeln(' wrong guesses left!');//be put in line with strings.
write('Guess a letter: ');
read(guess);
for counter := 0 to 11 do
begin
if (guess = mysteryWord[counter]) then
begin
guesses[counter-1] := guess;
exists := true;
end;
end;
if(exists = false) then wrong := wrong + 1;
for counter := 0 to 11 do
begin
if(guesses[counter] = '*') then keepGoing := true;
end;
until ((wrong >= 6) or (keepGoing = false));
end.
"pour compteur: = 0 à 11". Les chaînes sont basées sur "1". –
Cela ne change rien. – roflcopter1101
Ok. Ensuite, continuez d'accéder aux 0ème et -1ème éléments de votre chaîne. –