- •«Московский технический университет связи и информатики»
- •Курсовая работа
- •1. Постановка задачи 2
- •Постановка задачи
- •Логическая структура программы
- •2.1 Класс рыбы Fish
- •2.3 Класс птицы Bird
- •2.2 Класс рыбака на пирсе Fisher
- •2.4 Класс рыбака на лодке Fisherboat
- •2.5 Класс дождя Rain
- •2.6 Класс внешнего мира GameEnvironment
- •2.7 Главная часть приложения - класс «MyForm»
- •3.7 Класс MyForm
- •Текст программы
- •4.1 Класс Fisher
- •4.2 Класс Fisherboat
- •4.3 Класс Fish
- •4.4 Класс Bird
- •4.5 Класс Rain
- •4.6 Класс GameEnvironment
- •4.7 Класс MyForm
- •Результаты тестирования программы
3.7 Класс MyForm
DrawFisher
Рисунок 20 - Схема алгоритма метода DrawFisher
DrawScreen
Рисунок 21 - Схема алгоритма метода DrawScreen
Graphics
Рисунок 22 - Схема алгоритма метода Graphics
Timer_Tick
Рисунок 23 - Схема алгоритма метода Timer_Tick
OnEventCatchFish
Рисунок 24 - Схема алгоритма метода OnEventCatchFish
btn_mltp_Click
Рисунок 25 - Схема алгоритма метода btn_mltp_Click
OnEventDeleteBoat
Рисунок 26 - Схема алгоритма метода OnEventDeleteBoat
CheckWin
Рисунок 27 - Схема алгоритма метода CheckWin
UpdateFishStr
Рисунок 28 - Схема алгоритма метода UpdateFishStr
UpdateTimeStr
Рисунок 29 - Схема алгоритма метода UpdateTimeStr
btn_exit_Click
Рисунок 30 - Схема алгоритма метода btn_exit_Click
btn_hide_Click
Рисунок 31 - Схема алгоритма метода btn_hide_Click
btn_newFishboat_Click
Рисунок 32 - Схема алгоритма метода btn_newFishboat_Click
SetFishboatButtons
Рисунок 33 - Схема алгоритма метода SetFishboatButtons
btn_delFishboat_Click
Рисунок 34 - Схема алгоритма метода btn_delFishboat_Click
btn_changePtr_ Click Рисунок 35 - Схема алгоритма метода btn_changePtr_Click
Рисунок 36 - Схема алгоритма метода btn_changePtr_Click
btn_changePos_Click
Рисунок 37 - Схема алгоритма метода btn_changePos_Click
TimerTickAction
Рисунок 38 - Схема алгоритма метода TimerTickAction
Рисунок 39 - Схема алгоритма метода TimerTickAction
btn_restart_Click
Рисунок 40 - Схема алгоритма метода btn_restart_Click
btn_SetNotRestartButtons_Click
Рисунок 41 - Схема алгоритма метода btn_SetNotRestartButtons_Click
Текст программы
4.1 Класс Fisher
ref class Fisher
{
public:
delegate void Handler();
delegate void DeleteHandler(Object^ sender);
event Handler^ EventStopWork;
event DeleteHandler^ EventDeleteObject;
Fisher() {};
Fisher(Rain^ rain) {
worktime = 60 * FMAN_WORKHOURS;
state = 4;
lvl = 1;
xPos = 135;
yPos = PIRSE_Y;
fishCount = 0;
catching = 1;
xPosPtr = PTR_XPOS;
EventStopWork += gcnew Fisher::Handler(this, &Fisher::OnWorkStop);
rain->EventRainStart += gcnew Rain::Handler(this, &Fisher::OnWorkStop);
};
~Fisher() {};
void Catch() {
catching = 1;
fishCount += 1;
}
virtual void Move() {
yPosPtr += rand() % 3 - 1;
worktime -= 1;
}
void OnWorkStop() {
EventDeleteObject(this);
}
property int fishCount {
int get() { return _fishCount; }
void set(int value) { _fishCount = value; }
}
property int catching {
int get() {
return _catching;
}
void set(int value) {
_catching = value;
if (_catching) lvl = _lvl;
}
}
property int state {
int get() {
if (_catching) _state++;
if (_state > 4) _catching = 0;
if (!_catching && _state > 1) _state--;
return _state;
}
void set(int value) {
_state = value;
}
}
property int lvl {
int get() { return _lvl; }
void set(int value) {
_lvl = value;
ptrLen = 20 + (_lvl - 1) * 42 + rand() % 84;
yPosPtr = yPos + 15;
}
}
property int ptrLen {
int get() { return _ptrLen; }
void set(int value) {
_ptrLen = value;
}
}
property int xPosPtr {
int get() { return _xPosPtr; }
void set(int value) {
_xPosPtr = value;
}
}
property int yPosPtr {
int get() { return _yPosPtr; }
void set(int value) {
_yPosPtr = value;
if (_yPosPtr > 150) _yPosPtr = 150;
else if (_yPosPtr < 130) _yPosPtr = 130;
}
}
property int xPos {
int get() { return _xPos; }
void set(int value) { _xPos = value; }
}
property int yPos {
int get() { return _yPos; }
void set(int value) { _yPos = value; }
}
property int worktime {
int get() { return _wtime; }
void set(int value) {
_wtime = value;
if (_wtime <= 0) EventStopWork();
}
}
protected:
int _xPos; int _yPos;
int _wtime;
int _state;
int _catching;
int _xPosPtr;
int _yPosPtr;
int _fishCount;
int _ptrLen; int _lvl;
};