martes, 2 de junio de 2015

Batalla Naval

 

Hola compañeros , En esta entrada les voy a mostrar sobre el juego de batalla naval en C#, el juego consiste en tumbar los barcos del enemigo, dando  sobre una posicion y verificando si se encuentra o no el barco, en la programacion podemos destacar los siguientes elementos.












https://mega.co.nz/#!2ggQXIrL!Tt5yn6CnLxYYUPpGbkSmfWh63WQsH9LdY-EoymLxFJA

Patron Mvc y Patron silencioso



Hola compañeros en esta entrega vamos a explicar rápidamente lo que son los patrones MVC (Modelo Vista Controlador) y el patron silencioso (Singleton); veremos como se podria aplicar hacia nuestro programa.

Los patrones de diseño son las soluciones generales a problemas de desarrollo de software y otros amitos referentes al diseño de interfaces, aunque no sea obligatorio en alguna manera usar estos patrones  al trabajar los elementos dados por estos conceptos nos permite una gran cantidad de ventajas.
Entre estos patrones se pueden identificar 3 categorías:
Patrones de arquitectura: Aquellos que expresan un esquema organizativo estructural fundamental para sistemas software. 
Patrones de diseño: Aquellos que expresan esquemas para definir estructuras de diseño (o sus relaciones) con las que construir sistemas software. 
Idiomas: Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto.

El patron MVC pertenece al de los los patrones de arquitectura y el singleton al de los Patrones de diseño.

MVC propone  básicamente que las partes que componen un programa la cual seria la parte de presentación como la parte de lógica, sean separados uno del otro para lograr la modularidad y de esa manera sea mas facil la solucion de problemas y expansibilidad de este.

El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.

Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.

https://mega.co.nz/#!z5Yi3LbD!LF45EFji2zmEdCqTTZfNLdrQ2YM_jfHsgggbqSJyjjM
https://mega.co.nz/#!KpRiXYKL!Tdm1eoBjsOqom7nZffqY1J6pHo6csHZFIAxtXyExrUA
https://mega.co.nz/#!Dh5iDIRC!wED8WeB-IHPcccWdokvcUmmOvWY8sW5EQHuO08acgzE




martes, 7 de abril de 2015

Sudoku


Hola muchachos, En esta entrega vamos a programar la base de un sudoku, en este juego tenemos que llenar las casillas de tal manera que no se repitan en las partes de las columnas, las cajas como las filas, ya dicho esto para la solucion del juego debemos ver al sudoku como una matriz aca les muestro el siguiente codigo para la cargar la matriz de acuerdo a una dificultad y lograr cargar la matriz a los cuadros de texto.





Pueden ver el resto del programa en el link dado a continuacion

https://mega.co.nz/#!W1xjSawD!LD-p43auVb6k2nRWgTavnmkplEpX2oIFG6DYtA2ielg


Picas y Fijas!!



Hola amigos Blogueros En esta entrega les voy a explicar de otro juego hecho programa: el juego de las Picas y las Fijas.

En este juego existe un numero secreto, de varias cifras, y uno como objetivo tiene que adivinar este el numero, cuando el numero que decimos existe una cifra que se encuentra en el numero, se dice que hay una pica, en el caso que una cifra se encuentre exactamente en la posicion del numero secreto , se dice que hay una fija, se gana cuando se descubre el numero secreto, osea cuando haya todas las fijas del numero secreto(6 cifras/6 fijas , 4 cifras/4 fijas ustedes ya me entiende).

Un par de ejemplos rapidos:

Numero secreto: 2856

Numero dicho 3402 Hay 0 fijas y 0 picas

Numero dicho 3702 Hay 0 fijas y 1 picas

Numero dicho 2865 Hay 2 fijas y 2 picas

Numero dicho 2856 Estan las 4 fijas Gano.

Miren aca la interfaz del juego



En la creacion del juego, Estos son los metodos los cuales considero los mas importantes


Muy bien podemos considerar el numero secreto como un arreglo de enteros, en este metodo creamos el vector o arreglo los cuales se van introduciendo en cada espacio una cifra de 0 hasta 9

