Стоит Windows 8 Pro, Visual Studio 2010 Express Edition . |
Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 1000 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 11:
Игра в кубик
Файл объявления классов участников игры Game.h
Файл объявления классов участников игры Game.h // Файл Game.h //--------------------------------------------------------------------------- #ifndef GameH #define GameH #include <stdlib.h> //--------------------------------------------------------------------------- #define MY_SHOW WM_USER //Макроопределение сообщения const int GAME_FINISH_SCORES = 120;// Глобальная константа enum TActiveMember{PLAYER, PARTNER}; //--------------------------------------------------------------------------- class TDice // класс Кубик { int Value; public: TDice(); // инициализировать при создании int GetDiceValue(){return Value;}// дать значение void Action(); // бросить }; //--------------------------------------------------------------------------- class TPlayer // класс Игрок { private: int CurrentScores; // текущие очки int SumScores; // суммарные очки int VictoryCount; // число выигранных партий public: TPlayer(); void Init(){CurrentScores = SumScores = 0;} int GetCurrentScores(){return CurrentScores;} int GetSumScores(){return SumScores;} void AddVictoryCount(){VictoryCount++;} int GetVictoryCount(){return VictoryCount;} void AddCurrentScores(int Scores) {CurrentScores += Scores;} void AddSumScores() {SumScores += CurrentScores; CurrentScores = 0;} }; //--------------------------------------------------------------------------- class TReferee // класс Судья { private: TActiveMember activeMember; int PlayCount; public: TReferee(){PlayCount = 0;} TPlayer Player, Partner; //создание игроков TDice Dice; //кубик void NewGame(); //новая игра void Move(); //передача хода bool GameFinish(); //проверка на конец партии int GetActiveMember(){return activeMember;} int GetPlayCount(){return PlayCount;} }; //--------------------------------------------------------------------------- #endif
Файл реализации методов Game.cpp
Файл реализации методов Game.cpp // Файл Game.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Game.h" // Подключение объявлений //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- TDice::TDice() // конструктор по умолчанию { randomize(); // инициализация random() Value = 0; } //--------------------------------------------------------------------------- void TDice::Action() { Value = random(6) + 1; } //--------------------------------------------------------------------------- TPlayer::TPlayer() { VictoryCount = 0; Init(); } //--------------------------------------------------------------------------- //новая игра void TReferee::NewGame() { PlayCount++; Player.Init(); Partner.Init(); Dice.Action(); // Бросить кубик if(Dice.GetDiceValue() <= 3) // первым ходит игрок activeMember = PLAYER; else activeMember = PARTNER; SendMessage(FindWindow("TMainForm","Игра в кубик"), MY_SHOW, 0, 0); } //--------------------------------------------------------------------------- // Передача хода void TReferee::Move() { if(GetActiveMember() == PLAYER){ Player.AddSumScores(); activeMember = PARTNER; } else{ Partner.AddSumScores(); activeMember = PLAYER; } SendMessage(FindWindow("TMainForm","Игра в кубик"), MY_SHOW, 0, 0); } //--------------------------------------------------------------------------- bool TReferee::GameFinish() //проверка на конец партии { int PlayerBalance = Player.GetSumScores(); PlayerBalance += Player.GetCurrentScores(); int PartnerBalance = Partner.GetSumScores(); PartnerBalance += Partner.GetCurrentScores(); return PlayerBalance >= GAME_FINISH_SCORES || PartnerBalance >= GAME_FINISH_SCORES; } //---------------------------------------------------------------------------
Заголовочный файл UAbout.h
Заголовочный файл UAbout.h //--------------------------------------------------------------------------- #ifndef UAboutH #define UAboutH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <Graphics.hpp> //--------------------------------------------------------------------------- class TAboutBox : public TForm { __published: // IDE-managed Components TImage *Image; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TLabel *Label5; private: // User declarations public: // User declarations __fastcall TAboutBox(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TAboutBox *AboutBox; //--------------------------------------------------------------------------- #endif
Файл реализации UAbout.cpp
Файл реализации UAbout.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "UAbout.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TAboutBox *AboutBox; //--------------------------------------------------------------------------- __fastcall TAboutBox::TAboutBox(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------