Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <unistd.h>
- #include <pthread.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ncurses.h>
- #include <time.h>
- pthread_mutex_t nc = PTHREAD_MUTEX_INITIALIZER;
- pthread_t th[8];
- struct gracz_t{
- int ile;
- int x,y;
- };
- int licznik=-1;
- int skarb=0;
- int znaleziony=1;
- int wsp_x=0,wsp_y=0;
- void* draw_treasure(void*arg) {
- while(licznik<10)
- {
- if(znaleziony)
- {
- move(wsp_x,wsp_y);
- printw(" ");
- refresh();
- srand(time(NULL));
- int gdzie_x=rand()%COLS;
- int gdzie_y=rand()%(LINES-5);
- wsp_x=gdzie_x;
- wsp_y=gdzie_y;
- move(gdzie_y,gdzie_x);
- printw("o");
- refresh();
- znaleziony=0;
- licznik++;
- }
- struct gracz_t* gracz=(struct gracz_t*)arg;
- if(gracz->x==wsp_x&&gracz->y==wsp_y)
- {
- gracz->ile++;
- znaleziony=1;
- }
- }
- return NULL;
- }
- void* move_player(void*arg)
- {
- struct gracz_t* gracz=(struct gracz_t*)arg;
- while(licznik<10)
- {
- move(gracz->y,gracz->x);
- printw("x");
- refresh();
- usleep(100000);
- printw(" ");
- if(gracz->x<wsp_x)
- gracz->x++;
- else if(gracz->y<wsp_y)
- gracz->y++;
- else if(gracz->x>wsp_x)
- gracz->x--;
- else if(gracz->y>wsp_y)
- gracz->y--;
- }
- }
- int main() {
- initscr();
- cbreak();
- noecho();
- curs_set(0);
- srand(time(NULL));
- struct gracz_t gracze[4];
- for(int i=0;i<4;i++)
- {
- gracze[i].x=rand()%COLS;
- gracze[i].y=rand()%(LINES-5);
- }
- for(int i=0;i<4;i++)
- {
- pthread_create(&th[i+4],NULL,draw_treasure,(void*)&gracze[i]);
- pthread_create(&th[i],NULL,move_player,(void*)&gracze[i]);
- //usleep(1000000);
- }
- getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement