Beispiel #1
0
void SDL_Jugador::entrada(SDL_Surface*s){
  SDL_Event evento;
  Mapa& mapa = *Mapa::getInstance();
  Personaje* personaje=NULL;

  for( ; ; ) {
    while(SDL_PollEvent(&evento)) {
      if(evento.type == SDL_KEYDOWN) {
	if(evento.key.keysym.sym == SDLK_ESCAPE)
	  return;
      }
      if(evento.type == SDL_QUIT)
	return;

      if(evento.type == SDL_MOUSEBUTTONDOWN) {
	printf("X: %d - Y: %d\n", evento.button.x,evento.button.y);
	if(evento.button.button == 1){
	  seleccion = mapa((int)evento.button.x/mapa.getLongCasilla(),(int)evento.button.y/mapa.getLongCasilla())->getContenido();
	  personaje=dynamic_cast<Personaje*>(seleccion);
	} else {
	  if ( personaje ) personaje->caminar(evento.button.x,evento.button.y);
	}
      }
    }
    SDL_Delay(FREC_INPUT);
  }
}
/**
 * @brief VentanaJugador::VentanaJugador
 * @param parent
 * Constructor que inicializa los threads de envio de datos y recepcion de datos.
 * A su vez seta las caraceristicas basicas de la ventana para su oportuna visualizacion.
 */
