Last active
April 17, 2018 17:30
-
-
Save podhy/a4095310ec627d985b1616ca084fe6e7 to your computer and use it in GitHub Desktop.
goje
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
#include <time.h> | |
#define MAX 8 | |
char pole [MAX][MAX]; | |
int poziceX=0, poziceY=0, trestnebody=10; | |
unsigned long cas1,cas2; | |
void inicializuj(){ //void je funkce, nema zadnou navratovou hodnotu, 'inicializuj' je nazev funkce,. () znaci ze to je funkce | |
//potom napisu jenom inicializuj, a ono to provede tu nasi funkci 'inicializuj' | |
int r,s; // r radek, s sloupec | |
for(r=0; r<MAX; r++) | |
for(s=0; s<MAX; s++) | |
pole[r][s]=' '; | |
pole [3][3]='#'; | |
} | |
int nahrajPoleZeSouboru(){ | |
int s,r,znak; | |
FILE *soubor; | |
soubor=fopen("sachovnice.txt","r"); | |
if (soubor!=NULL){ | |
for(r=0;r<MAX;r++){ | |
for(s=0;s<MAX;s++){ | |
pole[r][s]=getc(soubor); | |
} | |
while((znak=getc(soubor))!='\n' && znak!=EOF); | |
} | |
return 1; | |
} else { printf("Nastala chyba souboru"); | |
return 0; | |
} | |
} | |
void vypispole(){ //nova funkce 'vypis pole' | |
int r,s; | |
system("cls"); | |
for(r=0; r<MAX; r++){ //vsechno uzavru do dalsiho cyklu, kterej z jednoho vytvorenyho radku {obsah toho cyklu} vytvori osmkrat stejnej radek - sachovnici | |
for(s=0; s<MAX; s++) | |
printf("+-"); | |
printf("+\n"); | |
for(s=0; s<MAX; s++) | |
if(poziceX==s && poziceY==r) | |
printf("|*"); | |
else | |
printf("|%c",pole[r][s]); | |
printf("|\n"); | |
} | |
for(s=0; s<MAX; s++) //neco jako "pridej radek"slozeny y "+-" | |
printf("+-"); | |
printf("+\n"); | |
printf("pocet trestnych bodu %d\n", trestnebody); | |
cas2=(unsigned long)time(0); | |
printf("Cas: %ld\n",(cas2-cas1)); | |
} | |
int main(){ | |
int s; //urcim si novou promennou - muzu 's', protoze ta minula 's' promenna konci nahore u konce funkce 'void vypispole' | |
cas1=(unsigned long)time(0); | |
if(nahrajPoleZeSouboru()==0) { | |
return 0; | |
} | |
vypispole(); | |
char znak; | |
do{ | |
if(kbhit()!=0){ | |
znak=getch(); //nactu funkeni znak | |
if(znak==224) znak=getch(); //když zjistím, že je to 224, nactu znova funkcni znak, už ten konkretní | |
if ((unsigned long)time(0) - cas1 > 10) | |
{ | |
trestnebody-=((unsigned long)time(0) - cas1)) / 10; | |
cas1=(unsigned long)time(0); | |
} | |
switch (znak){ | |
case 75: | |
case 'a':if(poziceX>0 && pole[poziceY][poziceX-1]!='#') poziceX--; | |
else trestnebody--; | |
if(poziceX>0 && pole[poziceY][poziceX]!='+'); | |
else trestnebody++; | |
break; | |
case 77: | |
case'd':if(poziceX<(MAX-1) && pole[poziceY][poziceX+1]!='#') poziceX++; | |
else trestnebody--; | |
if(poziceX<(MAX) && pole[poziceY][poziceX]!='+'); | |
else trestnebody++; | |
break; | |
case 72: | |
case'w':if(poziceY>0 && pole[poziceY-1][poziceX]!='#') poziceY--; | |
else trestnebody--; | |
if(poziceY>0 && pole[poziceY][poziceX]!='+'); | |
else trestnebody++; | |
break; | |
case 80: | |
case's':if(poziceY<(MAX-1) && pole[poziceY+1][poziceX]!='#') poziceY++; | |
else trestnebody--; | |
if(poziceY<(MAX) && pole[poziceY][poziceX]!='+'); | |
else trestnebody++; | |
break; | |
} | |
} | |
vypispole(); | |
}while(znak!='q' && poziceX!=(MAX-1) || poziceY!=(MAX-1) && trestnebody>0); | |
if (trestnebody>0) printf("Gratulujeme\n" ); | |
else | |
printf("Game over\n" ); | |
getc(stdin); | |
} | |
hra.c | |
Zobrazuje se hra.c. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment