Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "GraphLib.h"
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <time.h>
- struct WarmSegment
- {
- int x;
- int y;
- };
- struct MoveDirecton
- {
- int dx;
- int dy;
- };
- // head is at Warm[0]
- struct WarmSegment Warm[100] = { { 40, 10 }, { 41, 10 }, { 42, 10 }, { 43, 10 }, { 44, 10 } };
- int WarmLength = 5;
- struct{
- int x;
- int y;
- }owoc;
- // current direction
- struct MoveDirecton WarmDirection = { -1, 0 };
- void DrawScreen() //rysowanie weza
- {
- int i;
- hidecursor();
- for (i = 0; i < WarmLength; i++)
- {
- gotoxy(Warm[i].x, Warm[i].y);
- printf("@");
- gotoxy(Warm[WarmLength].x,Warm[WarmLength].y);
- printf(" ");
- }
- };
- void ruch(int s) { //ruch weza
- int b;
- for (b=WarmLength;b>0;b--) {
- Warm[b].x=Warm[b-1].x;
- Warm[b].y=Warm[b-1].y;
- }
- if (s==1)
- Warm[0].x=Warm[0].x-1;
- else if (s==2)
- Warm[0].x=Warm[0].x+1;
- else if (s==3)
- Warm[0].y=Warm[0].y-1;
- else if (s==4)
- Warm[0].y=Warm[0].y+1;
- };
- void owoce(){ //rysowanie owocu
- int i;
- owoc.x=(rand()%77)+1;
- owoc.y=(rand()%22)+2;
- for (i=0;i<WarmLength;i++)
- if (owoc.x == Warm[i].x && owoc.y == Warm[i].y)
- owoce();
- gotoxy(owoc.x, owoc.y);
- printf("o");
- };
- void Plansza(){ //rysowanie planszy
- int i;
- for (i=0;i<80;i++){
- gotoxy(i,1);
- printf("=");
- gotoxy(i,25);
- printf("=");
- }
- for (i=0;i<24;i++){
- gotoxy(0,i+1);
- printf("|");
- gotoxy(79,i+1);
- printf("|");
- }
- }
- void main() {
- int j,i,l=0;
- int kierunek1=49;
- int kierunek=1;
- char sprawdz='c';
- srand(time(NULL)); // Losowane wspolrzednych
- system("pause");
- system("cls");
- owoce();
- Plansza();
- while ((sprawdz!='k') && (l<25))
- {
- for (j=0;j<30000000;j++);
- if (kbhit()) //wybranie kierunku poruszania
- kierunek1=getch();
- if ((kierunek1=='a') && kierunek != 2)
- kierunek=1;
- else if ((kierunek1=='d') && kierunek!=1)
- kierunek=2;
- else if ((kierunek1=='w') && kierunek!=4)
- kierunek=3;
- else if ((kierunek1=='s') && kierunek!=3)
- kierunek=4;
- ruch(kierunek);
- DrawScreen();
- if ((Warm[0].x==owoc.x) &&(Warm[0].y==owoc.y)){ // Punkty sa wyswietlane jeden po drugim
- WarmLength+=1;
- owoce();
- l++;
- }
- for (i=1; i<=WarmLength; i++){ // zakazanie zjadania samego siebie
- if ((Warm[0].x==Warm[i].x) && (Warm[0].y==Warm[i].y))
- sprawdz='k';
- }
- if ((Warm[0].x==0) || (Warm[0].y==1) || (Warm[0].x==79) || (Warm[0].y==25)){ //ograniczenie planszy
- sprawdz='k';
- }
- }
- system("cls");
- if (sprawdz=='k')
- printf("Przegrana \n");
- else printf("Wygrana \n");
- pause();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement