Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Domaci prace 01 - zadano 22.2.2020
- Vypracoval Jan Sobotka - 7.V
- Ver 1.0
- Ovladani:
- Napoveda = n
- Nahoru = w
- Dolu = s
- Levo = a
- Pravo = d
- Sikmo doleva nahoru = q
- Sikmo doprava nahoru = e
- Sikmo doleva dolu = z
- Sikmo doprava dolu = c
- Kresleni se spousti klavesou = +
- Kresleni se vypina klavesou = -
- Zmena nastaveni rotace = r
- Zmena kresiliho znaku = l
- Vymzazat plochu = Vv
- Ukonceni programu = *
- Extra funkce:
- * Pod hracim polem se zobrazuje ukazatel definovaneho pole predprocesorem
- * Pod hracim polem se zobrazuje ukazatel nastavení rotace
- * Obvod hraciho pole je ohranicen ASCII znaky pro ramecek nezavisle na nastaveni velikosti pole pres define
- * Program ma logo vyvojare
- * Program ma napovedu jez lze nacist pres logo a zpet
- *Lze vymazat hraci plochu
- */
- #include <stdio.h>
- #include <conio.h>
- #include <ctype.h>
- #include <windows.h>
- #include "!gotoxy.txt"
- #define MAX_X 80
- /* Doporucene nastaveni min 70 a max 96 */
- #define MAX_Y 21
- /* Doporucene nastaveni min 2 a max 22 (Mnoho funkci ale funguje i pri vyssim) */
- #define DEFAULTSCROLL 1
- #define DEFAULTZNAK 'x'
- int main()
- {
- int xn=2,yn=2,kres=1,linex,liney,maxx=MAX_X,maxy=MAX_Y,scroll=DEFAULTSCROLL,def,def2,def3,napon=0;
- char c, znak=DEFAULTZNAK, defch;
- //Informace pod hracim polem
- gotoxy(0,MAX_Y+4);
- printf("Nastaveni pole: MAX_X %d | MAX_Y %d \n",MAX_X-1,MAX_Y-1);
- printf("Rotace je nyni ");
- if(scroll==1){
- printf("ZAPNUTA ");
- }else if(scroll==0){
- printf("VYPNUTA ");
- }else{
- printf("CHYBNA HODNOTA! ");
- }
- printf("| Pro zmenu nastaveni ritace stiskni klavesu R \n");
- printf("Kreslici znak je nyni %c ",znak);
- printf("| Pro zmenu kresiciho znaku stiskni klavesu L \n");
- //Info o napovede
- gotoxy(0,MAX_Y+3);
- printf("Vypnuti/Zapnuti napovedy = klavesa N");
- //Horni okraj hraciho pole
- gotoxy(0,0);
- printf("%c",218);
- for(linex=0;linex<MAX_X;linex++){
- printf("%c",196);
- }
- printf("%c",191);
- //Dolni okraj hraciho pole
- gotoxy(0,MAX_Y+1);
- printf("%c",192);
- for(linex=0;linex<MAX_X;linex++){
- printf("%c",196);
- }
- printf("%c",217);
- //Levy okraj hraciho pole
- gotoxy(0,1);
- for(liney=0;liney<MAX_Y;liney++){
- printf("%c \n",179);
- }
- //Pravy okraj hraciho pole
- for(liney=0;liney<MAX_Y;liney++){
- gotoxy(MAX_X+1,1+liney);
- printf("%c \n",179);
- }
- //Logo - pismeno S
- gotoxy(MAX_X+3,1);
- printf("%c",201);
- for(def=0;def<4;def++){
- printf("%c",205);
- }
- gotoxy(MAX_X+3,2);
- printf("%c",186);
- gotoxy(MAX_X+3,3);
- printf("%c",186);
- gotoxy(MAX_X+3,4);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+7,5);
- printf("%c",186);
- gotoxy(MAX_X+7,6);
- printf("%c",186);
- gotoxy(MAX_X+3,7);
- for(def=0;def<4;def++){
- printf("%c",205);
- }
- printf("%c",188);
- //Logo pismeno O
- gotoxy(MAX_X+9,1);
- printf("%c",201);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+9,2);
- printf("%c",186);
- for(def2=3;def2<6;def2++){
- gotoxy(MAX_X+9,def2);
- printf("%c",186);
- }
- gotoxy(MAX_X+9,7);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",188);
- for(def2=2;def2<6;def2++){
- gotoxy(MAX_X+13,def2);
- printf("%c",186);
- }
- //Logo pismeno B
- gotoxy(MAX_X+15,1);
- printf("%c",201);
- for(def=0;def<2;def++){
- printf("%c",205);
- }
- printf("%c",187);
- for(def2=2;def2<6;def2++){
- gotoxy(MAX_X+15,def2);
- printf("%c",186);
- }
- gotoxy(MAX_X+15,7);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",188);
- gotoxy(MAX_X+18,2);
- printf("%c",186);
- gotoxy(MAX_X+18,3);
- printf("%c",186);
- gotoxy(MAX_X+19,4);
- printf("%c",187);
- gotoxy(MAX_X+19,5);
- printf("%c",186);
- gotoxy(MAX_X+19,6);
- printf("%c",186);
- gotoxy(MAX_X+15,4);
- printf("%c",204);
- gotoxy(MAX_X+16,4);
- for(def=0;def<2;def++){
- printf("%c",205);
- }//Logo - pismeno S
- gotoxy(MAX_X+3,1);
- printf("%c",201);
- for(def=0;def<4;def++){
- printf("%c",205);
- }
- gotoxy(MAX_X+3,2);
- printf("%c",186);
- gotoxy(MAX_X+3,3);
- printf("%c",186);
- gotoxy(MAX_X+3,4);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+7,5);
- printf("%c",186);
- gotoxy(MAX_X+7,6);
- printf("%c",186);
- gotoxy(MAX_X+3,7);
- for(def=0;def<4;def++){
- printf("%c",205);
- }
- printf("%c",188);
- //Logo pismeno O
- gotoxy(MAX_X+9,1);
- printf("%c",201);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+9,2);
- for(def2=2;def2<7;def2++){
- gotoxy(MAX_X+9,def2);
- printf("%c",186);
- }
- gotoxy(MAX_X+9,7);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",188);
- for(def2=2;def2<7;def2++){
- gotoxy(MAX_X+13,def2);
- printf("%c",186);
- }
- //Logo pismeno B
- gotoxy(MAX_X+15,1);
- printf("%c",201);
- for(def=0;def<2;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+15,2);
- printf("%c",186);
- gotoxy(MAX_X+15,3);
- printf("%c",186);
- gotoxy(MAX_X+15,5);
- printf("%c",186);
- gotoxy(MAX_X+15,6);
- printf("%c",186);
- gotoxy(MAX_X+15,7);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",188);
- gotoxy(MAX_X+18,2);
- printf("%c",186);
- gotoxy(MAX_X+18,3);
- printf("%c",186);
- gotoxy(MAX_X+19,4);
- printf("%c",187);
- gotoxy(MAX_X+19,5);
- printf("%c",186);
- gotoxy(MAX_X+19,6);
- printf("%c",186);
- gotoxy(MAX_X+15,4);
- printf("%c",204);
- gotoxy(MAX_X+16,4);
- for(def=0;def<2;def++){
- printf("%c",205);
- }
- printf("%c",202);
- //Text pod logem
- gotoxy(MAX_X+3,9);
- printf("Vytvorill Jan Sobotka");
- //Ovladani
- do{
- if(kbhit()){
- c=(getch());
- switch(c){
- case('+'):
- kres=0;
- break;
- case('-'):
- kres=1;
- break;
- case('r'):
- gotoxy(0,MAX_Y+5);
- if(scroll==1){
- scroll=0;
- }else if(scroll==0){
- scroll=1;
- }
- printf("Rotace je nyni ");
- if(scroll==1){
- printf("ZAPNUTA ");
- }else if(scroll==0){
- printf("VYPNUTA ");
- }else{
- printf("CHYBNA HODNOTA! ");
- }
- gotoxy(xn,yn);
- break;
- case('n'):
- if(napon==0){
- napon=1;
- def=0;
- //Cistic
- for(def3=1;def3<7;def3++){
- def++;
- gotoxy(MAX_X+3,def);
- for(def2=0;def2<20;def2++){
- printf(" ");
- }
- }
- //Print napovedy
- def=1;
- gotoxy(MAX_X+3,def);
- def= def+2;
- printf("Napoveda: ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Nahoru = w ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Dolu = s ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Levo = a ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Pravo = d ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Sikmo doleva nahoru = q ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Sikmo doprava nahoru = e ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Sikmo doleva dolu = z ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Sikmo doprava dolu = c ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Kresleni se spousti klavesou = + ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Kresleni se vypina klavesou = - ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Zmena nastaveni rotace = r ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Zmena nastaveni rotace = l ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Vymzazat plochu = v ");
- gotoxy(MAX_X+3,def);
- def++;
- printf("Ukonceni programu = * ");
- }else if(napon==1){
- napon=0;
- //Cistic po napovede
- def=0;
- for(def3=1;def3<17;def3++){
- def++;
- gotoxy(MAX_X+3,def);
- for(def2=0;def2<32;def2++){
- printf(" ");
- }
- }
- //Logo pismeno B
- gotoxy(MAX_X+15,1);
- printf("%c",201);
- for(def=0;def<2;def++){
- printf("%c",205);
- }
- printf("%c",187);
- for(def2=2;def2<6;def2++){
- gotoxy(MAX_X+15,def2);
- printf("%c",186);
- }
- gotoxy(MAX_X+15,7);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",188);
- gotoxy(MAX_X+18,2);
- printf("%c",186);
- gotoxy(MAX_X+18,3);
- printf("%c",186);
- gotoxy(MAX_X+19,4);
- printf("%c",187);
- gotoxy(MAX_X+19,5);
- printf("%c",186);
- gotoxy(MAX_X+19,6);
- printf("%c",186);
- gotoxy(MAX_X+15,4);
- printf("%c",204);
- gotoxy(MAX_X+16,4);
- for(def=0;def<2;def++){
- printf("%c",205);
- }//Logo - pismeno S
- gotoxy(MAX_X+3,1);
- printf("%c",201);
- for(def=0;def<4;def++){
- printf("%c",205);
- }
- gotoxy(MAX_X+3,2);
- printf("%c",186);
- gotoxy(MAX_X+3,3);
- printf("%c",186);
- gotoxy(MAX_X+3,4);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+7,5);
- printf("%c",186);
- gotoxy(MAX_X+7,6);
- printf("%c",186);
- gotoxy(MAX_X+3,7);
- for(def=0;def<4;def++){
- printf("%c",205);
- }
- printf("%c",188);
- //Logo pismeno O
- gotoxy(MAX_X+9,1);
- printf("%c",201);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+9,2);
- for(def2=2;def2<7;def2++){
- gotoxy(MAX_X+9,def2);
- printf("%c",186);
- }
- gotoxy(MAX_X+9,7);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",188);
- for(def2=2;def2<7;def2++){
- gotoxy(MAX_X+13,def2);
- printf("%c",186);
- }
- //Logo pismeno B
- gotoxy(MAX_X+15,1);
- printf("%c",201);
- for(def=0;def<2;def++){
- printf("%c",205);
- }
- printf("%c",187);
- gotoxy(MAX_X+15,2);
- printf("%c",186);
- gotoxy(MAX_X+15,3);
- printf("%c",186);
- gotoxy(MAX_X+15,5);
- printf("%c",186);
- gotoxy(MAX_X+15,6);
- printf("%c",186);
- gotoxy(MAX_X+15,7);
- printf("%c",200);
- for(def=0;def<3;def++){
- printf("%c",205);
- }
- printf("%c",188);
- gotoxy(MAX_X+18,2);
- printf("%c",186);
- gotoxy(MAX_X+18,3);
- printf("%c",186);
- gotoxy(MAX_X+19,4);
- printf("%c",187);
- gotoxy(MAX_X+19,5);
- printf("%c",186);
- gotoxy(MAX_X+19,6);
- printf("%c",186);
- gotoxy(MAX_X+15,4);
- printf("%c",204);
- gotoxy(MAX_X+16,4);
- for(def=0;def<2;def++){
- printf("%c",205);
- }
- printf("%c",202);
- //Text pod logem
- gotoxy(MAX_X+3,9);
- printf("Vytvorill Jan Sobotka");
- }
- break;
- case('v'):
- //Cisteni pole
- for(def=0;def<MAX_Y;def++){
- def2 = def + 1;
- gotoxy(1,def2);
- for(def3=0;def3<MAX_X;def3++){
- printf(" ");
- }
- }
- gotoxy(xn,yn);
- break;
- case('l'):
- //Zmena znaku
- gotoxy(0,MAX_Y+7);
- printf("Zadejte znak: ");
- znak=getch();
- gotoxy(0,MAX_Y+7);
- for(def=0;def<16;def++){
- printf(" ");
- }
- gotoxy(xn,yn);
- break;
- case('d'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- xn = xn<maxx ? ++xn : 1;
- }else if(scroll==0){
- xn = xn<maxx ? ++xn : xn;
- }
- break;
- case('a'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- xn = xn>1 ? --xn : maxx;
- }else if(scroll==0){
- xn = xn>1 ? --xn : xn;
- }
- break;
- case('w'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- yn = yn>1 ? --yn : maxy;
- }else if(scroll==0){
- yn = yn>1 ? --yn : yn;
- }
- break;
- case('s'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- yn = yn<maxy ? ++yn : 1;
- }else if(scroll==0){
- yn = yn<maxy ? ++yn : yn;
- }
- break;
- case('q'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- yn = yn>1 ? --yn : maxy;
- xn = xn>1 ? --xn : maxx;
- }else if(scroll==0){
- yn = yn>1 ? --yn : yn;
- xn = xn>1 ? --xn : xn;
- }
- break;
- case('e'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- yn = yn>1 ? --yn : maxy;
- xn = xn<maxx ? ++xn : 1;
- }else if(scroll==0){
- yn = yn>1 ? --yn : yn;
- xn = xn<maxx ? ++xn : xn;
- }
- break;
- case('z'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- xn = xn>1 ? --xn : maxx;
- yn = yn<maxy ? ++yn : 1;
- }else if(scroll==0){
- xn = xn>1 ? --xn : xn;
- yn = yn<maxy ? ++yn : yn;
- }
- break;
- case('c'):
- if(kres==1){
- putchar(' ');
- }
- if(scroll==1){
- xn = xn<maxx ? ++xn : 1;
- yn = yn<maxy ? ++yn : 1;
- }else if(scroll==0){
- xn = xn<maxx ? ++xn : xn;
- yn = yn<maxy ? ++yn : yn;
- }
- break;
- case('*'):
- break;
- default:
- c='k';
- if(c=='k')
- continue;
- }
- }
- gotoxy(xn,yn);
- putchar(znak);
- gotoxy(xn,yn);
- } while(c!='*'); // Konec -> vyskocime z cyklu
- }
Add Comment
Please, Sign In to add comment