Un metodo el cual se vaya guardando  las cifras en un arreglo en  que comparado sea el posible numero secreto.





los siguientes dos metodos son para contar las cantidad de de Fijas y picas , los aciertos que dimos al introducir nuestro numero.



El metodo el cual nos bote un mensaje o haga algo al ganar el juego al obtener todas las fijas.

Pueden mirar el resto de codigo y ver el juego mas en accion descargando el zip en este link.

https://mega.co.nz/#!qw5xASja!-YSX8EmCWuAPnXhgQZkzv4zva5qXWJO2XIAQjciAESA

lunes, 16 de marzo de 2015

Un juego de rompecabezas

Saludos muchachos en esta entrada vamos a trabajar con unos elementos nuevos, estos elementos consisten en el trabajo de la interfaz grafica,  en C# vamos a hacer un juego de rompecabezas este juego consiste en el ordenamiento de unos numeros dados del 1 al 15 y un espacio vacio los cuales se pueden movilizar estos numeros, el objetivo es el ordenamiento del rompecabezas hasta que quede "la imagen correcta".

Todo esto lo podemos hacer a partir del uso del interfaces graficas todo proveido por la plataforma de Microsoft visual estudio, cuando vayamos a empezar un nuevo proyecto escogemos aplicacion de Windows Forms , hay que recordar siempre que se le tiene que dar un nombre nuevo, una ubicacion nueva, Etc.


Nos inicia el programa asi, como si fuese una hoja en blanco.

Uno de los aspectos mas positivos  de esta forma de trabajar la interfaz grafica, es que la plataforma nos provee varios elementos los cuales hacen que el trabajo nos sea mucho mas facil, disponemos principalmente un cuadro de herramientas y una pestaña de propiedades.


En el cuadro de herramientas vemos todos los objetos disponibles los cuales pueden estar conformados una interfaz grafica, estos siendo botones, cajas de texto, cajas de lista, ComboBoxes, etc, simplemente aca podemos escoger los objetos que necesitamos y poenerlo a nuestro form; En la tabla de propiedades, nos hace mostrar las caracteristicas de cada obejto, su identificacion de tamaño, la fuente, su color, su identificacion y demas, podemos desde la tabla de propiedades modificar todas estas caracteristicas respecto a las necesidades de nuestro programa.

Cabe destacar que muy bien que solo a punta de codigo en C# podemos implementar todo estos objetos, pero al trabajar de esta manera nos puede tomar bastante tiempo ya que se tiene que modificar en cuanto alas propiedades de estos elementos ,su ubicacion etc, en realidad la plataforma nos ahorra tiempo en cuanto al trabajo de todo esto,este codigo por lo general se encuentra guardado y lo que nos hace ver la plataforma seria las partes mas importantes.


Un programa  en resumidas palabras esta compuesta en tres "capas" por asi decirse, las cuales son la capa logica, la capa de la interfaz grafica y la parte de persistencia o sencillamente hablando de la capa de guardado, al hacer un doble click desde el objeto que acabamos de poner en nuestro form, la plataforma nos crea un "espacio" o metodo el cual  cuando corremos el programa e interactuemos con este, se haga una opcion, el ejemplo mas basico seria que en un boton pudiésemos cambiar de un texto a otro o que cambia de color, o que empieze a correr un metodo los cuales cambien las propiedades de los otros objetos, realmente son bastantes posibilidades.




Ya explicado toda esa introduccion, vamos a explicar el funcionamiento del juego, se que en la programacion pueden existir varias soluciones de este problema unas mejores que las otras, otras mas complicadas o sencillas que las otras, este fue mi acercamiento en cuanto a la realizacion del juego, en este rompecabezas esta compuesta de varios botones los cuales al oprimirlos se corre un par de metodos , el primer metodo en cuestion compara las propiedades de los otros botones que se encuentran adyacientes de estos, y los cambia de acuerdo a una condicion,  en este caso la condicion es comparar si en el boton oprimido se encuentra adyaciente el boton cuya propiedad sea el que este cubierto de negro ( de una manera mas sencilla el boton cuya propiedad tenga el texto del numero 16. los, la propiedad del color en negro oculta este numero ), si es asi se cambia las propiedades de estos, hay que tener en cuenta que este metodo existen 3 variantes de este, para los botones que se encuentran en el centro, en las paredes y en las esquinas. 

