Imagen


Estudiando un poco de Arreglos bidimensionales les traigo un ejemplo sencillo plasmado en un tipo de juego.
Se basa en una matriz de 20x20, la cual es rellenada al azar de 0 y 1 representando blanco existente o no existente, si le atinas entonces =) te sube el puntaje te muestra los blancos que has matado.

Seguro el código se puede mejor 1 millón pero es un simple ejemplo.

Descarga del proyecto:

Código: Seleccionar todo

http://www.sendspace.com/file/4n6cu4
Password:

Código: Seleccionar todo

www.onlyprogrammers.org
R-007 =)
Gracias DarkSunao por probarlo!
En tu ventana
Y en tu ventana, gritas al cielo pero lo dices callada..
Lo hiciste bien rapido y veo que ya tienes suficiente soltura con los bidimensionales, pero bueno ahora toca retocar... ;)
Este code por ejemplo, no me gusta ese if que hiciste...

Código: Seleccionar todo

                for (j = 0; j < 20; j++)
                {
                    if ((i == x) && (j == y))
                    {
                        printf("%i ",0);
                    }
                    else if(bd[i][j]==2)
                    {
                        printf("%i ",0);
                    }
                    else
                    {
                        printf("%c ",'x');
                    }
                }
la condicion "if ((i == x) && (j == y))" te sobra puesto que acabas de asignarle un 2 por haber acertado y se une a la condición if(bd[j]==2)
hazlo así mejor:

Código: Seleccionar todo

                for (j = 0; j < 20; j++)
                {
                    char aux; //variable auxiliar
                    if(bd[i][j]==2) aux = '0'; //usa 0 para los que fueron "aciertos" 
                    else aux = 'x'; //enmascara con 'x'
                    printf("%c ",aux); //te ahorras 2 declaraciones de printf distintas
                 }
                }
la siguiente cuestión es.. y que ocurre si yo ahora te digo que lo hagas para bidimensionales de 500 x 600¿?
pues que tendrías que cambiar todos los numeritos de los for...
la solución es crearte Constantes para el maximo de x's y el maximo de y's que puede haber en tu "tablero", puedes definirte constantes de la siguiente manera:

Código: Seleccionar todo

 //añadir debajo de los includes (para el preprocesador)
#define MAX_X 500
#define MAX_Y 600
//después sustituyes los '20' por MAX_X o MAX_Y según corresponda
así tu code sería "reutilizable" y "mantenible".. que son 2 características que todo programa debería tener

Por lo demás ninguna pega.
Un saludo hermano!
Responder

Volver a “Fuentes”