[c++] rysowanie znakiem ASCII

0

Witam!

Mam do napisania program, rysowania znakiem ASCII odwróconej litery M. program niby mam, ale nie do końca działa mi opcja Przesuwania za pomocą strzałek i powiekszania / pomniejszania..
Liczę na pomoc z Waszej strony :)

Oto i me "dzieło":
//Środowisko Borland Builder 6 Pro.

 
//---------------------------------------------------------------------------

#include <iostream.h>
#include <conio.h>

const int GORA=72, DOL=80, LEWO=75, PRAWO=77;    // stała deklaracja klawiszy do ruszania


void Wstep();
void WczytajDane        (float &size, char &znak);
void Rysuj              (float size, float x, float y, char znak);
void Przesuwanie        (float size, float &x, float &y, char znak);
//---------------------------------------------------------------------------

using namespace std;

int main()
{
        float x=1,y=1;
        float size;
        char znak;
        system("cls");

        Wstep();
        WczytajDane(size, znak);
        Rysuj(size, x, y, znak);
        getch();
        Przesuwanie(size, x, y, znak);

        return 0;
}
////////////////////////////////////////////////////////////////////////////////

void Wstep()
{
_setcursortype(_NOCURSOR);
cout << "\t=========================================================== \n"
        "\t========== Program rysowania figury znakiem ASCII ========= \n"
        "\t=========================================================== \n"
        "\t========================  FIGURA  ========================= \n"
        "\t=========================================================== \n"
        "\t=========================  +++++  ========================= \n"
        "\t=========================   +     =========================  \n"
        "\t=========================    +    =========================  \n"
        "\t=========================   +     =========================  \n"
        "\t=========================  +++++  ========================= \n"
        "\t=========================================================== \n"
        "\t==================== Program umozliwia: =================== \n"
        "\t== wybor znaku kodu ASCII ================================= \n"
        "\t== wczytanie poczatkowych rozmiarow figury ================ \n"
        "\t== przesuwanie firury klawiszami strzalek ================= \n"
        "\t== powiekszanie oraz zmianiszanie figury za pomoca + i - == \n"
        "\t== ograniczenie przesuwania figury do rozmiaru ekranu ===== \n"
        "\t=========================================================== \n"
        "\t======== dowolny klawisz rozpocznie prace programu ======== \n"
        "\t=========================================================== ";
        getch();
}

////////////////////////////////////////////////////////////////////////////////

void WczytajDane (float &size, char &znak)
{
        system("cls");
        int max=22 , min=5 , rozmiar;
        do
        {
        cout << "Podaj rozmiar figury z zakresu (5-22): ";
        cin >> rozmiar;
        }
        while( rozmiar < min || rozmiar > max);
        size = rozmiar;

        cout << "Podaj znak kodu ASCII: ";
        cin >> znak;

}

////////////////////////////////////////////////////////////////////////////////

void Rysuj(float size, float x, float y, char znak)
{
_setcursortype(_NOCURSOR);
float i,j;
int k;

        system("cls");

        for(i=x , j=y , k=0 ; k < size ; i++, k++)
        {
        gotoxy(i,j), cout << znak;
        }

        for(i=x , j=y , k=0 ; k < (size/2) ; i++,j++,k++)
        {
        gotoxy(i,j), cout << znak;
        }

        for(i=x+(size/2) , j=y+(size/2) , k=0 ; k < (size/2) ; i--,j++,k++)
        {
        gotoxy(i,j), cout << znak;
        }

        for(i=x , j=(y+size)-1 , k=0 ; k < size ; i++ , k++)
        {
        gotoxy(i,j), cout << znak;
        }
        gotoxy(10,25), cout << "strzalki: przesuwanie; +/-: powieksz, zmniejsz; ESC: wyjscie";
}

////////////////////////////////////////////////////////////////////////////////

void Przesuwanie(float size, float &x, float &y, char znak) // przesuwanie figury klawiszami strzałek
{
        int zmiana = 0, max=23;
        char klawisz;


        do
        {
        klawisz = getch();

        switch (klawisz)
                {
                        case GORA:
                        {
                        y--; zmiana = 1;
                        if (y < 1)
                        {
                                y++;
                                zmiana = 0;
                        }
                        break;
                        }

                        case DOL:
                        {
                        y++; zmiana = 1;
                        if (y > max - (size-2))
                          {
                          y--;
                          zmiana = 0;
                          }
                        break;
                        }



case LEWO:
{
x--; zmiana = 1;
if (x < 1 )
{
x++;
zmiana = 0;
}
break;
}
case PRAWO:
        {
                x++; zmiana = 1;
if (x > 80 - size)
{
x--;
zmiana = 0;
}
break;
}

        case '+':
        {
        size++; zmiana=1;


                if (size < 5 || size > max)
                {
                size--; y--;
                zmiana = 0;
                }


        break;
        }

        case '-':
        {
        size--;
        zmiana=1;
        if (size < 5 || size > max)
                {
                size++;
                zmiana = 0;
                }
        break;
        }

}



if (zmiana)
{
Rysuj(size, x, y, znak); zmiana = 0;
}



}
while (klawisz != 27);

}


//---------------------------------------------------------------------------

0

sformatuj najpierw kod jak należy później pogadamy.

0

yyyy...
chyba nie załapałem, co jest nie tak... ?

to moje początki w c++, dlatego proszę o pomoc...

1 użytkowników online, w tym zalogowanych: 0, gości: 1