Y otro Metodo que nos verifique el orden o propiedad de todos los botones, si las condiciones cumplen, nos tira el mensaje que nos indica que ganamos.


Existen otros metodos mas que son necesarios para estos dos y al funcionamiento del programa, como un metodo que nos hace mover las propiedades de cada boton, un metodo que hace que se nos reorganize las propiedades de cada boton (digamos para hacer un juego nuevo), y otro metodo que nos compare elementos en una matriz la cual es esencial en el otro metodo de la reorganizacion de propiedades, pueden verificar el resto en el programa el cual les doy link. 


Ya resuelto nuestro problema de realizar nuestro juego, podemos añadirle otras caracteristicas al programa para complementar esa inmersion la que tenemos al jugar un juego, como añadirle un temporizador, poner imagenes o un texto que noscuente cuantos pasos hicimos para solucionar nuestro rompecabezas, Os lo dejo de tarea muchachos!


miércoles, 4 de marzo de 2015

Clases Abstractas: extension del ejercicio poligono

Saludos amigos blogueros en esta entrada vamos a hablar sobre el uso de las clases abstractas para eso vamos a repasar el ejercicio que hice anteriormente, el de poligonos regulares, repasemos otra vez el diagrama que se va a dar a continuacion:


Para poner una clase abstracta simplemente ponemos en donde se declara la clase, abstract, sencillo.


La pregunta es, que cambios se hace? que ventajas conlleva? para empezar cuando se declara una clase abstracta, esta hace que no se pueda crear objetos de ella, podemos crear referencias de la clase a partir de por ejemplo PoligonoRegular poligono sin embargo no se podra instanciar de la manera
PoligonoRegular poligono= New PoligonoRegular.

En el paradigma de la programacion orientada a objetos, una clase abstracta sirve para proporcionar las clases  y metodos derivados de esta pero sin brindar una implementacion.

Al declarar una clase abstract tambien  evita que el usuario cree objetos de cierta clase y tambien son utiles para Cuando hay un conjunto de clases que comparten las mismas operaciones pero difieren en su implementación.


Al heredar o referenciar podemos usar los metodos contenidos en esta.

pueden ver el trabajo hecho en el siguiente link:

https://mega.co.nz/#F!LgYiXZDZ!S6IPhfJ9FDtn8Z0vi58FFQ

lunes, 16 de febrero de 2015

Un modelo de poligonos

Saludos compañeros en esta entrada vamos a ver como se trabaja las varias clases con constructores y herencia de clases a partir del trabajo del siguiente diagrama:

Como pueden ver son 6 clases las cuales estan relacionados en sus variables y metodos a partir de construcctores y herencia, tambien existen instancias en las cuales un metodo se repite pero con diferentes parametros de entrada, esto es lo que llamamos sobrecarga empezemos el ejemplo desde la clase punto:



Aqui vemos dos instancias distintas del metodo constructor Punto, asi desde otra clase podemos inicializar el objeto con diferentes variables iniciales


Y asi desde las clase segmento podemos utilizar los metodos de punto con el Get y Set y llamando la clase constructora

Declarando un metodo que no reciba parametros y llamando desde la clase triangulo: PoligonoRegular, podemos hacer herencia y hacer que todos los metodos del poligono regular sean pasados a otra clase como la de triangulo y que las puedan usar por esa.

pueden ver el resto del programa en mega:

https://mega.co.nz/#F!TxYTVL4L!x5hXzaXQslRj_Fiasw3IKg

lunes, 9 de febrero de 2015

Una Calculadora de enteros

Hola amigos blogueros, en la entrega de hoy vamos a trabajar varios conceptos que son importantes en el ambito de la programacion basada en objetos, lo que seria las clases y los metodos.

