Игра «Пятнашки»

Автор: Пользователь скрыл имя, 13 Декабря 2011 в 17:27, курсовая работа

Описание работы

Цель проекта заключается в том, чтобы создать программу, при помощи которой пользователь сможет проверить свои логические способности, попробовав решить одну из древнейших головоломок «Пятнашки».
Программа должна быть совместима с операционной системой Windows XP, Windows Vista и Windows 7, а так же при разработке программы необходимо использовать функции Win API.

Содержание

Введение...................................................................................................................3
1 Анализ задачи 6
1.1 Цель разработки и функциональное назначение программного продукта 6
1.2 Анализ существующих аналогов продукта 7
2 Требования к программе 8
2.1 Системные требования 8
3 Инструментальные средства для создания программного продукта 10
3.1 Вычислительная система 10
3.2 Среда разработки 13
4 Проектирование 16
4.1 Концептуальный прототип 16
4.2 Описание модулей 18
4.3 Входные данные 20
4.4 Выходные данные 20
4.5 Логика программы 21
5 Тестирование и отладка 22
Заключение 23
Список литературы 24

Работа содержит 1 файл

ПЗ.docx

— 163.26 Кб (Скачать)

                  break; 

                  case 39://right

                  if (iHeroCol <3)

                  {

                        GameField[iHeroRow][iHeroCol] = GameField[iHeroRow][iHeroCol+1];

                        GameField[iHeroRow][iHeroCol+1] = 0; 

                        iHeroCol++;

                  }

                  break;

                        }

                  }

                  void Congr(HWND hWnd);

                  SendMessage(hWnd,WM_PAINT,1,0);

                  break; 

            case WM_DESTROY:

                  PostQuitMessage(0);

                  break; 

            case WM_CREATE:

                  { 

                  break

                        break;

                  }

            default:

                  return DefWindowProc(hWnd, message, wParam, lParam);

   }

   return 0;

}

/**********************************************************************/

//генерируем массив

      void NewField(int num)

      {

            srand ((unsigned)time(NULL));

      int code = 0;

      int wi=0,wj=0,count=0;

      const int Up = 1;

      const int Left = 2;

      const int Right = 3;

      const int Down = 4; 

      do

      {

                  code = rand()%4 + 1;

            switch (code)

            {

            case Up:

                  if ((wi != 0)&& (GameField[wi - 1][wj] > 0))

                  {

                        GameField[wi][wj] = GameField[wi - 1][wj];

                        GameField[wi - 1][wj] = 0;

                        wi--;

                        count++;

                  }

                  break; 

            case Down:

                  if ((wi < 3)&& (GameField[wi + 1][wj] > 0))

                  {

                        GameField[wi][wj] = GameField[wi + 1][wj];

                        GameField[wi + 1][wj] = 0;

                        wi++;

                        count++;

                  }

                  break; 

            case Left:

                  if ((wj != 0)&& (GameField[wi ][wj- 1] > 0))

                  {

                        GameField[wi][wj] = GameField[wi][wj - 1];

                        GameField[wi][wj - 1] = 0;

                        wj--;

                        count++;

                  }

                  break; 

            case Right:

                  if ((wj < 3)&& (GameField[wi ][wj+ 1] > 0))

                  {

                        GameField[wi][wj] =GameField[wi][wj + 1];

                        GameField[wi][wj + 1] = 0;

                        wj++;

                        count++;

                  }

                  break;

                  }

      } while (count < num); 

//Перемещаем свободную ячейку в позицию (4,4)

      GameField[wi][wj]=GameField[3][3];

      GameField[3][3]=0;

      iHeroRow=3; iHeroCol=3;

            } 

//Поздравления если игра собрана

void Congr(HWND hWnd)

{

      int row,sum1=0,sum2=0;

      for (row=0;row<Side;row++)

            sum1=sum1+GameField[1][row];

      for (row=0;row<Side;row++)

            sum2=sum2+GameField[4][row];  

      if ((sum1==10)&&(sum2==42)) DialogBox(hInst, (LPCTSTR)IDD_Congr, hWnd, (DLGPROC)Congr); 

} 

// обработчик сообщений.

LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{

      switch (message)

      {

            case WM_INITDIALOG:

                        return TRUE; 

            case WM_COMMAND:

                  if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)

                  {

                        EndDialog(hDlg, LOWORD(wParam));

                        return TRUE;

                  }

                  break;

      }

    return FALSE;

}

//eof

Информация о работе Игра «Пятнашки»