我正在寫一個小遊戲,裏面有一個隱藏的單詞,用戶必須猜測,char到char,單詞是什麼。編碼時,我得到了一些東西,我不會在任何地方發生,也不會在其中發生。不存在雙重遞減?
while(true)
{
if(Hue == 0)
Try -= 1;
if(Hue == 1)
Hue = 0;
GotoXY(0, 3);
printf("Inserisci una lettera maiuscola\n>");
GotoXY(1, 4);
scanf("%c", &Key);
GotoXY(0, 4);
printf(" ");
GotoXY(0, 6);
printf("Numero di tentativi rimasti: %d ", Try);
for(unsigned short Iterator = 1; Iterator < Length - 1; ++Iterator)
if(Key == UserString[Iterator])
{
for(unsigned short SecIterator = Iterator; SecIterator < Length - 1; ++SecIterator)
{
if(Key == UserString[SecIterator])
{
GotoXY(SecIterator, 1);
printf("%c", Key);
}
}
Hue = 1;
break;
}
}
色調是一個簡單的控制變量來檢查密鑰是否在單詞中。 如果它仍然是0,那麼關鍵字不在該單詞中,所以Try將它自我遞減等等。
但是發生什麼是Hue,或者是0或者1會導致Try的減少,更重要的是當嘗試減少0時,嘗試減少兩次,在代碼中均勻地寫入不會像這樣寫。 感謝您的幫助。
這些變量在哪裏聲明?所有這些變量是什麼類型? – nhgrif
Hue和Try是兩個unsigned short,UserString是char * – EnryFan
@nhgrif:哪些約定? –