Pero como vamos a trabajar esos conceptos? Pues haciendo simplemente una calculadora, mostraremos paso a paso el hacer de este programa y si requieren mas informacion, pueden leer la documentacion que se encuentra en el programa, lo descargar bajo el link que se dara mas abajo en la entrada.

Para empesar debemos que tener claro lo que debemos hacer, bajo el diagrama de clases que se nos da a continuacion tenemos que crear una clase donde se guardaran todos los metodos e implementarlo en una clase principal (un Main) donde se trabajara cada uno.




Bueno teniendo  el Visual Studio Abierto vamos creando un nuevo proyecto, 1.pestaña Archivo 2.Nuevo> Proyecto 3. en nuevo proyecto escoger visual C# Aplicacion de consola> Cambiar el nombre> aceptar

Empezamos a crear las clases desde el cuadro de explorador de soluciones, en este programa necesitamos dos clases: CalculadoraEnteros (donde vamos a encontrar todos los metodos requeridos) y probadorCalculadora (donde se va a aplicar nuestra clase y probaremos cada una de las funciones)

Empezamos a escribir cada uno de los metodos en la clase CalculadoraEnteros: para mayor comprensión pueden ver a los comentarios dados en el link que se dara mas tarde donde estara el programa.


Luego empezamos a crear las opciones de consola para probar cada uno de los metodos hechos en la clase CalculadoraEnteros hacia la clase Probador calculadora. Hay que recordar que para usar los metodos de la otra clase se tienen que llamar o referenciar.



CalculadoraEnteros calculadora = new CalculadoraEnteros(); asi es como instanciamos nuestra clase en ProbadorCalculadora y por ejemplo podemos llamar el metodo asi calculadora.calculeResiduo(valor1, valor2).


Pueden revisar el resto del programa en el Link que es dado a continuacion:

https://mega.co.nz/#!u9AVUYQZ!CtdvhmbMtPjAaz7fV1vTDiSIwCFWXLUsy4FybyAUZHs

jueves, 5 de febrero de 2015

Hola mundo!

Hola amigos blogeros, en esta entrada haremos un ejercicio simple, vamos a hacer un pequeño programita en el cual solo vamos a escribir hola mundo, el objetivo de este ejercicio,  es comprobar el funcionamiento de la plataforma Visual Studio 2013

Empezamos abriendo el programa de Visual Studio 2013


En la pestaña de Archivo escogemos nuevo y tomamos la opcion de Proyecto...


 Sale la siguiente ventana acontinuacion, esta muestra que tipo de proyecto es el cual que vamos a hacer, podemos hacer un monton de tipos de proyecto, como paginas web, bibliotecas de clases y hasta incluso trabajar aplicaciones moviles, se ofrecen esas plantillas


Desde la empezaremos a escoger el nombre de nuestro proyecto y la ubicacion de este, para que sea mas facil de reconocer y encontrar en nuestro equipo

Para cambiar la ubicacion donde se guardara todo nuestro trabajo, en la ventana de nuevo proyecto le damos el boton de Examinar, creamos una carpeta en el lugar donde se quiera guardar

Le cambiamos el nombre tambien.

Como habiamos dicho ibamos a trabajar una aplicacion de consola, algo sencillo como para empezar.


 Esta es la plantilla que sale a continuacion,


Aqui escribimos nuestra primera linea de codigo en c# llamaremos a un metodo la cual va escribir una linea en la pantalla de aplicacion de consola, esta es Console.WriteLine() , podemos ver aca que clase y que metodo estamos usando siendo la primera Console y la otra WriteLine.

Cuando ya empezamos a escribir el sistema ya nos provee sugestiones para la clase y el metodo, esto es la prueba que tenemos varias clases instanciadas en nuestro programa.

,


ya teniendo escrita nuestra pequeña linea, vamos a ejecutarla



Para ejecutar nuestro programita En la barra de herramientas en la pestaña de depurar tomamos la opcion Iniciar sin depurar.


 Ok muchachos esto es todo por hoy , siguan sintonizados para la siguiente entrega.