Разработка игры "Гонка на время с препятствиями"
Разработка объектно-ориентированной программы на языке С++, которая реализирует инкапсуляцию, наследование и полиморфизм. Выделение компонентов - абстрактных единиц, выполняющих определенный набор действий. Реализация основного алгоритма функционирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.11.2010 |
Размер файла | 273,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
WORD getX() {return x;}
/*-------------------------------------------------------------
- Eeann CRoadObject. Iaoia getY
- ooieoey, aica?auaao oaeouo? eii?aeiaoo Y
-------------------------------------------------------------*/
WORD getY() {return y;}
/*------------------------------------------------------------
- Eeann CRoadObject. Iia?aoi? n?aaiaiey ==
-------------------------------------------------------------*/
bool operator==(CRoadObject& a)
{
if ( (x == a.getX()) && (y == a.getY()) )
return 1;
else
return 0;
}
/*------------------------------------------------------------
- Eeann CRoadObject. Ae?ooaeuiue aano?oeoi?
-------------------------------------------------------------*/
virtual ~CRoadObject() {}
};
typedef CRoadObject* PCRoadObject; //oei- oeacaoaeu ia iauaeo eeanna CRoadObect
/************************************************************
* Eeann - aiii?iay iaoeia (oianeaaiaai io CRoadObject)
***********************************************************/
classCCar: public CRoadObject
{
private:
WORD speed; //oaeouay nei?inou
WORD fuelLevel; //oaeouee o?iaaiu oiieeaa
WORD damageLevel; //oaeouee o?iaaiu iia?a?aaiey
WORD maxSpeed; // iaeneiaeuii aicii?iay nei?inou
WORD maxFuelLev;// nmaxSpeed
WORD maxDamageLev; // iaeneiaeuii aicii?iue o?iaaiu iia?a?aaiey
WORD color; //oaao iaoeiu
// no?iee aey o?aiaiey cia?aiee iieae iauaeoa, auaiaeiuo ia ye?ai, a no?ieiaii aeaa
char* speedStr;
char* fuelLevelStr;
char* damageLevelStr;
/*-------------------------------------------------------------
- Eeann CCar. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
-pDC - oeacaoaeu ia eiioaeno ono?ienoaa, ia eoi?ii aoaao
-i?ienoiaeou ioia?a?aiea
---------------------------------------------------------------*/
virtual void draw(CDC* pDC);
public:
/*-------------------------------------------------------------
- Eeann CCar.
- eiino?oeoi?, i?ioaao?a eieoeaeecaoee iieae iauaeoa
- xx,yy - ia?aeuiua eii?aeiaou iaoeiu
- nmaxSpeed - iaeneiaeuiay neie?inou
- maxFuelLev - iaeneiaeuiue o?iaaiu oiieeaa
- nmaxDamageLev - iaeneiaeuiue o?iaaiu iia?a?aaiey
-------------------------------------------------------------*/
CCar(WORD xx=0, WORD yy=0, WORD nmaxSpeed=0, WORD nmaxFuelLev=0,
WORD nmaxDamageLev=0, WORD ccolor=0): CRoadObject(xx,yy),
maxFuelLev(nmaxFuelLev), maxSpeed(nmaxSpeed),
maxDamageLev(nmaxDamageLev), color(ccolor),
speed(0), fuelLevel(nmaxFuelLev), damageLevel(0)
{
// auaaeaiea iaiyoe iia iiey
speedStr= (char*)malloc(3);
fuelLevelStr= (char*)malloc(4);
damageLevelStr= (char*)malloc(3);
};
/*-------------------------------------------------------------
- Eeann CCar. Iaoia getSpeed
- ooieoey, aica?auaao oaeouo? nei?inou iaoeiu
-------------------------------------------------------------*/
WORD getSpeed() { return speed; }
/*-------------------------------------------------------------
- Eeann CCar. Iaoia getDamage
- ooieoey, aica?auaao oaeouee o?iaaiu iia?a?aaiey iaoeiu
-------------------------------------------------------------*/
WORD getDamage() { return damageLevel; }
/*-------------------------------------------------------------
- Eeann CCar. Iaoia getFuel
- ooieoey, aica?auaao oaeouee o?iaaiu oiieeaa
-------------------------------------------------------------*/
WORD getFuel() { return fuelLevel; }
/*-------------------------------------------------------------
- Eeann CCar. Iaoia changeSpeed
- ooieoey, eciaiyao oaeouo? nei?inou
- speedChange - aaee?eia eciaiaiey nei?inoe
-------------------------------------------------------------*/
void changeSpeed(int speedChange);
/*-------------------------------------------------------------
- Eeann CCar. Iaoia changeFuelLev
- ooieoey, eciaiyao oaeouee o?iaaiu oiieeaa
- fuelChange - aaee?eia eciaiaiey o?iaiy oiieeaa
-------------------------------------------------------------*/
void changeFuelLev(int fuelChange);
/*-------------------------------------------------------------
- Eeann CCar. Iaoia nhangeDamageLev
- ooieoey, eciaiyao oaeouee o?iaaiu iia?a?aaiey
- damageChange - aaee?eia eciaiaiey o?iaiy iia?a?aaiey
-------------------------------------------------------------*/
void changeDamageLev(int damgeChange);
/*-------------------------------------------------------------
- Eeann CCar. Iaoia isDestroyed
- ooieoey, aica?auaao true a neo?aa, anee iaoeia ?ac?ooaia
-------------------------------------------------------------*/
bool isDestroyed() {
return( damageLevel >= maxDamageLev ? 1 : 0); }
/*-------------------------------------------------------------
- Eeann CCar. Iaoia isEmpty
- ooieoey, aica?auaao true a neo?aa,anee o iaoeiu iao oiieeaa
-------------------------------------------------------------*/
bool isEmpty() {
return( fuelLevel == 0 ? 1 : 0); }
/*-------------------------------------------------------------
- Eeann CCar. Iaoia getSpeedStr
- ooieoey, aica?auaao oaeouo? nei?inou iaoeiu
-------------------------------------------------------------*/
CString getSpeedStr() {
CString s1;
_ultoa(speed,speedStr,10);
return (s1 = speedStr );
}
/*-------------------------------------------------------------
- Eeann CCar. Iaoia getDamageStr
- ooieoey, aica?auaao oaeouee o?iaaiu iia?a?aaiey iaoeiu
-------------------------------------------------------------*/
CString getDamageStr() {
CString s1;
_ultoa(damageLevel,damageLevelStr,10);
return (s1 = damageLevelStr );
}
/*-------------------------------------------------------------
- Eeann CCar. Iaoia getFuelStr
- ooieoey, aica?auaao oaeouee o?iaaiu oiieeaa
-------------------------------------------------------------*/
CString getFuelStr() {
CString s1;
_ultoa(fuelLevel,fuelLevelStr,10);
return (s1 = fuelLevelStr );
}
/*------------------------------------------------------------
- Eeann CCar. Ae?ooaeuiue aano?oeoi?
-------------------------------------------------------------*/
virtual ~CCar() {
free(speedStr);
free(fuelLevelStr);
free(damageLevelStr);
}
};
typedef CCar* PCCar;//oei- oeacaoaeu ia iauaeo eeanna CCar}
/***********************************************************
* Eeann - ai?i?iia i?aiyonoaea (oianeaaiaai io CRoadObject )
***********************************************************/
class CBar :public CRoadObject
{
protected:
bool damagedByCar; //i?eciae iia?a?aaiey iaaoaaoae iaoeiie}
/*-------------------------------------------------------------
- Eeann CBar. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
-pDC - oeacaoaeu ia eiioaeno ono?ienoaa, ia eoi?ii aoaao
-i?ienoiaeou ioia?a?aiea
---------------------------------------------------------------*/
virtual void draw(CDC* pDC);
/*-------------------------------------------------------------
- Eeann CBar. Ae?ooaeuiue iaoia onCarCollision
- ooieoey, aucuaaaony i?e "noieeiiaaiee" iaoeiu e iauaeoa e
- auiieiyao niioaaonao?uea aaenoaey iaa naiei iauaeoii e iaoeiie
---------------------------------------------------------------*/
virtual void onCarCollision(PCCar car);;
public:
/*-------------------------------------------------------------
- Eeann CBar.
- eiino?oeoi?, i?ioaao?a eieoeaeecaoee iieae iauaeoa
- xx,yy - ia?aeuiua eii?aeiaou ei?iaaie oi?ee iauaeoa
-------------------------------------------------------------*/
CBar(WORD xx=0 , WORD yy =0): CRoadObject(xx, yy), damagedByCar(false) {}
/*-------------------------------------------------------------
- Eeann CBar. Iaoia checkForCarCollision
- ooieoey, n?aaieaaao eii?aeiaou iauaeoa e iaoeiu e i?e eo
- niaiaaaiee aucuaaao ae?ooaeuiue iaoia onCarCollision
- car - oeacaaoeu ia iauaeo-aiii?io? iaoeio
-------------------------------------------------------------*/
void checkForCarCollision( PCCar car) {
//n?aaieaaai eii?aeiaou iauaeoa e iaoeiu
if ((*car) == (*this ))
onCarCollision( car ); // aucuaaai ae?o. iaoia
}
/*------------------------------------------------------------
- Eeann CBar. Ae?ooaeuiue aano?oeoi?
-------------------------------------------------------------*/
virtual ~CBar() { }
};
//typedef CBar* PCBar; //oei- oeacaoaeu ia iauaeo eeanna CBar
/************************************************************
* Eeann - oiieeaiay eaieno?a (oianeaaiaai io NBar)
***********************************************************/
class CFuelBar : public CBar
{
private:
WORD capacity;//aieinou eaieno?u n oiieeaii
/*-------------------------------------------------------------
- Eeann CFuelBar. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
-pDC - oeacaoaeu ia eiioaeno ono?ienoaa, ia eoi?ii aoaao
-i?ienoiaeou ioia?a?aiea
---------------------------------------------------------------*/
virtual void draw(CDC* pDC);
/*-------------------------------------------------------------
- Eeann CFuelBar. Ae?ooaeuiue iaoia onCarCollision
- ooieoey, aucuaaaony i?e "noieeiiaaiee" iaoeiu e iauaeoa e
- auiieiyao niioaaonao?uea aaenoaey iaa naiei iauaeoii e iaoeiie
---------------------------------------------------------------*/
virtual void onCarCollision( PCCar car );
public:
/*-------------------------------------------------------------
- Eeann CFuelBar.
- ooieoey, i?ioaao?a eieoeaeecaoee iieae iauaeoa
- xx,yy - ia?aeuiua eii?aeiaou ei?iaaie oi?ee iauaeoa
- cap - aieinou oiieeaiie eaieno?u
-------------------------------------------------------------*/
CFuelBar(WORD xx=0, WORD yy=0,WORD cap=50): CBar(xx,yy),
capacity(cap) {}
/*-------------------------------------------------------------
- Eeann CFuelBar. Iaoia getCap
- ooieoey, aica?auaao aieinou eaieno?u
-------------------------------------------------------------*/
WORD getCap();
/*------------------------------------------------------------
- Eeann CFuelBar. Ae?ooaeuiue aano?oeoi?
-------------------------------------------------------------*/
virtual ~CFuelBar() { }
};
typedef CFuelBar* PCFuelBar;
/************************************************************
* Eeann - ai?i?iay ?aciaoea (oianeaaiaai io CBar)
***********************************************************/
class CMarking: public CBar
{
private:
int markingType; //oei ?aciaoee
/*-------------------------------------------------------------
- Eeann CMarking. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
--------------------------------------------------------------*/
virtual void draw(CDC* pDC);
/*-------------------------------------------------------------
- Eeann CMarking. Ae?ooaeuiue iaoia onCarCollision
- ooieoey, aucuaaaony i?e "noieeiiaaiee" iaoeiu e iauaeoa e
- auiieiyao niioaaonao?uea aaenoaey iaa naiei iauaeoii e iaoeiie
---------------------------------------------------------------*/
virtual void onCarCollision(PCCar car );;
public:
/*-------------------------------------------------------------
- Eeann CMarking.
- eiino?oeoi?, i?ioaao?a eieoeaeecaoee iieae iauaeoa
- xx,yy - ia?aeuiua eii?aeiaou ei?iaaie oi?ee iauaeoa
- markType - oei ai?i?iie ?aciaoee(aicii?iua cia?aiey:
- 0- ?acaaeeoaeuiay,1-eaaue ioaieiee,2-i?aaue
ioaieiee, 3- oeieoiay ?a?oa)
-------------------------------------------------------------*/
CMarking(WORD xx = 0,WORD yy = 0,WORD markType = 0):
CBar(xx, yy), markingType(markType) {}
/*------------------------------------------------------------
- Eeann CMarking. Ae?ooaeuiue aano?oeoi?
-------------------------------------------------------------*/
virtual ~CMarking() { }
};
typedef CMarking* PCMarking;
/*********************************************************
*
* Oaee: roadobj.cpp
* Iienaiea:
* oaee niaa??eo eiieaiaioaoe? iaoiaia eeanna NRoadObject
*e anao aai ianeaaieeia
*
**********************************************************/
#include "stdafx.h"
#include "RoadObj.h"
//**********************************************************//
//******************* CCar implementation *********************//
//**********************************************************//
/*-------------------------------------------------------------
- Eeann CCar. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
-pDC - oeacaoaeu ia eiioaeno ono?ienoaa, ia eoi?ii aoaao
-i?ienoiaeou ioia?a?aiea
---------------------------------------------------------------*/
void CCar::draw(CDC* pDC)
{
HPEN pen = CreatePen(PS_SOLID, 1, RGB(255,255,0));
HBRUSH brush;
switch(color)
{
case 0:
brush = CreateSolidBrush(RGB(15,172,240));
break;
case 1:
brush = CreateSolidBrush(RGB(171,251,4));
break;
default:
brush = CreateSolidBrush(RGB(255,10,10));
break;
}
/*HPEN oldPen = */SelectObject(*pDC,pen);
/*HBRUSH oldBrush = */SelectObject(*pDC, brush);
//?enoai eieieo
Rectangle(*pDC,x+3*GRIDX/8,y,x+5*GRIDY/8,y+GRIDY);
//?enoai eieana
HPEN penWheel = CreatePen(PS_SOLID, 5, RGB(0,0,0));
HBRUSH brushWheel = CreateSolidBrush(RGB(15,172,240));
SelectObject(*pDC,penWheel);
SelectObject(*pDC,brushWheel);
Rectangle(*pDC,x+2,y+2,x+4,y+4);
Rectangle(*pDC,x+GRIDX-2,y+2,x+GRIDX-4,y+4);
Rectangle(*pDC,x+2,y+GRIDY-2,x+4,y+GRIDY-4);
Rectangle(*pDC,x+GRIDX-2,y+GRIDY-2,x+GRIDX-4,y+GRIDY-4);
//DeleteObject(SelectObject(*pDC,oldPen));
//DeleteObject(SelectObject(*pDC,oldBrush));
}
/*-------------------------------------------------------------
- Eeann CCar. Iaoia changeSpeed
- ooieoey, eciaiyao oaeouo? nei?inou
- speedChange - aaee?eia eciaiaiey nei?inoe
-------------------------------------------------------------*/
void CCar::changeSpeed(int speedChange)
{
//i?iaa?yai, ia auoiaeo ee iiaia cia?aiea nei?inoe ca i?aaaeu
if (speed + speedChange > maxSpeed)
speed = maxSpeed;
else if (speed + speedChange < 0)
speed = 0;
else
speed = speed + speedChange;
}
/*-------------------------------------------------------------
- Eeann CCar. Iaoia changeFuelLev
- ooieoey, eciaiyao oaeouee o?iaaiu oiieeaa
- fuelChange - aaee?eia eciaiaiey o?iaiy oiieeaa
-------------------------------------------------------------*/
void CCar::changeFuelLev(int fuelChange)
{
/*i?iaa?yai, ia auoiaeo ee iiaia cia?aiea o?iaiy oiieeaa
ca aiionoeiua i?aaaeu*/
if (fuelLevel + fuelChange > maxFuelLev) fuelLevel = maxFuelLev;
else if (fuelLevel + fuelChange < 0)
fuelLevel = 0;
else
fuelLevel = fuelLevel + fuelChange;
}
/*-------------------------------------------------------------
- Eeann CCar. Iaoia nhangeDamageLev
- ooieoey, eciaiyao oaeouee o?iaaiu iia?a?aaiey
- damageChange - aaee?eia eciaiaiey o?iaiy iia?a?aaiey
-------------------------------------------------------------*/
void CCar::changeDamageLev(int damgeChange)
{
/*i?iaa?yai, ia auoiaeo ee iiaia cia?aiea o?iaiy iia?a?aaiey
ca aiionoeiua i?aaaeu*/
if (damageLevel + damgeChange > maxDamageLev)
damageLevel = maxDamageLev;
else if (damageLevel + damgeChange < 0)
damageLevel = 0;
else
damageLevel = damageLevel + damgeChange;
}
//*********************************************************//
//****************** CBar implementation **********************//
//**********************************************************//
/*-------------------------------------------------------------
- Eeann CBar. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
-pDC - oeacaoaeu ia eiioaeno ono?ienoaa, ia eoi?ii aoaao
-i?ienoiaeou ioia?a?aiea
---------------------------------------------------------------*/
void CBar::draw(CDC* pDC)
{
COLORREF oldCol;
RECT rect = {x,y,x+GRIDX,y+GRIDY};
HPEN pen = CreatePen(PS_SOLID, 5, RGB(60,153,60));
SelectObject(*pDC,pen);
HBRUSH brush = CreateHatchBrush (HS_BDIAGONAL,RGB(200,100,10));
oldCol=SetBkColor(*pDC,RGB(30,30,30));
FillRect(*pDC,&rect,brush);
SetBkColor(*pDC,oldCol);
DeleteObject(pen);
DeleteObject(brush);
}
/*-------------------------------------------------------------
- Eeann CBar. Ae?ooaeuiue iaoia onCarCollision
- ooieoey, aucuaaaony i?e "noieeiiaaiee" iaoeiu e iauaeoa e
- auiieiyao niioaaonao?uea aaenoaey iaa naiei iauaeoii e iaoeiie
---------------------------------------------------------------*/
void CBar::onCarCollision(PCCar car)
{
(*car).changeDamageLev(+1);
}
//*********************************************************//
//****************** CFuelBar implementation ******************//
//*********************************************************//
/*-------------------------------------------------------------
- Eeann CFuelBar. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
-pDC - oeacaoaeu ia eiioaeno ono?ienoaa, ia eoi?ii aoaao
-i?ienoiaeou ioia?a?aiea
---------------------------------------------------------------*/
void CFuelBar::draw(CDC* pDC)
{
HBRUSH brush = CreateHatchBrush (HS_BDIAGONAL,RGB(20,150,120));
SelectObject(*pDC,brush);
Ellipse(*pDC,x,y,x+GRIDX,y+GRIDY);
TextOut(*pDC,x+2,y+2,"F",1);
DeleteObject(brush);
}
/*-------------------------------------------------------------
- Eeann CFuelBar. Ae?ooaeuiue iaoia onCarCollision
- ooieoey, aucuaaaony i?e "noieeiiaaiee" iaoeiu e iauaeoa e
- auiieiyao niioaaonao?uea aaenoaey iaa naiei iauaeoii e iaoeiie
---------------------------------------------------------------*/
void CFuelBar::onCarCollision( PCCar car )
{
(*car).changeFuelLev(+capacity);
}
/*-------------------------------------------------------------
- Eeann CFuelBar. Iaoia getCap
- ooieoey, aica?auaao aieinou eaieno?u
-------------------------------------------------------------*/
WORD CFuelBar::getCap() { return capacity;}
//*********************************************************//
//**************** CMarking implementation ********************//
//*********************************************************//
/*-------------------------------------------------------------
- Eeann CMarking. Ae?ooaeuiue iaoia draw
- ooieoey, io?eniauaa?uay iauaeo ia ye?aia
--------------------------------------------------------------*/
void CMarking::draw(CDC* pDC)
{
HBRUSH brush;
RECT rect1 = { x+(GRIDX/2)-3,y,x+(GRIDX/2)+3,y+(GRIDX/2) };
RECT rect2 = { x,y,x+GRIDX,y+(GRIDY/2) };
RECT rect3 = {x,y+(GRIDY/2)+1,x+GRIDX,y+GRIDY};
RECT rect4 = {x,y,x+(GRIDX/2),y+(GRIDX/2)};
RECT rect5 = {x+(GRIDX/2)+1,y+(GRIDX/2),x+GRIDX,y+GRIDY};
//io?eniauaaai ?aciaoeo a caaeneiinoe io aa oeia
switch(markingType)
{
case 0:
brush = CreateSolidBrush(RGB(255,255,255));
SelectObject(*pDC,brush);
FillRect(*pDC,&rect1,brush);
DeleteObject(brush);
break;
case 1:
brush = CreateSolidBrush(RGB(255,0,0));
SelectObject(*pDC,brush);
FillRect(*pDC,&rect2,brush);
DeleteObject(brush);
brush = CreateSolidBrush(RGB(255,255,255));
SelectObject(*pDC,brush);
FillRect(*pDC,&rect3,brush);
DeleteObject(brush);
break;
case 2:
brush = CreateSolidBrush(RGB(255,0,0));
SelectObject(*pDC,brush);
FillRect(*pDC,&rect2,brush);
DeleteObject(brush);
brush = CreateSolidBrush(RGB(255,255,255));
SelectObject(*pDC,brush);
FillRect(*pDC,&rect3,brush);
DeleteObject(brush);
break;
case 5:
brush = CreateSolidBrush(RGB(255,255,255));
SelectObject(*pDC,brush);
FillRect(*pDC,&rect4,brush);
FillRect(*pDC,&rect5,brush);
DeleteObject(brush);
break;
default :
break;
}
}
/*-------------------------------------------------------------
- Eeann CMarking. Ae?ooaeuiue iaoia onCarCollision
- ooieoey, aucuaaaony i?e "noieeiiaaiee" iaoeiu e iauaeoa e
- auiieiyao niioaaonao?uea aaenoaey iaa naiei iauaeoii e iaoeiie
---------------------------------------------------------------*/
void CMarking::onCarCollision(PCCar car )
{
switch(markingType)
{
case 1: // anee iaoeia iaaoaea ia eaaue ioaieiee
car->move(+GRIDX,0,true); // ioa?anuaaai aa ai?aai
car->changeSpeed(-2); // nie?aai aa neie?inou
break;
case 2: // anee iaoeia iaaoaea ia i?aaue ioaieiee
car->move(-GRIDX,0,true);// ioa?anuaaai aa aeaai
car->changeSpeed(-2);// nie?aai aa neie?inou
break;
}
}
/***********************************************************
*
* Oaee: road.h
* Iienaiea:
* niaa??eo iienaiea iaoiaia eeanna CRoad
*
***********************************************************/
#ifndef _ROAD_H_
#define _ROAD_H_
#include "frace_defs.h"
#include "roadobj.h"
#include "user.h"
/************************************************************
* Eeann - ai?iaa
************************************************************/
class CRoad
{
private:
WORD x,y; //eii?aeiaou eaaiai aa?oiaai oaea ia ye?aia
CBar* objs[ MAX_ROAD_OBJECTS ]; // iannea ai?i?iuo iauaeoia
CCar* carOnRoad ; // oeacaoaeu ia iauaeo-aiii?io? iaoeio ia ai?iaa
WORD width,height; // oe?eia e aunioa ia ye?aia (a aaeieoao naoee)
WORD lenght; //aeeia o?annu
WORD passed; // aeeia i?ieaaiiie ?anoe o?annu (a aaeieoao naoee)
CMyTime maxRaceTime;
/*-------------------------------------------------------------
- Eeann CRoad. Iaoia removeOldObjs
- i?ioaao?a, oaaeyao iaaeaeiua aieuoa (i?ieaaiiua) ai?i?iua
- iauaeou ec ianneaa objs[]
-------------------------------------------------------------*/
void removeOldObjs();
/*-------------------------------------------------------------
- Eeann CRoad. Iaoia generateNewObjs
- i?ioaao?a , nicaaao e neo?aeiui ia?acii ?aniieaaaao ai?i?iua
- iauaeou ia iiaii aeaeiii o?anoea o?annu
-------------------------------------------------------------*/
void generateNewObjs();
/*-------------------------------------------------------------
- Eeann CRoad Iaoia findFirstNil
- ooieoey, aic?auaao eiaaen ia?aiai naiaiaiiai yeaiaioa a
- ianneaa objs[]; a neo?aa ionoonoaey naiaiaiuo ye-ia: -1
-------------------------------------------------------------*/
int findFirstNil();
public:
/*-------------------------------------------------------------
- Eeann CRoad.
- eiino?oeoi?, i?ioaao?a eieoeaeecaoee iieae iauaeoa
- xx,yy - eii?aeiaou eaaiai aa?oiaai oaea ia ye?aia
- widthInGridX - oe?eia a aaeieoao naoee (GRIDX)
- heightInGridY- aunioa a aaeieoao naoee (GRIDY)
- lenghtInGridY- aeeia o?annu
- car - oeacaoaeu ia iauaeu-aiii?io? iaoeio ia o?anna
-------------------------------------------------------------*/
CRoad(WORD xx=0,WORD yy=0,WORD widthInGridX=10,WORD heightInGridY=20,
WORD lenghtInGridY=100,CCar* car=NULL);
/*-------------------------------------------------------------
- Eeann CRoad. Iaoia showRoad
- i?ioaao?a, ioia?a?aao ai?i?iia iieioii aianoa ni anaie
- ai?i?iuie iauaeoaie
-------------------------------------------------------------*/
void showRoad(CDC* pDC);
/*-------------------------------------------------------------
- Eeann CRoad. Iaoia listDown
- i?ioaao?a, eieoe?oao aae?aiea iaoeiu ii o?anna (i?ienoiaeo
- ia?aiauaiea anao ai?i?iuo iauaeoia aiec ii ye?aio, oaaeaiea
- auoaaoeo ec iiey aeaeiinoe iauaeoia e aaia?aoey iiauo )
-------------------------------------------------------------*/
void listDown();
/*-------------------------------------------------------------
- Eeann CRoad. Iaoia isFinished
- Ooieoey,aica?auaao true,anee o?anna i?ieaaia aiii?iie iaoeiie
- (o.a anee iaoeia oeieoe?iaaea)
-------------------------------------------------------------*/
bool isFinished() { return ((passed==lenght) ? true : false); }
/*-------------------------------------------------------------
- Eeann CRoad. Iaoia isRaceTimeElapsed
- Ooieoey,aica?auaao true,anee a?aiy iieuciaaoaey a ea?a
- i?aauneei iaeneiaeuii aiionoeiia a?aiy i?ioi?aaiey aaiiie o?annu
-userTime - iauaeo-a?aiy iieuciaaoaey a ea?a
-------------------------------------------------------------*/
bool isRaceTimeElapsed(CMyTime userTime)
{
if ( (maxRaceTime - userTime) < 100 ) return true;
else return false;
}
/*-------------------------------------------------------------
- Eeann CRoad. Iaoia getMaxRaceTimeStr
- Ooieoey,aica?auaao iaeneiaeuii aicii?iia a?aiy i?ioi?aaiey
- o?annu a no?ieiaii oi?iaoa
-------------------------------------------------------------*/
CString getMaxRaceTimeStr() { return maxRaceTime.getTimeStr(); }
/*-------------------------------------------------------------
- Eeann CRoad.
- aano?oeoi?, inaiai?aaao iaiyou, auaaeaiio? aeiaie?anee
- i?e ?ecie iauaeoa
-------------------------------------------------------------*/
~CRoad();
};
typedef CRoad* PCRoad; //oei-oeacaoaeu ia iauaeo eeanna CRoad
/***********************************************************
*
* Oaee: road.cpp
* Iienaiea:
* niaa??eo eiieaiaioaoe? iaoiaia eeanna CRoad
*
***********************************************************/
#include "stdafx.h"
#include "road.h"
#include "time.h"
#include "stdlib.h"
/*-------------------------------------------------------------
- Eeann CRoad.
Подобные документы
Введение в объектно-ориентированное программирование. Постановка задачи. Описание алгоритма решения в псевдокоде (команды в виде текста на русском языке). Исходный текст программы на С. Тестирование программы. Модификация программы. Полиморфизм.
курсовая работа [294,0 K], добавлен 08.09.2008Разработка объектно-ориентированной модели информационной подсистемы учета студентов университета во время экзаменационной сессии с помощью программы Rational Rose 2000, с использованием языка UML. Порядок генерации программного кода на языке С++.
курсовая работа [689,9 K], добавлен 21.06.2011Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Разработка объектно-ориентированной модели животного, которая объясняется построением модели игры Terrarium. Модель построена на базе концепций объектно-ориентированного программирования. Разработка компонента, моделирующего поведение животного.
курсовая работа [23,2 K], добавлен 30.11.2008Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.
курсовая работа [2,1 M], добавлен 23.02.2011Что такое класс в объектно-ориентированном программировании. Какую структуру имеет модуль в С++. Какими средствами осуществляется консольный ввод данных в языке Си, С++. Инкапсуляция, полиморфизм, наследование. Использование библиотеки "
".
контрольная работа [1,9 M], добавлен 13.11.2016Разработка объектно-ориентированной подсистемы складского учета для фирмы "КавказЮгАвто". Краткая характеристика предметной области. Построение диаграмм размещения, прецедентов, последовательности, компонентов и классов. Генерация программного кода C++.
курсовая работа [6,6 M], добавлен 26.06.2011Принципы и алгоритмы обработки прерываний. Набор действий по реализации этапов обработки прерываний микропроцессора. Разработка структуры и алгоритма резидентной программы. Реализация программы на языке Ассемблер, методы её отладки и тестирования.
курсовая работа [348,7 K], добавлен 22.12.2014Изучение принципов объектно-ориентированного программирования. Понятие класса в Delphi, в основе которых лежат три фундаментальные принципы - инкапсуляция, наследование и полиморфизм. Разработка классов транспортных средств и структур классов (кошки).
курсовая работа [29,7 K], добавлен 29.10.2011Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.
курсовая работа [1,0 M], добавлен 26.12.2013