Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: carlos9127 en 02 de Diciembre 2014, 04:45
-
1. El Ministerio de Defensa ha solicitado formalmente la ayuda del Ministerio de Tecnología para acabar con el flagelo de las minas terrestres. Éste ministerio ha solicitado la creación de un sistema que simule el trabajo de un robot que detecte minas antipersonales, con el objeto de evaluar su compra. Usted está a cargo de cumplir con los requisitos que expone este ministerio mediante una solución en .NET utilizando Bases de Datos e Interfaces Gráficas. La simulación debe cumplir con los siguientes requisitos:
* La solución deberá permitir que el usuario configure el terreno de n x n, máximo 20 posiciones de lado y mínimo 4, para lo cual deberá poder seleccionar el tamaño del mismo
* Se deberá presentar el tablero de juego indicando el número de cada fila y cada columna en la aplicación Windows, de manera que el usuario pueda identificar cada coordenada de las casillas.
* La ubicación de las minas se dará aleatoriamente, de manera tal que no sea predecible la disposición de las mismas.
* El robot sólo puede avanzar una posición a la vez, y sólo se desplaza hacia arriba, abajo, izquierda o derecha. Por cada mina que haga explotar, se le asignaran 20 puntos de efectividad, los respectivos puntos deberán poder ser visualizados a lo largo de la simulación.
* Es fundamental llevar una cuenta del tiempo que se demora el robot en detectar una mina y hacerla explotar. Además de esto la fecha y hora de la simulación, deberá ser visualizada y actualizada en todo momento durante el juego.
* La simulación finalizara cuando el total de casillas sea descubierto (para el caso de nivel estándar), o cuando sean explotadas todas las minas.
AMIGOS PUES TENGO CLARO QUE SOLO HAY UNA CLASE LA CUAL ES "ROBOT", PERO QUISIERA SABER QUÉ ATRIBUTOS TENDRÍA Y QUE MÉTODOS SE IMPLEMENTARÍAN EN EL PROGRAMA, GRACIAS DE ANTEMANO!
-
Hola, no parece lógico tener una única clase. En programación orientada a objetos se trabaja normalmente con varias clases y además con una clase con el método main. Léete esto: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=621:clase-con-el-metodo-main-clase-principal-iniciadora-o-programa-principal-en-java-concepto-cu00655b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
De acuerdo con el enunciado del problema podríamos identificar las siguientes clases:
- Terreno (representa el terreno, también podrías llamarla TableroDeJuego o TableroDeSimulacion si quieres)
- Mina (representa una mina)
- Robot (representa al robot)
- Reloj (representa el reloj para el juego o simulación)
Además serán necesarias posiblemente las siguientes clases:
- ControladorDelJuego (o ControladorDeSimulacion): se encarga de supervisar el estado de la partida y finalizarla si se cumplen las condiciones para ello.
- ColocadorDeMinas: se encargará de colocar las minas sobre el tablero de juego.
- ControladorDeRobot: se encargará de controlar el movimento del robot. No tengo muy claro si el movimiento del robot lo debe controlar el usuario como si fuera un juego o si lo debe controlar el programa. Este es un aspecto importante, ya que haría variar bastante el código que hay que crear según sea una cosa u otra.
Y además de estas posiblemente sean necesarias algunas clases auxiliares más. Crear este programa con su entorno gráfico requiere bastante tiempo y conocimientos para poder codificarlo. No es sencillo (tampoco es una super complicación).
Saludos
-
Bueno amigo aquí ya he desarrollado las distintas capas con las clases:
Clases de la capa DataAccess
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Final.DataAccess
{
public class Robot
{
static void inico()
{
DateTime value = new DateTime();
Console.WriteLine(value);
Console.WriteLine(value == DateTime.Today);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Final.DataAccess
{
class Mapa
{
int mina;
public int Insertancho()
{
int anch;
Console.WriteLine("Digite ancho del Mapa");
anch = Convert.ToInt32(Console.ReadLine());
return anch;
}
public int Insertalto()
{
int alt;
Console.WriteLine("Digite alto del Mapa");
alt = Convert.ToInt32(Console.ReadLine());
return alt;
}
public int insertarminas()
{
int mina;
Console.WriteLine("Digite numero de Minas");
mina=Convert.ToInt32(Console.ReadLine());
return mina;
}
}
}
Clases de la capa Entiti
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Final.Entiti
{
class Robot
{
int x;
int y;
float efectividad;
float tiempo;
DateTime inicio;
DateTime final;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Final.Entiti
{
public class Mapa
{
int ancho;
int alto;
int Nminas;
int PosX;
int PosY;
}
}
POR FAVOR ALGUIEN PODRÍA REALIZARME LA PARTE DE LA CAPA DE REGLAS DE NEGOCIO? LE AGRADECERÍA SU AYUDA!
-
El desarrollo del código de este programa puede ser bastante costoso. Desde los foros lo que podemos hacer es ir ayudando, corrigiendo o ayudando a plantear el código que se vaya desarrollando, pero un desarrollo completo es excesivo... Salu2
-
GRACIAS!!