WUMPUS.c



// VERSION CERO DE WUMPUS

#include <curses.h>
#include <stdio.h>
#include <stdlib.h>

// INICIO DE LOS PROTOTIPOS
void salir( );
void inicio( );
void Display(int, int, int, int, int, int);			// Dibuja el ambiente de trabajo -cuadrIcula-
int Centra(int, int);



// INICIO DEL CODIGO
void Inicio() { initscr(); }
void salir() { endwin(); exit(0); }

void Display(int DimRens, int DimCols, int RAAnt, int CAAnt, int RAAct, int CAAct)
{
	int R=0, C=0;
	// LIneas horizontales
        for(C=1; C<=50; C++)
        {
                for(R=1; R<=DimRens; R+=2)
                {
                        move(R, C);
                        printw("%c",95);
                }
        }
	// LIneas verticales
        for(R=2; R<=20; R++)
        {
                for(C=1; C<=50; C+=2)
                {
                        move(R, C);
                        printw("%c",124);
                }
        }

	// Posicionamiento de wumpus
		move(R+1, C+1);
		printw("W");

	// Alguna animaciOn del agente
        for(R = 1; R <= 10; R++)
        {
                move(Centra(RAAnt, 1), Centra(CAAnt,0)); printw(" ");
                move(Centra(RAAct, 1), Centra(CAAct+1,0)); printw("A");
		RAAnt = RAAct; CAAnt = CAAct + 1;
                sleep(1);
                refresh();
        }
}

int Centra(int Pos, int Bandera)
{
        if (Bandera) Pos = (Pos%2) ? Pos : Pos+1;
        else Pos = (Pos%2) ? Pos+1 : Pos;
}

int main(void)
{
	int C=0, R=0;
	srand(time(0));
	// PosiciOn inicial del agente
	int RAAnt = rand()%21;			// nUmeros menores a 21
	int CAAnt = rand()%21;
	int RAAct = RAAnt, CAAct = CAAnt;		// RenglOn Columna Dinero


	Inicio( );

	Display(50, 50, RAAnt, CAAnt, RAAct, CAAct);
	getch();
        //sleep(3);
        salir();
}