|
Mostrar Mensajes
|
Páginas: [1] 2
|
1
|
Programación / Programación C/C++ / Re: [?] Fallo de segmentación - C
|
en: 14 Diciembre 2010, 19:50 pm
|
Gracias por responder! Bueno, este juego ya lo hice una vez para un proyecto de la U, en primer año, por lo que vimos lo más básico de punteros. Ahora indagué un poco más y encontré que no era tan simple como creía . El uso de tantas funciones es para que quede bien representada cada labor de cada función, para luego poder pasarlo a C++ (con allegro). Voy a reescribir los punteros de forma correcta y volveré a comentar. Gracias nuevamente! ^^
|
|
|
2
|
Programación / Programación C/C++ / [?] Fallo de segmentación - C
|
en: 14 Diciembre 2010, 17:26 pm
|
Buenas! Estoy recién empezando a realizar un juego en C y lo puedo compilar y funciona todo bien hasta que llega a la función actualizarPiezas, al intentar designarle valores a un arreglo 2x2 específicamente. Me tira un error de segmentación ("Fallo de segmentacion"). Si pongo como comentario la designación del arreglo 2x2 me compila y funciona todo perfectamente. (Lo compilé desde ubuntu con gcc 4.4.3) Función donde me tira el error void actualizacionPiezas(int *piezas[8][8], int *equipoBlanco, int *equipoNegro){
int i,j;
for(i=0 ; i<8 ; i++){ for(j=0 ; j<8 ; j++){
*piezas[i][j] = 7; //<============================= ERROR
} }
} Codigo completo (hasta ahora ) #include <stdio.h> #include <stdlib.h> #include <string.h>
#define limpiarPantalla system("clear");
char menu(); void jugar(); void ingresarNombreJugador(); void informacion(); void ingresarEquipoJugador(); void actualizacionPiezas(); void tomarPieza();
////////////////////////////////////////////////////////////////////////////////////////_____________________________________ int main(){ ///////////////////////////////////////////////////////////////////////////|| MAIN
switch(menu()){ case '1': jugar(); break; case '2': informacion(); break; case '3': return 0; break; } } ////////////////////////////////////////////////////////////////////////////////////////_____________________________________ char menu(){ //////////////////////////////////////////////////////////////////////////|| MENÚ
char opcion;
limpiarPantalla
printf(" 1. Jugar \n 2. Informacion \n 3. Salir \n\n Seleccione una opcion y presione ENTER\n\n >:");
do{opcion = getchar();} while(opcion != '1' && opcion != '2' && opcion != '3'); limpiarPantalla
return opcion; } ////////////////////////////////////////////////////////////////////////////////////////_____________________________________ void jugar(){ /////////////////////////////////////////////////////////////////////////|| JUGAR
char jugadorBlanco[30], jugadorNegro[30]; int equipoBlanco, equipoNegro, tomarPiezaX, tomarPiezaY, piezas[8][8];
ingresarNombreJugador(&jugadorBlanco, &jugadorNegro);
limpiarPantalla
ingresarEquipoJugador(&equipoBlanco, &equipoNegro);
limpiarPantalla
actualizacionPiezas(&piezas, &equipoBlanco, &equipoNegro);
limpiarPantalla
tomarPieza(&tomarPiezaX, &tomarPiezaY);
} ////////////////////////////////////////////////////////////////////////////////////////_____________________________________ void ingresarNombreJugador(char *jugadorBlanco, char *jugadorNegro){ /////////////////|| INGRESAR NOMBRE JUGADOR
printf("Ingrese el nombre del jugador blanco\n\n >: "); scanf("%s", &*jugadorBlanco);
printf("\nIngrese el nombre del jugador negro\n\n >: "); scanf("%s", &*jugadorNegro);
} ////////////////////////////////////////////////////////////////////////////////////////_____________________________________ void ingresarEquipoJugador(int *equipoBlanco, int *equipoNegro){ //////////////////////|| INGRESAR EQUIPO JUGADOR
printf("Clasico: 1\nJapones: 2\nMayas: 3\n\n"); printf("Ingrese el equipo del jugador blanco\n\n >: "); scanf("%d", &*equipoBlanco);
printf("\nIngrese el equipo del jugador negro\n\n >: "); scanf("%d", &*equipoNegro);
switch(*equipoBlanco){ case 1: *equipoBlanco = 0; break; case 2: *equipoBlanco = 2; break; case 3: *equipoBlanco = 4; break; }
switch(*equipoNegro){ case 1: *equipoNegro = 1; break; case 2: *equipoNegro = 3; break; case 3: *equipoNegro = 5; break; }
} ////////////////////////////////////////////////////////////////////////////////////////_____________________________________ void informacion(){ ///////////////////////////////////////////////////////////////////|| INFORMACIÓN
printf("\ninformacion\n");
} ////////////////////////////////////////////////////////////////////////////////////////_____________________________________ void actualizacionPiezas(int *piezas[8][8], int *equipoBlanco, int *equipoNegro){ ////|| ACTUALIZACIÓN PIEZAS
int i,j; // IGUALAMOS EL TABLERO ENTERO A 7 (VACÍO)
for(i=0 ; i<8 ; i++){ for(j=0 ; j<8 ; j++){
*piezas[i][j] = 7; //<============================= ERROR
} }
} ////////////////////////////////////////////////////////////////////////////////////////_____________________________________ void tomarPieza(int *tomarPiezaX, int *tomarPiezaY){ /////////////////////////////////////|| TOMAR PIEZA char aux1;
printf("Ingrese las coordenadas 'x' e 'y' (Ejemplo: b5)\n\n >: "); scanf("%c%d", &aux1, &*tomarPiezaY);
switch(aux1){ case 'a': *tomarPiezaX = 0; break; case 'b': *tomarPiezaX = 1; break; case 'c': *tomarPiezaX = 2; break; case 'd': *tomarPiezaX = 3; break; case 'e': *tomarPiezaX = 4; break; case 'f': *tomarPiezaX = 5; break; case 'g': *tomarPiezaX = 6; break; case 'h': *tomarPiezaX = 7; break; }
switch(*tomarPiezaY){ case 1: *tomarPiezaY = 0; break; case 2: *tomarPiezaY = 1; break; case 3: *tomarPiezaY = 2; break; case 4: *tomarPiezaY = 3; break; case 5: *tomarPiezaY = 4; break; case 6: *tomarPiezaY = 5; break; case 7: *tomarPiezaY = 6; break; case 8: *tomarPiezaY = 7; break; }
}
No se me ocurre cual puede ser el error Por favor si alguien puede ayudarme a descubrir el error le estaré muy agradecido Saludos!
|
|
|
4
|
Programación / Scripting / [BATCH] Duda sobre variables tipo %X:~0,1%
|
en: 22 Mayo 2009, 22:09 pm
|
Buenas Mi duda es la siguiente ... Si yo tengo una variable, por ejemplo "A=hola", y pongo %A:~0,2% me tendria que salir "ho", pero ¿es posible usar esa misma forma pero de atras para adelante?... que en vez de "ho" saliera "la"
|
|
|
6
|
Programación / Scripting / Re: El poder del ocio :D
|
en: 25 Noviembre 2008, 00:56 am
|
jeje..ami tambien me gusto la interfaz....esta bonita, y pues de esto del reloj ya habia hehco yo uno hace rato...uno digital,...crees que se podrian combinar ambos ?? Encantado, pero me tienes que ayudar ya que no entendi mucho tu codigo (muy avansado para mi X___x) Pero con gusto puedes modificar mi relojito ^^ ... Me alegro que les haya gustado
|
|
|
7
|
Programación / Scripting / El poder del ocio :D
|
en: 23 Noviembre 2008, 22:44 pm
|
Hace poco que he estado leyendo en le foro sobre los archivos .bat, pero explican tan claramente y bien que he aprendido muchisimo en poco tiempo Por lo que les dejo mi primera gran "creacion" XD (no sirve de mucho, pero se ve bonito ) Relojito @echo off mode con cols=67 mode con lines=20 title . ..:: Reloj ocioso by MxPower ::.. color 0a goto HORA1
REM ---------------------------------------------------------------------------
:HORA1 cls set H1=%TIME:~0,1% if %H1%==0 (goto UHOR-0) if %H1%==1 (goto UHOR-1) if %H1%==2 (goto UHOR-2)
:UHOR-0 set "UNOHRU= _ " set "DOSHRU=³ ³" set "TREHRU=³_³" goto HORA2
:UHOR-1 set "UNOHRU= " set "DOSHRU= ³ " set "TREHRU= ³ " goto HORA2
:UHOR-2 set "UNOHRU= _ " set "DOSHRU= _³" set "TREHRU=³_ " goto HORA2
REM ---------------------------------------------------------------------------
:HORA2 set H2=%TIME:~1,1% if %H2%==0 (goto DHOR-0) if %H2%==1 (goto DHOR-1) if %H2%==2 (goto DHOR-2) if %H2%==3 (goto DHOR-3) if %H2%==4 (goto DHOR-4) if %H2%==5 (goto DHOR-5) if %H2%==6 (goto DHOR-6) if %H2%==7 (goto DHOR-7) if %H2%==8 (goto DHOR-8) if %H2%==9 (goto DHOR-9)
:DHOR-0 set "UNOHRD= _ " set "DOSHRD=³ ³" set "TREHRD=³_³" goto MINU1
:DHOR-1 set "UNOHRD= " set "DOSHRD= ³ " set "TREHRD= ³ " goto MINU1
:DHOR-2 set "UNOHRD= _ " set "DOSHRD= _³" set "TREHRD=³_ " goto MINU1
:DHOR-3 set "UNOHRD= _ " set "DOSHRD= _³" set "TREHRD= _³" goto MINU1
:DHOR-4 set "UNOHRD= " set "DOSHRD=³_³" set "TREHRD= ³" goto MINU1
:DHOR-5 set "UNOHRD= _ " set "DOSHRD=³_ " set "TREHRD= _³" goto MINU1
:DHOR-6 set "UNOHRD= _ " set "DOSHRD=³_ " set "TREHRD=³_³" goto MINU1
:DHOR-7 set "UNOHRD= _ " set "DOSHRD= ³" set "TREHRD= ³" goto MINU1
:DHOR-8 set "UNOHRD= _ " set "DOSHRD=³_³" set "TREHRD=³_³" goto MINU1
:DHOR-9 set "UNOHRD= _ " set "DOSHRD=³_³" set "TREHRD= _³" goto MINU1
REM ---------------------------------------------------------------------------
:MINU1 set M1=%TIME:~3,1% if %M1%==0 (goto UMIN-0) if %M1%==1 (goto UMIN-1) if %M1%==2 (goto UMIN-2) if %M1%==3 (goto UMIN-3) if %M1%==4 (goto UMIN-4) if %M1%==5 (goto UMIN-5)
:UMIN-0 set "UNOMIU= _ " set "DOSMIU=³ ³" set "TREMIU=³_³" goto MINU2
:UMIN-1 set "UNOMIU= " set "DOSMIU= ³ " set "TREMIU= ³ " goto MINU2
:UMIN-2 set "UNOMIU= _ " set "DOSMIU= _³" set "TREMIU=³_ " goto MINU2
:UMIN-3 set "UNOMIU= _ " set "DOSMIU= _³" set "TREMIU= _³" goto MINU2
:UMIN-4 set "UNOMIU= " set "DOSMIU=³_³" set "TREMIU= ³" goto MINU2
:UMIN-5 set "UNOMIU= _ " set "DOSMIU=³_ " set "TREMIU= _³" goto MINU2
REM ---------------------------------------------------------------------------
:MINU2 set M2=%TIME:~4,1% if %M2%==0 (goto DMIN-0) if %M2%==1 (goto DMIN-1) if %M2%==2 (goto DMIN-2) if %M2%==3 (goto DMIN-3) if %M2%==4 (goto DMIN-4) if %M2%==5 (goto DMIN-5) if %M2%==6 (goto DMIN-6) if %M2%==7 (goto DMIN-7) if %M2%==8 (goto DMIN-8) if %M2%==9 (goto DMIN-9)
:DMIN-0 set "UNOMID= _ " set "DOSMID=³ ³" set "TREMID=³_³" goto FECHA
:DMIN-1 set "UNOMID= " set "DOSMID= ³ " set "TREMID= ³ " goto FECHA
:DMIN-2 set "UNOMID= _ " set "DOSMID= _³" set "TREMID=³_ " goto FECHA
:DMIN-3 set "UNOMID= _ " set "DOSMID= _³" set "TREMID= _³" goto FECHA
:DMIN-4 set "UNOMID= " set "DOSMID=³_³" set "TREMID= ³" goto FECHA
:DMIN-5 set "UNOMID= _ " set "DOSMID=³_ " set "TREMID= _³" goto FECHA
:DMIN-6 set "UNOMID= _ " set "DOSMID=³_ " set "TREMID=³_³" goto FECHA
:DMIN-7 set "UNOMID= _ " set "DOSMID= ³" set "TREMID= ³" goto FECHA
:DMIN-8 set "UNOMID= _ " set "DOSMID=³_³" set "TREMID=³_³" goto FECHA
:DMIN-9 set "UNOMID= _ " set "DOSMID=³_³" set "TREMID= _³" goto FECHA
REM ---------------------------------------------------------------------------
:FECHA set DIA=%DATE:~0,2% set MES=%DATE:~3,2% set ANO=%DATE:~6,4% goto DEFMES
:DEFMES if %MES%==1 (set "MFP= Enero ") if %MES%==2 (set "MFP= Febrero ") if %MES%==3 (set "MFP= Marzo ") if %MES%==4 (set "MFP= Abril ") if %MES%==5 (set "MFP= Mayo ") if %MES%==6 (set "MFP= Junio ") if %MES%==7 (set "MFP= Julio ") if %MES%==8 (set "MFP= Agosto ") if %MES%==9 (set "MFP=Septiembre") if %MES%==10 (set "MFP= Octubre ") if %MES%==11 (set "MFP=Noviembre ") if %MES%==12 (set "MFP=Diciembre ")
:RELOJ echo. echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º²²²²²²²²²²±ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿±²²²²²²²²²²±º echo º²MxPower²²±³ %UNOHRU% %UNOHRD% %UNOMIU% %UNOMID% ³±²²²²²²²²²²±º echo º²²²²²²²²²²±³ %DOSHRU% %DOSHRD% . %DOSMIU% %DOSMID% ³±²²²²²²²²²²±º echo º²²²²²²²²²²±³ %TREHRU% %TREHRD% . %TREMIU% %TREMID% ³±²²²²²²²²²²±º echo º²²²²²²²²²²±³ ³±²²²²²²²²²²±º echo º²²²²²²²²²²±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±²²²²²²²²²²±º echo º²²²²²²²²²²±±±±±±±±±±±±±±±±±±±±±±±±²²²²²²²²²²±º echo º²²²²²²²²°ÚÄÄ¿±°ÚÄÄÄÄÄÄÄÄÄÄ¿±°ÚÄÄÄÄ¿±²²²²²²²²±º echo º²²²²²²²²°³%DIA%³±°³%MFP%³±°³%ANO%³±²²²²²²²²±º echo º²²²²²²²²°ÀÄÄÙ±°ÀÄÄÄÄÄÄÄÄÄÄÙ±°ÀÄÄÄÄÙ±²²²²²²²²±º echo º±±±±±±±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±±±±±±±±º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo ÀÄÄÄÄÄÙ ÀÄÄÄÄÄÙ echo. echo. echo. echo (para actualizar el reloj precione una tecla..) pause>nul goto HORA1 Ya se que el codigo es muy largo, pero no supe hacerlo de otra manera X____X ... Espero que les guste bye
|
|
|
10
|
Programación / Ingeniería Inversa / ayuda con este programa sin crack X__X
|
en: 21 Noviembre 2008, 17:44 pm
|
Hola, bueno primero que nada yo no tengo ni la mas reprostituta idea de como hacer un crack XD, por lo que les pido ayuda con este programa que definitivamente no tiene crack (ya he buscado en todos los sitios y nada) Aqui les dejo el link del programa.(es de la pagina oficial asique nos procupeis ) Linguata estonio: http://www.linguata.eu/linguataeu/Aprender_Estonio/EsLinguataEstonio.exeNOTA: El programa se llama "linguata estonio", no "linguata estonian" (que esta en ingles) Asique si alguien quiere practicar haciendo cracks, que lo haga con este programa plz De antemano muchisimas gracias
|
|
|
|
|
|
|