coordenada ó reves, nas funciós do curses é y,x en lugar de x,y
This commit is contained in:
parent
a497574995
commit
c208d86dbc
70
screen.c
70
screen.c
@ -1,8 +1,11 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
#define ELEFANTES 8
|
#define ELEFANTES 8
|
||||||
|
const int height = 40;
|
||||||
|
const int width = 80;
|
||||||
|
|
||||||
double distancia(struct coord c, struct coord e);
|
double distancia(struct coord c, struct coord e);
|
||||||
struct coord fuxir(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){
|
void generarElefantes(struct coord *buff){
|
||||||
|
srand ( time(NULL) );
|
||||||
|
|
||||||
for(int i = 0; i < ELEFANTES; ++i) {
|
for(int i = 0; i < ELEFANTES; ++i) {
|
||||||
int nMax=40;
|
int nWidthMax=width-10;
|
||||||
int nMin=10;
|
int nWidthMin=10;
|
||||||
int rX = rand() % ((nMax+1)-nMin) + nMin;
|
int nHeightMax=height-10;
|
||||||
int rY = rand() % ((nMax+1)-nMin) + nMin;
|
int nHeightMin=10;
|
||||||
|
|
||||||
|
int rX = rand() % ((nWidthMax+1)-nWidthMin) + nWidthMin;
|
||||||
|
int rY = rand() % ((nHeightMax+1)-nHeightMin) + nHeightMin;
|
||||||
|
|
||||||
struct coord elefante = {rX+2,rY+2};
|
struct coord elefante = {rX+2,rY+2};
|
||||||
buff[i] = elefante;
|
buff[i] = elefante;
|
||||||
@ -60,9 +68,10 @@ int screen() {
|
|||||||
noecho();
|
noecho();
|
||||||
curs_set(0); //cursor invisible
|
curs_set(0); //cursor invisible
|
||||||
|
|
||||||
int height, width, start_y, start_x;
|
/* int height, width, start_y, start_x; */
|
||||||
height = 40;
|
/* height = 40; */
|
||||||
width = 80;
|
/* width = 80; */
|
||||||
|
int start_y, start_x;
|
||||||
start_y = 0;
|
start_y = 0;
|
||||||
start_x = 0;
|
start_x = 0;
|
||||||
|
|
||||||
@ -73,14 +82,17 @@ int screen() {
|
|||||||
box(win, 0, 0);
|
box(win, 0, 0);
|
||||||
cuadra(win, width, height);
|
cuadra(win, width, height);
|
||||||
|
|
||||||
struct coord cazador = {height/3,width/2};
|
/* struct coord cazador = {height/3,width/2}; */
|
||||||
mvwprintw(win, cazador.x, cazador.y, "^");
|
struct coord cazador = {10,10};
|
||||||
|
mvwprintw(win, cazador.y, cazador.x, "^");
|
||||||
|
|
||||||
struct coord elefantes[ELEFANTES] = {0};
|
struct coord elefantes[ELEFANTES] = {0};
|
||||||
generarElefantes(elefantes);
|
generarElefantes(elefantes);
|
||||||
|
|
||||||
for(int i = 0; i < ELEFANTES; i++){
|
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){
|
while(true){
|
||||||
@ -88,37 +100,37 @@ int screen() {
|
|||||||
switch(c){
|
switch(c){
|
||||||
case KEY_UP:
|
case KEY_UP:
|
||||||
/* mvwprintw(win, 1, 1, "up"); */
|
/* mvwprintw(win, 1, 1, "up"); */
|
||||||
if (mvwinch(win, cazador.x-1, cazador.y) == ' '){
|
if (mvwinch(win, cazador.y-1, cazador.x) == ' '){
|
||||||
mvwprintw(win, cazador.x, cazador.y, " ");
|
mvwprintw(win, cazador.y, cazador.x, " ");
|
||||||
cazador.x = cazador.x - 1;
|
cazador.y = cazador.y - 1;
|
||||||
mvwprintw(win, cazador.x, cazador.y, "^");
|
mvwprintw(win, cazador.y, cazador.x, "^");
|
||||||
wrefresh(win);
|
wrefresh(win);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEY_DOWN:
|
case KEY_DOWN:
|
||||||
/* mvwprintw(win, 1, 1, "down"); */
|
/* mvwprintw(win, 1, 1, "down"); */
|
||||||
if (mvwinch(win, cazador.x+1, cazador.y) == ' '){
|
if (mvwinch(win, cazador.y+1, cazador.x) == ' '){
|
||||||
mvwprintw(win, cazador.x, cazador.y, " ");
|
mvwprintw(win, cazador.y, cazador.x, " ");
|
||||||
cazador.x = cazador.x + 1;
|
cazador.y = cazador.y + 1;
|
||||||
mvwprintw(win, cazador.x, cazador.y, "^");
|
mvwprintw(win, cazador.y, cazador.x, "^");
|
||||||
wrefresh(win);
|
wrefresh(win);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEY_RIGHT:
|
case KEY_RIGHT:
|
||||||
/* mvwprintw(win, 1, 1, "right"); */
|
/* mvwprintw(win, 1, 1, "right"); */
|
||||||
if (mvwinch(win, cazador.x, cazador.y+1) == ' '){
|
if (mvwinch(win, cazador.y, cazador.x+1) == ' '){
|
||||||
mvwprintw(win, cazador.x, cazador.y, " ");
|
mvwprintw(win, cazador.y, cazador.x, " ");
|
||||||
cazador.y = cazador.y + 1;
|
cazador.x = cazador.x + 1;
|
||||||
mvwprintw(win, cazador.x, cazador.y, "^");
|
mvwprintw(win, cazador.y, cazador.x, "^");
|
||||||
wrefresh(win);
|
wrefresh(win);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEY_LEFT:
|
case KEY_LEFT:
|
||||||
/* mvwprintw(win, 1, 1, "left"); */
|
/* mvwprintw(win, 1, 1, "left"); */
|
||||||
if (mvwinch(win, cazador.x, cazador.y-1) == ' '){
|
if (mvwinch(win, cazador.y, cazador.x-1) == ' '){
|
||||||
mvwprintw(win, cazador.x, cazador.y, " ");
|
mvwprintw(win, cazador.y, cazador.x, " ");
|
||||||
cazador.y = cazador.y - 1;
|
cazador.x = cazador.x - 1;
|
||||||
mvwprintw(win, cazador.x, cazador.y, "^");
|
mvwprintw(win, cazador.y, cazador.x, "^");
|
||||||
wrefresh(win);
|
wrefresh(win);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -133,11 +145,11 @@ int screen() {
|
|||||||
struct coord nova;
|
struct coord nova;
|
||||||
nova = fuxir(cazador, elefante);
|
nova = fuxir(cazador, elefante);
|
||||||
|
|
||||||
if (mvwinch(win, nova.x, nova.y) == ' '){
|
if (mvwinch(win, nova.y, nova.x) == ' '){
|
||||||
mvwprintw(win, elefante.x, elefante.y, " ");
|
mvwprintw(win, elefante.y, elefante.x, " ");
|
||||||
elefante = nova;
|
elefante = nova;
|
||||||
elefantes[i] = nova; //garda no array a posicion deste elefante
|
elefantes[i] = nova; //garda no array a posicion deste elefante
|
||||||
mvwprintw(win, elefante.x, elefante.y, "?");
|
mvwprintw(win, elefante.y, elefante.x, "?");
|
||||||
wrefresh(win);
|
wrefresh(win);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user