From c208d86dbc2d3422185e4b80ed2279bb437ac14b Mon Sep 17 00:00:00 2001 From: serxoz Date: Sun, 24 Oct 2021 19:00:52 +0200 Subject: [PATCH] =?UTF-8?q?coordenada=20=C3=B3=20reves,=20nas=20funci?= =?UTF-8?q?=C3=B3s=20do=20curses=20=C3=A9=20y,x=20en=20lugar=20de=20x,y?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- screen.c | 70 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/screen.c b/screen.c index 40abec2..05fdffe 100644 --- a/screen.c +++ b/screen.c @@ -1,8 +1,11 @@ #include +#include #include #include "defs.h" #define ELEFANTES 8 +const int height = 40; +const int width = 80; double distancia(struct coord c, struct coord e); struct coord fuxir(struct coord c, struct coord e); @@ -44,11 +47,16 @@ void cuadra(WINDOW * win, int width, int height){ } void generarElefantes(struct coord *buff){ + srand ( time(NULL) ); + for(int i = 0; i < ELEFANTES; ++i) { - int nMax=40; - int nMin=10; - int rX = rand() % ((nMax+1)-nMin) + nMin; - int rY = rand() % ((nMax+1)-nMin) + nMin; + int nWidthMax=width-10; + int nWidthMin=10; + int nHeightMax=height-10; + int nHeightMin=10; + + int rX = rand() % ((nWidthMax+1)-nWidthMin) + nWidthMin; + int rY = rand() % ((nHeightMax+1)-nHeightMin) + nHeightMin; struct coord elefante = {rX+2,rY+2}; buff[i] = elefante; @@ -60,9 +68,10 @@ int screen() { noecho(); curs_set(0); //cursor invisible - int height, width, start_y, start_x; - height = 40; - width = 80; + /* int height, width, start_y, start_x; */ + /* height = 40; */ + /* width = 80; */ + int start_y, start_x; start_y = 0; start_x = 0; @@ -73,14 +82,17 @@ int screen() { box(win, 0, 0); cuadra(win, width, height); - struct coord cazador = {height/3,width/2}; - mvwprintw(win, cazador.x, cazador.y, "^"); + /* struct coord cazador = {height/3,width/2}; */ + struct coord cazador = {10,10}; + mvwprintw(win, cazador.y, cazador.x, "^"); struct coord elefantes[ELEFANTES] = {0}; generarElefantes(elefantes); for(int i = 0; i < ELEFANTES; i++){ - mvwprintw(win, elefantes[i].x, elefantes[i].y, "?"); + mvwprintw(win, elefantes[i].y, elefantes[i].x, "?"); + + /* mvwprintw(win, i+1, 1, "elefante x:%i, y:%i",elefantes[i].x, elefantes[i].y); */ } while(true){ @@ -88,37 +100,37 @@ int screen() { switch(c){ case KEY_UP: /* mvwprintw(win, 1, 1, "up"); */ - if (mvwinch(win, cazador.x-1, cazador.y) == ' '){ - mvwprintw(win, cazador.x, cazador.y, " "); - cazador.x = cazador.x - 1; - mvwprintw(win, cazador.x, cazador.y, "^"); + if (mvwinch(win, cazador.y-1, cazador.x) == ' '){ + mvwprintw(win, cazador.y, cazador.x, " "); + cazador.y = cazador.y - 1; + mvwprintw(win, cazador.y, cazador.x, "^"); wrefresh(win); } break; case KEY_DOWN: /* mvwprintw(win, 1, 1, "down"); */ - if (mvwinch(win, cazador.x+1, cazador.y) == ' '){ - mvwprintw(win, cazador.x, cazador.y, " "); - cazador.x = cazador.x + 1; - mvwprintw(win, cazador.x, cazador.y, "^"); + if (mvwinch(win, cazador.y+1, cazador.x) == ' '){ + mvwprintw(win, cazador.y, cazador.x, " "); + cazador.y = cazador.y + 1; + mvwprintw(win, cazador.y, cazador.x, "^"); wrefresh(win); } break; case KEY_RIGHT: /* mvwprintw(win, 1, 1, "right"); */ - if (mvwinch(win, cazador.x, cazador.y+1) == ' '){ - mvwprintw(win, cazador.x, cazador.y, " "); - cazador.y = cazador.y + 1; - mvwprintw(win, cazador.x, cazador.y, "^"); + if (mvwinch(win, cazador.y, cazador.x+1) == ' '){ + mvwprintw(win, cazador.y, cazador.x, " "); + cazador.x = cazador.x + 1; + mvwprintw(win, cazador.y, cazador.x, "^"); wrefresh(win); } break; case KEY_LEFT: /* mvwprintw(win, 1, 1, "left"); */ - if (mvwinch(win, cazador.x, cazador.y-1) == ' '){ - mvwprintw(win, cazador.x, cazador.y, " "); - cazador.y = cazador.y - 1; - mvwprintw(win, cazador.x, cazador.y, "^"); + if (mvwinch(win, cazador.y, cazador.x-1) == ' '){ + mvwprintw(win, cazador.y, cazador.x, " "); + cazador.x = cazador.x - 1; + mvwprintw(win, cazador.y, cazador.x, "^"); wrefresh(win); } break; @@ -133,11 +145,11 @@ int screen() { struct coord nova; nova = fuxir(cazador, elefante); - if (mvwinch(win, nova.x, nova.y) == ' '){ - mvwprintw(win, elefante.x, elefante.y, " "); + if (mvwinch(win, nova.y, nova.x) == ' '){ + mvwprintw(win, elefante.y, elefante.x, " "); elefante = nova; elefantes[i] = nova; //garda no array a posicion deste elefante - mvwprintw(win, elefante.x, elefante.y, "?"); + mvwprintw(win, elefante.y, elefante.x, "?"); wrefresh(win); } }