Exemple #1
0
void compra(void)
{
    Libro lib, libar;
    long posicion;
    
    if(fh == NULL) fh = fopen(fich, "rb+");
    printf("Código: "); fgets(lib.codigo, 7, stdin);
    printf("Autor: "); fgets(lib.autor, 41, stdin);
    printf("Título: "); fgets(lib.titulo, 41, stdin);
    posicion = hash(lib.codigo);
    posicion = desplazamiento(posicion);
    
    fseek(fh, posicion, SEEK_SET);
    fread(&libar, sizeof(Libro), 1, fh);
    if(strcmp(libar.codigo, "*") == 0)
    {
        fseek(fh, -sizeof(Libro), SEEK_CUR);
        fwrite(&lib, sizeof(Libro), 1, fh);
        printf("Registro grabado en la dirección: %ld\n",posicion);
    } else if(strcmp(libar.codigo, lib.codigo) == 0)
    {
        puts("Código repetido, revisar los datos.");
        return;
    } else
        colisiones(lib);
    fflush(fh);
}
Exemple #2
0
int main(int argc, char** argv) {
    TablaHash tabla;
    tipo_alumno aux_alum; 
    char  clav[Tam][20]= { "" };
    colisiones(&tabla,clav,aux_alum);
    busqueda(&tabla,clav,aux_alum);
    return (EXIT_SUCCESS);
}
Exemple #3
0
void Juego::eventos() {
    switch (e) {
        case SALIR:
            break;
        case JUEGO:
            if (oponentes->numEnem() == 0) {
                cambiaEstado(FINFASE);
            }
            break;
        case MENU:
            if (bjugar != NULL) {
                if (bjugar->encima(Mx, My) && BRizq) {
                    cambiaEstado(JUEGO);
                }
            }
            if (bsalir != NULL) {
                if (bsalir->encima(Mx, My) && BRizq) {
                    cambiaEstado(SALIR);
                }
            }
            break;
        case SUBMENU:
            if (bSI != NULL) {
                if (bSI->encima(Mx, My) && BRizq) {
                    cambiaEstado(MENU);
                }
            }
            if (bNO != NULL) {
                if (bNO->encima(Mx, My) && BRizq) {
                    cambiaEstado(JUEGO);
                }
            }
            break;
        case GAMEOVER:
            if (BRizq) {
                cambiaEstado(MENU);
            }
            break;
        case FINFASE:
            if (BRizq) {
                if (mapas.esVacia()) {
                    cambiaEstado(MENU);
                } else {
                    fondo = IMG_Load(mapas.consulta().c_str());
                    cambiaEstado(JUEGO);
                }
            }
            break;
    }
    colisiones();
    movimiento();
}
Exemple #4
0
void Scene::animate() {
    if (this->_scene==1) {
        if (this->personaje->getState()==_DEAD) newCharacter();

        this->personaje->animate();

        //pedimos que se animen
        for (int i=0 ; i<_droids.size() ; i++ )
            _droids[i].animate();

        //pedimos que se animen
        for (int i=0 ; i<_wasps.size() ; i++ )
            _wasps[i].animate();

        //vemos si colisionan
        colisiones();

        //vemos si entran en la captura
        captureDroid();

    }
}