Найти и исправить ошибки в коде: игра "Крепс" (программа из учебника Харви и Пола Дейтелов) - 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;

Объяснение кода листинга программы

  1. В начале кода объявляется переменная gameStatus и присваивается ей значение 2.
  2. Значение переменной gameStatus представляет собой статус игры Крепс.
  3. Значение 2 указывает на то, что игра в самом начале, и еще не было сделано ни одного хода.
  4. Возможно, значение переменной gameStatus может принимать несколько значений, которые соответствуют различным состояниям игры.
  5. Возможно, в дальнейшем коде есть условные операторы, которые изменяют значение переменной gameStatus в зависимости от действий игрока.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы