Найти и исправить ошибки в коде: игра "Крепс" (программа из учебника Харви и Пола Дейтелов) - C (СИ)
Формулировка задачи:
Решил проверить работу программы из учебника Харви Дейтела и Пола Дейтеле. Получается, что при ее выполнении игрок всегда выигрывает, хотя программу я перес точно. МОжет, кто-то найдет ошибку? Правила: игрок выбрасывает 2 кости. После того как кости остановятся, вычисляется сумма точек, поеврнутых вверх. Если выпавшая сумма при первом броске оказалась равной 7 или 11, то победил игрок. Если сумма при первом броске составила 2, 3 или 12, то игрок проигрывает. Если сумма первого броска равна 4,5,6,8, 9 или 10, то эта сумма становится очками игрока. Чтобы выиграть, вы должны продолжить бросать кости до тех пор, пока не наберете свои очки еще раз. Игрок проигрывает, если при очередном броске выпадает 7.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int rollDice(void);
main()
{
int gameStatus, sum, myPoint;
srand(time(NULL));
sum=rollDice();
switch(sum) {
case 7: case 11:
gameStatus=1;
break;
case 2: case 3: case 12:
gameStatus=2;
break;
default:
gameStatus=0;
myPoint=sum;
printf("Point is %d", myPoint);
break;
}
while(gameStatus==0) {
sum=rollDice();
if(sum==myPoint)
gameStatus=1;
else
if(sum==7)
gameStatus==2;
}
if(gameStatus==1)
printf("Player wins\n");
else
printf("Plauer loses\n");
return 0;
}
int rollDice(void)
{
int die1, die2, workSum;
die1=1+(rand()%6);
die2=1+(rand()%6);
workSum=die1+die2;
printf("Player rolled %d + %d = %d\n", die1, die2, workSum);
return(workSum);
}Решение задачи: «Найти и исправить ошибки в коде: игра "Крепс" (программа из учебника Харви и Пола Дейтелов)»
textual
Листинг программы
gameStatus=2;
Объяснение кода листинга программы
- В начале кода объявляется переменная
gameStatusи присваивается ей значение 2. - Значение переменной
gameStatusпредставляет собой статус игрыКрепс. - Значение 2 указывает на то, что игра в самом начале, и еще не было сделано ни одного хода.
- Возможно, значение переменной
gameStatusможет принимать несколько значений, которые соответствуют различным состояниям игры. - Возможно, в дальнейшем коде есть условные операторы, которые изменяют значение переменной
gameStatusв зависимости от действий игрока.