Skip to content

Instantly share code, notes, and snippets.

@podhy
Last active April 17, 2018 17:30
Show Gist options
  • Save podhy/a4095310ec627d985b1616ca084fe6e7 to your computer and use it in GitHub Desktop.
Save podhy/a4095310ec627d985b1616ca084fe6e7 to your computer and use it in GitHub Desktop.
goje
#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