literka R, w napisanym programie w C++

Potrzebujesz pomocy z C, C++, perl, python, itp.
kamaemili78
Posty: 1
Rejestracja: 16 grudnia 2009, 11:28

literka R, w napisanym programie w C++

Post autor: kamaemili78 »

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.

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);
}
giaur
Member
Posty: 1915
Rejestracja: 25 maja 2007, 22:16

Post autor: giaur »

Chłopcze, a może chociaż zadasz sobie minimum trudu i poczytasz o tym jak się programuje gui w Borlandzie? Ten kod jest tak bezsensowny że nie ma tu co poprawiać - wez dowolny tutorial do C++ Buildera a dowiesz się jak się wziąć za to zadanie

Co tu w ogóle robią odwołania do metod komponentów VCL skoro piszesz aplikację konsolową?
ODPOWIEDZ