Добавил:
Kolobok
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Для специальностей ПМИ-ПМ. Лаба 1 вариант 7 / SMILEY
.CPP#ifndef LAB1_CPP_TA_1223423535356wr45
#define LAB1_CPP_TA_1223423535356wr45
#include <conio.h>
#include <graphics.h>
#include <dos.h>
#include <math.h>
#include <STDLIB.H>
#include "smiley.h"
TSmiley::TSmiley(int a, int b, int r, int c, int d, float vx, float vy)
{
SetX(a);
SetY(b);
SetVx(vx);
SetVy(vy);
SetCondition(c);
SetColor(d);
SetR(r);
}
int TSmiley::SetR(int c)
{
if (c>=10 && c<=50)
{
r=c;
return 0;
}
else
{
r=30;
return 1;
}
}
int TSmiley::SetX (int c)
{
if (c>=0 && c<getmaxx() )
{
x=c;
return 0;
}
else
{
x=0;
return 1;
}
}
int TSmiley::SetY (int c)
{
if (c<getmaxy() )
{
y=c;
return 0;
}
else
{
y=0;
return 1;
}
}
int TSmiley::SetCondition (int c)
{
if (c>=0 && c<=MaxCondition )
{
condition=c;
return 0;
}
else
{
condition=0;
return 1;
}
}
int TSmiley::SetVx(float c)
{
vx=c;
return 0;
}
int TSmiley::SetVy(float c)
{
vy=c;
return 0;
}
int TSmiley::SetAll(int a, int b, int r, int c, int d, float vx, float vy)
{
int k=0;
SetVx(vx);
SetVy(vy);
k=SetX(a);
k=k|SetY(b);
k=k|SetCondition(c);
k=k|SetColor(d);
k=k|SetR(r);
return k;
}
int TSmiley::GetX() const
{
return x;
}
int TSmiley::GetY() const
{
return y;
}
int TSmiley::GetCondition() const
{
return condition;
}
int TSmiley::SetColor(int c)
{
if (c>=0 && c<getmaxcolor() )
{
color=c;
return 0;
}
else
{
color=0;
return 1;
}
}
void End()
{
closegraph();
cout<<"Lab1V7: Created by Tishka17";
getch();
while (kbhit()) {getch();}
}
void Begin()
{
int gdriver =9 , gmode=1;
initgraph(&gdriver, &gmode, "c:\\cpp\\bgi\\");
while (kbhit()) {getch();}
}
int TSmiley::GetColor() const
{
return color;
}
void TSmiley::Paint()
{
setcolor(color);
setfillstyle(1,color);
fillellipse(x,y,30*r/30,30*r/30);
setfillstyle(1,0);
fillellipse(x-12*r/30,y-10*r/30,5*r/30,5*r/30);
fillellipse(x+12*r/30,y-10*r/30,5*r/30,5*r/30);
setcolor(0);
switch (condition)
{
case 0:
ellipse(x,y+5*r/30,180,0,20*r/30,20*r/30);
ellipse(x,y+5*r/30,180,0,20*r/30,15*r/30);
break;
case 1:
ellipse(x,y+10*r/30,180,0,20*r/30,10*r/30);
break;
case 2:
line(x-17*r/30,y+12*r/30,x+17*r/30,y+12*r/30);
break;
case 3:
ellipse(x,y+15*r/30,0,180,20*r/30,10*r/30);
break;
case 4:
/* ellipse(x,y+15*r/30,0,180,20*r/30,8*r/30);
line(x-18*r/30,y+13*r/30,x-16*r/30,y+20*r/30);
line(x-14*r/30,y+11*r/30,x-16*r/30,y+20*r/30);
line(x+14*r/30,y+11*r/30,x+16*r/30,y+20*r/30);
line(x+18*r/30,y+13*r/30,x+16*r/30,y+20*r/30);*/
line(x-18*r/30,y+13*r/30,x-12*r/30,y+18*r/30);
line(x-2*r/30,y+11*r/30,x-12*r/30,y+18*r/30);
line(x-2*r/30,y+13*r/30,x,y+20*r/30);
line(x+10*r/30,y+11*r/30,x,y+20*r/30);
line(x+10*r/30,y+11*r/30,x+20*r/30,y+15*r/30);
break;
case 5:
line(x-17*r/30,y+12*r/30,x+17*r/30,y+12*r/30);
line(x-15*r/30,y+10*r/30,x-15*r/30,y+14*r/30);
line(x-10*r/30,y+10*r/30,x-10*r/30,y+14*r/30);
line(x-5*r/30,y+10*r/30,x-5*r/30,y+14*r/30);
line(x,y+10*r/30,x,y+14*r/30);
line(x+5*r/30,y+10*r/30,x+5*r/30,y+14*r/30);
line(x+10*r/30,y+10*r/30,x+10*r/30,y+14*r/30);
line(x+15*r/30,y+10*r/30,x+15*r/30,y+14*r/30);
setcolor((color+8)%getmaxcolor());
line(x-30*r/30,y-30*r/30,x+30*r/30,y+30*r/30);
line(x+30*r/30,y-30*r/30,x-30*r/30,y+30*r/30);
}
}
TSmiley TSmiley::Move()
{
x+=vx*dt;
y+=vy*dt+4.9*dt*dt;
vy+=9.8*dt;
if (y>=getmaxy()-r-5 && vy>0 && condition<MaxCondition)
{
vy=-0.8*vy;
condition++;
}
if (condition>=MaxCondition && y>getmaxy()+r)
{
r=random(40)+10;
x=random(getmaxx()-r)+r;
y=-r;
vx=random(100)-50;
vy=0;
color=random(getmaxcolor())+1;
condition=0;
}
if (x<r+5 && vx<0) { vx=-0.8*vx;}
if (x>getmaxx()-r-5 && vx>0) { vx=-0.8*vx;}
return *this;
}
#pragma startup Begin
#pragma exit End
#endif // LAB1_CPP_TA_1223423535356wr45
Соседние файлы в папке Для специальностей ПМИ-ПМ. Лаба 1 вариант 7