私はパスカルでこのハングマンプログラムを書いてきましたが、私はこの問題をしばらくは見ていませんでした。私はもともと入力が\n
であると思っていましたが、後でwrite()
というビットがありましたが、そうではありませんでした。 a
と入力すると何が起こるのでしょうか?それはループを通り抜けてすべてのことを行いますが、何も表示されず、新しい行の文字や目に見えないもので再び通り抜けます。私はguess
が1文字しか得られないようにしようとしましたが、それは目に見えない文字で何度もループを作りました。ループ実行中(?)
誰かがここで間違っていることについてどんな種類の入力を提供することができればそれはすばらしいでしょう。 Googleは実際に一度の大きな助けではありませんでした
とにかく、ありがとうございます。
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.
"for counter:= 0 to 11 do"です。文字列は「1」に基づいています。 –
これは何も変わりません。 – roflcopter1101
次に、文字列の0番目と-1番目の要素にアクセスします。 –