VentanaJugador::VentanaJugador(QWidget *parent)
    : QMainWindow(parent)
{
    this->iniciarThreadsCliente();
    this->mira = new QLabel(this);
    QPixmap mapa("/home/diego/Escritorio/CrazyDuckHunt/ClientePrincipal-ServidorSecundario/Mira.png");

    this->mira->setPixmap(mapa);
    this->mira->setGeometry(0,0,mapa.width(),mapa.height());
    this->mira->show();
    this->show();
}
int main(int argc, char** argv) {
    ReferenceCountPtr<Mapa> mapa(new Mapa());

    ReferenceCountPtr<Continente> america(new Continente("AMERICA"));
    ReferenceCountPtr<Continente> asia(new Continente("ASIA"));
    ReferenceCountPtr<Continente> europa(new Continente("EUROPA"));

    ReferenceCountPtr<Pais> argentina(new Pais("ARGENTINA"));
    ReferenceCountPtr<Pais> bolivia(new Pais("BOLIVIA"));

    
    argentina->agregarAdyacente(bolivia);
    
    america->agregarPais(argentina);

    mapa->agregarPais(argentina);
    mapa->agregarPais(bolivia);

    mapa->agregarContinente(america);
    mapa->agregarContinente(asia);
    mapa->agregarContinente(europa);

    MapaParser parser;

    parser.saveMap("mapa.xml", mapa);

    ReferenceCountPtr<Pais> pais = mapa->obtenerPais("ARGENTINA");
    ReferenceCountPtr<Continente> continente =
        mapa->obtenerContinente("EUROPA");
    if (pais != NULL) {
        std::cout << "Contiene Argentina" << std::endl;
    }
    if (continente != NULL) {
        std::cout << "Contiene Europa" << std::endl;
    }

    ReferenceCountPtr<Mapa> otroMapa = parser.loadMap("mapa.xml");

    Mapa::IteradorPais iterPais;

    for (iterPais = otroMapa->primerPais(); iterPais != otroMapa->ultimoPais();
        ++iterPais) {
        ReferenceCountPtr<Pais> actual = *iterPais;
        std::cout << actual->getNombre() << std::endl;
    }

    return 0;
}
Beispiel #4
0
pair<int, int>doub_gv(String st) {
	String at = "", bt = "";
	bool fl = 0;
	for (int i = 1; i <= st.Length(); ++i) {
		if (st[i] == ' ') {
			fl = 1;
			continue;
		}
		if (fl)
			bt += st[i];
		else
			at += st[i];
	}

	return mapa(gv(at), gv(bt));
}
Beispiel #5
0
int main(int argc, char *argv[]){

    struct Coordenadas jugador = {1, 1}; //posicion inicial del jugador
    char tablero[FILAS][COL];
    int user_input;

    initscr();
    halfdelay(1);
    keypad(stdscr, TRUE);
    noecho();
    curs_set(0);
    mapa(tablero);
    inicializar(tablero);
    while ((user_input = getch()) != ESC){	
	mover(user_input, &jugador, tablero);
	pintar_mapa(tablero, jugador);
    }
    endwin();
    return EXIT_SUCCESS;

}
Beispiel #6
0
// ustvari varnostno kopijo
void prijava::varnostna_kopija() {

		QString mapa_za_shranjevanje = "";

		baza nova_baza;

		QString ime_baze = "";
		ime_baze = nova_baza.get_path();

		if ( ime_baze.contains("/") ) {
			ime_baze = ime_baze.right(ime_baze.length() - ime_baze.lastIndexOf("/") -1 );
		}
		if ( ime_baze.contains(".") ) {
			ime_baze = ime_baze.left(ime_baze.lastIndexOf("."));
		}

		// v bazi poiscemo pot do mesta shranjevanja podatkov
		QSqlQuery sql_pot;
		sql_pot.prepare("SELECT * FROM nastavitve WHERE naziv LIKE '" + pretvori("pot") + "'");
		sql_pot.exec();
		if ( sql_pot.next() ) {
			mapa_za_shranjevanje = prevedi(sql_pot.value(sql_pot.record().indexOf("vrednost")).toString());
		}

		if ( mapa_za_shranjevanje != "" ) { // varnostno kopiranje podatkov izvedemo zgolj v primeru, da obstaja mapa za shranjevanje podatkov

			// ustvari mapo za shranjevanje baze podatkov

			QDir mapa(mapa_za_shranjevanje);
			if ( mapa.exists() ) {
				mapa.mkdir("arhiv"); // osnovna mapa
				mapa.cd("arhiv");
				mapa.mkdir("dnevni"); // dnevni back-up
				mapa.mkdir("mesecni"); // mesecni back-up

				/**
					* naredi mesecni arhiv
					* pogleda, ali ze obstaja arhivska datoteka za tekoci mesec
					* ce obstaja, jo izbrise in napravi novo za tekoci mesec
					* ce ne obstaja to pomeni, da smo na zacetku meseca
					* sedaj naredi novi mesecni arhiv in hkrati izbrise dnevni arhiv "prejsnjega"
					* meseca, ki sedaj ni vec aktualen (drugace bomo kmalu imeli nepregledno mnozico baz)
					* to pa ni smiselno
					**/

				QFile f_baza_org;
				f_baza_org.setFileName(nova_baza.get_path());

				QFile f_baza_mesec;
				f_baza_mesec.setFileName(mapa_za_shranjevanje + "/arhiv/mesecni/base-" + ime_baze + "-" + QDate::currentDate().toString("yyyy'-'MM") + ".bz.bck");

				if ( f_baza_mesec.exists() ) { // ce obstaja, smo v tekocem mesecu in zgolj zbrisemo trenutno bazo in jo nadomestimo z novo
					f_baza_mesec.remove();
					f_baza_org.copy(mapa_za_shranjevanje + "/arhiv/mesecni/base-" + ime_baze + "-" + QDate::currentDate().toString("yyyy'-'MM") + ".bz.bck");
				}
				else { // gre za nov mesec, baze ne brisemo, brisemo pa vse baze v arhivu za
					f_baza_org.copy(mapa_za_shranjevanje + "/arhiv/mesecni/base-" + ime_baze + "-" + QDate::currentDate().toString("yyyy'-'MM") + ".bz.bck");

					// poiscemo vse baze iz dnevnega arhiva
					mapa.cd("dnevni");

					QStringList seznam_arhiva = mapa.entryList();

					for ( int a = 0; a < seznam_arhiva.size(); a++ ) {
						QFile f_arhiv;
						f_arhiv.setFileName(mapa_za_shranjevanje + "/arhiv/dnevni/" + seznam_arhiva.at(a).toUtf8());
						f_arhiv.remove();
					}

				}

				/**
					* naredimo dnevni arhiv tako, da shranimo bazo kot datoteko s tekoco zadnjo
					* identifikacijsko stevilko
					* arhiv je samo za tekoci mesec, za prejsnje datoteke izbrisemo
					**/
				int i = 1;
				while ( !f_baza_org.copy(mapa_za_shranjevanje + "/arhiv/dnevni/base-" + ime_baze + "-" + QDate::currentDate().toString("yyyy'-'MM'-'dd") + "-" + QString::number(i, 10) + ".bz.bck") ) {
					i++;
				}
			}

		}

}
Beispiel #7
0
bool Personaje::desplazar(){
  unsigned int mapaX, mapaY;
  unsigned int antX, antY;
  Mapa& mapa = *Mapa::getInstance();
  this->estado=CAMINANDO;
  
  float alfa=atan2(((double)destY-(double)y),((double)destX-(double)x));

  if ( alfa > -0.375 && alfa < 0.375 ){
    this->orientacion=E;
    //    printf("Mira al Este.\n");
  } else if ( alfa < -0.375 && alfa > -1.125 ){
    this->orientacion=NE;
    //printf("Mira al NorEste.\n");
  } else if ( alfa < -1.125  && alfa > -1.875 ) {
    this->orientacion=N;
    //printf("Mira al Norte.\n");
  } else if ( alfa < -1.875 && alfa > -2.625 ){
    this->orientacion=NO;
    //printf("Mira al NorOeste.\n");
  } else if ( alfa < -2.625 || alfa > 2.625  ){
    this->orientacion=O;
    //printf("Mira al Oeste.\n");
  }  else if ( alfa < 2.625 && alfa > 1.875 ){
    this->orientacion=SO;
    //printf("Mira al SudOeste.\n");
  } else if ( alfa < 1.875 && alfa > 1.125 ){
    this->orientacion=S;
    // printf("Mira al Sur.\n");
  } else /* if ( alfa < 1.125  && alfa >0.375 ) */ {
    this->orientacion=SE;
    //printf("Mira al SudEste.\n");
  }

  int flagX=1;
  int flagY=1;
  
  while ( (flagX == 1) || (flagY == 1) ) {
    // 
    antY=y;
    antX=x;

    if ( (x > destX+velocidad) || (x < destX-velocidad) ) {
      x+=destX>x?velocidad:-velocidad;
    } else {
      flagX=0;
    }

    if ( (y > destY+velocidad) || (y < destY-velocidad) ) {
      y+=destY>y?velocidad:-velocidad;
    } else {
      flagY=0;
    }

    mapaX=x/mapa.getLongCasilla();
    mapaY=y/mapa.getLongCasilla();
    
    Terreno* t=mapa(mapaX,mapaY);
    if ( t != casilla ) {
      if ( !cambiarCasilla(t) ) {
	x=antX;
	y=antY;
	//	return 0;
      }
    }
    SDL_Delay(70);
  }
  this->estado=QUIETO;
  return 1;
}
int main()
{
	HANDLE kolor;
	kolor = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(kolor, 15 | FOREGROUND_INTENSITY);

	int numerg;
	int x, y, i, j, kgracza=0;
	int kol = 0;
	int k1 = 12, k2 = 12, k3 = 12, k4 = 12, k5 = 12, k6 = 12, k7 = 12;
	int pnk[13][8];
	int tmp=0, tmp2=0;
	int wygrany=0;
	int ponowna=0;
	mapa();

	gotoxy(50, 1);
	printf("4 W RZEDZIE");

		for (i = 1; i < 43; i++)
		{
			if (kgracza == 0)
			{

				gotoxy(40, 4);

				Wybor(kol, k1, k2, k3, k4, k5, k6, k7, tmp, tmp2);

				pnk[tmp2][tmp] = 1;
				Sprawdzanie(kol, wygrany, tmp, tmp2, pnk);
				kgracza = 1;
			}
			else
			{
				gotoxy(40, 4);

				Wybor2(kol, k1, k2, k3, k4, k5, k6, k7, tmp, tmp2);
				gotoxy(35, 7);
				printf("                                                     ");
				pnk[tmp2][tmp] = 2;
				Sprawdzanie(kol, wygrany, tmp, tmp2, pnk);
				kgracza = 0;
			}

			if (wygrany != 0)
			{
				break;
			}
		}
		gotoxy(35, 4);
		printf("                                                     ");
		gotoxy(35, 7);
		printf("                                                     ");

		winner(i, wygrany);


	gotoxy(50, 13);

	system("PAUSE");
	return 0;
}