literka R, w napisanym programie w C++
: 16 grudnia 2009, 11:45
Mam problem z uruchomieniem tego programu i poprawnym jego działaniem. Otóż literka r ma być na zielonym tle oraz napisy początkowe, a nie wiem jak to zrobić. Nie potrafię ograniczyć dobrze zmniejszania - zwiększania i przesuwania tej literki (w prawo, w lewo, do góry i na dół).
Po odczytaniu tekstu powitalnego napis: ,,podaj znak'' powinien pojawić się w nowym oknie. Pilnie potrzebuję pomocy. Z góry dziękuję za zainteresowanie tym co zechcą udzielić mi porad i poprawić błędy.
Po odczytaniu tekstu powitalnego napis: ,,podaj znak'' powinien pojawić się w nowym oknie. Pilnie potrzebuję pomocy. Z góry dziękuję za zainteresowanie tym co zechcą udzielić mi porad i poprawić błędy.
Kod: Zaznacz cały
#include<conio.h>
#include<fstream.h>
#include<dos.h>
#include<tform1.h>
void main()
{ //definicja funkcji
int xm=20,xM=60,ym=4,yM=22, zm=20,zM=40,am=15,aM=41,
XMin=1,XMax=78,YMin=2,YMax=24,i,j;
char c,cc,znak;
clrscr();
void _fastcall TForm1::Button1Click(TObject*Sender)
{
Canvas->Brush->Color=clGreen;
}
gotoxy(23,5);cout<<"Witam Pana.Przedstawiam literke R.";
gotoxy(33,15);cout<<"Literka R";
gotoxy(45,25);cout<<"Emilia Windorpska";
gotoxy(45,27);cout<<"Informatyka IIIa projekt";
getch();
cout<<"podaj znak ->";znak=getch(); //wyswietlanie znaku
_setcursortype(0); //wylaczanie kursora
do{
clrscr(); //czyszczenie ekranu
for(i=yM;i<=zM;i++) //lewa noga
{ gotoxy(zm,i);cout<<znak;}
for(i=yM; i<=aM; i++) //linia ukosna drugiej nogi
{gotoxy(am+i,i);
cout<<znak;}
for(i=xm;i<=xM;i++) //linie poziome
{gotoxy(i,ym);cout<<znak;
gotoxy(i,yM);cout<<znak;}
for(i=ym;i<=yM;i++) //linie pionowe
{gotoxy(xm,i);cout<<znak;
gotoxy(xM,i);cout<<znak;}
c=getch(); //zwiekszanie i zmniejszanie
switch(c)
{case'+':ym--;xm-=2;yM++;xM+=2;am--;zM+=4;
break;
case'-':ym++;xm+=2;ym++;yM--;xM-=2;zM-=4;am++;
break;
case 0:cc=getch(); //przesuwanie
switch(cc)
{case 75: xm--;xM--;zm--;zM--;break; //w lewo
case 72: ym--;yM--;am--;aM--;break; //w gore
case 80: ym++;yM++;am++;aM++;break; //w dol
case 77: xm++;xM++;zm++;zM++;break; //w prawo
}
if(c=='+'||c=='-'){
//||-lub
if(xm<XMin||ym<YMin||xM>XMax||yM>YMax)
//OGRANICZANIE w gore dol
{ym++;xm+=2; yM--;xM-=2;zm++;}
if(xm>xM-2||ym>yM-2) //ograniczenie na boki
{ym--;xm-=2;zm--;yM++;xM+=2;}
}
if(c==0)
{if(xm<XMin){xm++;xM++;am++;aM++;} //lewo
if(ym<YMin){ym++;yM++;zm++;zM++;} //do gory
if(xM>XMax) {xm--;xM--;am--;aM--;} //na prawo
if(yM>YMax){ym--;yM--;zm--;zM--;} //w dol
}
} }while(c!=27);
}