Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - jose130

Páginas: [1]
1
Aprender a programar desde cero / ayuda con un proyecto
« en: 25 de Febrero 2022, 23:29 »
PROYECTO II
Mini-Windows

Objetivo:
Simular las actividades que realiza un sistema operativo

Funcionalidad:
1- Configuración Inicial: el sistema contara por defecto con una unidad Z:\, la
cual es el directorio Raíz. Cuando este sistema esté en ejecución deberá llevar
por defecto un usuario administrador para comenzar a utilizarlo.

2- Soporte multi-usuario: cuando se cree un nuevo usuario del sistema se deberá
crear una subcarpeta “Z:\usuario”, o sea que se deberá crear un subdirectorio
raíz para cada uno de los usuarios creados, cada usuario deberá poder ingresar
con su usuario y contraseña únicamente a su sistema de archivos. También debe
existir un usuario administrador que pueda crear nuevos usuarios y pueda
acceder a las carpetas de todos los usuarios existentes, pero una cuenta de
usuario especifica solo puede observar su propio contenido.
Inicialmente cuando se crea un usuario este por lo mínimo debe tener 3 carpetas
básicas las cuales son: Mis Documentos, Música y Mis Imágenes.
 
Nuestro sistema de archivos deberá contar con barra administradora del sistema
desde donde se accederá a todas sus opciones:
3- Navegador y organizador de archivos: El sistema deberá presentar por medio
de un jTree los archivos y carpetas existentes a partir de la carpeta raíz, en
cualquier momento, el usuario deberá poder seleccionar una carpeta y llamar la
función “organizar” la cual deberá seleccionar los archivos de imágenes,
documentos, música y organizarlos en carpetas diferentes.
o El sistema deberá tener las opciones de ordenar por nombre, Fecha,
Tipo, Tamaño.
o Se deberá poder cambiar el nombre de los archivos o carpetas, crear,
copiar, pegar.
 
4- Editor de texto: Se deberá crear un editor de texto que pueda crear y modificar
archivos .txt, este editor especial deberá poder agregar al texto formato por
medio de una barra de opciones, este formato se podrá visualizar cada vez que el
usuario abra un archivo de texto en el sistema.

5- Visor de imágenes: El sistema deberá proveer un visor de imágenes que podrá
acceder a una colección de imágenes dentro de una carpeta, tal y como funciona
el visor de imágenes de Windows, con botones para siguiente y anterior.

6- Consola de comandos: consola de comandos que imite el funcionamiento de
CMD de Windows, mostrando la carpeta actual y teniendo las funciones
siguientes:
a. Mkdir <nombre>: Nueva carpeta
b. Rm <nombre>: Eliminar carpeta
c. Cd <nombre carpeta>: Cambiar de carpeta actual
d. Cd.. Regresar de Carpeta
e. Dir: Listar todas las carpetas y archivos en la carpeta actual
f. Date: Ver fecha actual
g. Time: Ver hora actual
 
7- Reproductor musical: El reproductor deberá como mínimo, reproducir archivos .mp3
tomados del navegador de archivos. Deberá tener las funciones:
a. Play
b. Stop
c. Pause

Requisitos:
• Utilizar archivos binarios.
• Utilizar archivos utilitarios.
• Crear extensiones a los archivos propios como usuarios.sop
• Utilizar excepciones (Crear 3 excepciones propias)
• Aplicar el diseño de un simulador de un sistema operativo, como
referencia del sistema de Windows, Linux o Mac.
•Utilizar Swing o Gui

2
hola buenas noches queria saber si alguien me podia ayudar a realizar un juego de batalla naval que tengo como proyecto  y es que la verdad no se como hacerlo el proyecto pide lo siguiente:

Battleship es un juego muy popular de 2 jugadores. El juego consiste en una matriz (arreglo
bidimensional) de 8 x 8 por jugador.
Cada jugador con su matriz debe colocar la cantidad de barcos que tiene disponible según la
dificultad, los cuales según tu tamaño ocuparan de 2 a 5 bombas para destruirlos. Luego que se
coloquen los barcos cada jugador se irá turnando en bombardear una celda de la matriz del jugador
contrario, en el tablero se debe indicar si fallo el tiro o si dio con algún barco. Un jugador logra
hundir un barco contrario cuando logra bombardearlo la cantidad de veces que ocupaba dicho
barco para destruirle. El juego termina cuando un jugador logra hundir todos los barcos del jugador
contrario o si su oponente se retira del juego.
LO DINAMICO entra en el que luego de que un barco es bombardeado, el tablero se REGENERA
con todos los barcos en distintas posiciones dentro del tablero. Las nuevas posiciones de los barcos
dentro del tablero se consiguen aleatoriamente, evitando claro está que dos barcos queden en una
misma casilla.
El programa inicia mostrando el siguiente menú:
Menú de Inicio
1- Login. Se pide del teclado el username y el password, si este se encuentra dentro de la
colección de players, se carga el MENÚ PRINCIPAL, si no, se muestra en pantalla el error
y se vuelve a desplegar este MENÚ DE lNICIO.
2- Crear Player. Se permite con esta opción crear un nuevo player. Se pide que se ingrese los
datos de Username (Se valida que sea UNICO) y password. El player tendra tambien un
atributo de puntos que inicialmente se le asignara 0. Si todo se hace bien se crea el player
para guardarlo en la colección. Al momento de crearlo bien se va al MENÚ PRINCIPAL,
si no, se informa el problema y se carga el MENÚ DE lNICIO.
3- Salir. La aplicación se cierra
Ing. Erick Amaya
Menú Principal
El programa debe contener un menú que contiene lo siguiente:
1- Jugar Battleship
2- Configuración.
a. Dificultad
b. Modo de Juego
c. Regresar al Menú Principal
3- Reportes
a. Descripción de mis últimos 10 juegos.
b. Ranking de Jugadores
c. Regresar al Menú principal
4- Mi Perfil
a. Ver mis Datos
b. Modificar mis datos
c. Eliminar mi cuenta
d. Regresar al Menú Principal
5- Salir
El jugador debe seleccionar una opción para proceder.
1- JUGAR BATTLESHIP
Tomando en cuenta el usuario LOGGED IN que será el PLAYER 1, lo primero que se debe pedir
del teclado antes de iniciar a jugar es el username del PLAYER 2 (debe ser un jugador registrado,
si no lo es se pide que se ingrese de nuevo, si se ingresa EXIT se cancela todo y se regresa al
MENÚ PRINCIPAL). Una vez hecho esto se turnará cada uno colocando la cantidad de barcos que
según la dificultad se lo permite (Véase Dificultad 2.a). Los tipos de barcos que pueden colocar
son los siguientes:
Ing. Erick Amaya
Barco
Cantidad
Bombas
necesarias
Código
Portaaviones 5 PA
Acorazado 4 AZ
Submarino 3 SM
Destructor 2 DT
Para colocar los barcos se debe pedir primero el código de este (PA, AZ, SM o DT), seguidamente
se indicará una celda inicial para el barco dentro de la matriz (indicando el índice de la fila y la
columna). NO se permite poner 2 barcos del mismo tipo, A MENOS que estén jugando de modo
EASY (que son 5 barcos permitidos y solo hay 4 tipos) que se le permite repetir, pero 1 Destructor.
NOTA: Se DEBE validar que un barco no se coloque encima de otros o que las coordenadas
ingresadas se salgan de los límites de la matriz.
El proceso de colocar los barcos se repetirá según la cantidad posible de barcos disponible según
la dificultad, una vez terminado el PLAYER 1, el PLAYER 2 debe realizar la misma acción de
colocación en su matriz.
Una vez que ambos han terminado de colocar sus barcos el juego se da por iniciado. El jugador 1
comienza indicando el no. de la fila y el no. de la columna (celda de la matriz) en la cual desea
mandar una bomba al jugador contrario. EL JUGADOR 1 DEBE VER LA MATRIZ DEL
JUGADOR CONTRARIO. Por ejemplo: El jugador 1 manda una bomba en la celda [3,3]:
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
Coordenada de bomba (Jugador 1):
-Jugador 2 tiene 5 barcos aun ---
Fila: 3
Columna 3
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ F ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
Coordenada de bomba (Jugador 2):
-Jugador 1 tiene 5 barcos aun –
Fila: 2
Columna 2
Ing. Erick Amaya
Si el jugador 1 falla el tiro en el tablero se dibujará una letra F indicando que para esa coordenada
la bomba cayó en agua y no en algún barco. Si en cambio le dio algún barco se debe indicar con
una X. Seguidamente será el turno del jugador 2 en hacer exactamente lo mismo. Cada jugador
tendrá su turno para mandar bombas al jugador contrario. Pero en el siguiente turno la F tiene que
desaparecer en el tablero.
Si un jugador logra finalmente bombardear un barco este se debe mostrar en pantalla indicándolo
con su código de este, Y si el barco recibió su último bombazo se muestra también en pantalla que
el barco de tal tipo se ha hundido:
HAY QUE RECORDAR que una vez que un barco es bombardeado todo el tablero de ese jugador
afectado se regenera moviendo sus barcos cada uno a posiciones distintas del tablero, de manera
ALEATORIA para no entorpecer el flujo del juego.
El juego terminara cuando alguien logre hundir todos los barcos del jugador contario. Al finalizar
el mismo se muestra un mensaje de que el jugador X fue el triunfador y automáticamente se
mostrara de nuevo el MENÚ PRINCIPAL. El triunfador recibe 3 ptos.
RETIRO
Un jugador se puede retirar en cualquier momento si ingresa -1 tanto en la parte de filas como de
columnas, no sin antes preguntarle se de verdad se desea salir, si el jugador confirma que si se
desea salir el juego termina y el otro jugador triunfo por retiro del contario.
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
Coordenada de bomba (Jugador 1):
-Jugador 2 tiene 5 barcos aun ---
Fila: 2
Columna 1
~ ~ ~ ~ ~ ~ ~ ~
~ AZ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~
SE HA BOMBARDEADO UN ACORAZADO!
SE HUNDIO EL ACORAZADO! Del Jugador 2
Coordenada de bomba (Jugador 2):
-Jugador 1 tiene 5 barcos aun ---
Fila:
Ing. Erick Amaya
2. CONFIGURACION
a. DIFICULTAD
En la parte de dificultad el usuario podrá determinar cuántos barcos por juego un jugador puede
colocar. Las opciones son (EASY – 5 barcos, NORMAL – 4 barcos, EXPERT – 2 barcos y
GENIUS – 1 barco). Luego de modificar la dificultad, el programa vuelve a cargar el SUB MENU
DE CONFIGURACION. Nota: Por default el juego DEBE estar en modo NORMAL..
b. MODO DE JUEGO
En esta opción se selecciona como se va jugar el juego. Hay 2 opciones, ARCADE o TUTORIAL.
La diferencia es que el modo ARCADE esconde todos los barcos a la vista de los jugadores y el
TUTORIAL muestra todos los barcos. Luego de modificar el modo de juego, el programa vuelve
a cargar el SUB MENU DE CONFIGURACION.
Nota: Por default el juego DEBE estar en modo TUTORIAL.
3- REPORTES
a. Descripción De mis Últimos 10 Juegos
Al seleccionar esta opción se debe mostrar que fue lo que paso en los últimos 10 juegos del jugador
que esta LOGGED IN. Luego de imprimir el listado el programa vuelve a mostrar el SUB MENU
DE REPORTES. Un ejemplo podría ser lo siguiente:
1- Carlos hundió todos los barcos de Javier en modo EASY.
2- Cindy hundió todos los barcos de Marcos en modo NORMAL.
3- Catracho hundió todos los barcos de Chapin en modo PRO.
4- El Mero mero se retiro del juego dejando como ganador a Tom.
5-
6-
7-
Ing. Erick Amaya
8-
9-
10-
NOTA: De primero siempre DEBE estar el registro del último juego realizado.
b. Ranking de Jugadores
Al seleccionar esta opción muestra el listado total de jugadores inscritos en el juego. Se muestran
TODOS sus datos. El listado imprime jugadores ordenados del jugador que tiene MAS PUNTOS
al que MENOS tiene.
Luego el programa vuelve a mostrar el SUB MENU DE REPORTES
4- MI PERFIL
a. Ver Mis Datos.
Muestra TODOS los datos del jugador que esta LOGGED IN. Luego el programa vuelve a mostrar
el SUB MENU DE MI PERFIL.
b. Modificar Mis Datos
Me permite modificar tanto el Username como el password del jugador que esta LOGGED IN.
Luego el programa vuelve a mostrar el SUB MENU DE MI PERFIL.
c. Eliminar Cuenta
Elimina la cuenta del jugador LOGGED IN de la colección de jugadores. El jugador YA NO
EXISTIRA MAS. Luego el programa muestra el MENU DE INICIO.
5- CERRAR SESION
Cierra la sesión del jugador LOGGED IN y se vuelve a mostrar el MENU DE INICIO.
Ing. Erick Amaya
BONO 2 oro EXTRA: Si se hace el proyecto con la librería Swing (VISUAL)
Los siguientes avances completados, por ahora TODO en el Main pero dejen bien marcado y
comentado todo para que sea fácil su estructuración una vez sepan clases:
• Manejar la colección de usuarios como un arreglo de Strings, donde se guarda solo el
username y el password digamos que es “honduras” para todos. Esto para probar la lógica
del Login, Logout, Crear Player, Ver Mis Datos y Editar mis Datos.
• Que, en Jugar, ya tomé automáticamente el usuario logged in (que solo es una string, POR
AHORA) y pide del teclado el usuario 2 y que validé que ese username este dentro del
arreglo de strings de usuarios. Que se puedan colocar los barcos dentro del tablero de cada
jugador. Que se puedan turnar mandando bombas y sepa reconocer cuando fallo o cuando
le dio a un barco. SI LE PEGA NO ES REQUERIDO QUE SE ORDENE
ALEATORIAMENTE de nuevo el tablero. NO es requerido evaluar el ganador, PERO SI
que se pueda retirar. Que usa por ahora la CONFIGURACION DEFAULT (NORMAL y
TUTORIAL)
• Que funcione TODA la logica del Menú de Inicio y el Menú Principal como se debe. En
las opciones que no se tienen que hacer aun como: Ranking y Ver mis partidas anteriores,
que desplieguen un listado INVENTADO hardcoded, solo para comprobar que se esta
llamando la opción correcta. En la configuración solo se toma la dificultad y el modo de
juego default.
ESPECIFICACIONES DE SUBIDA FINAL
REQUISITOS FINALES:
1- Se deben crear MINIMO las siguientes clases:
a. Clase Player que maneje la información del jugador. Aquí se debe tener un arreglo
de String para manejar los logs finales de la partida (Para mostrar luego las ultimas
partidas realizadas).
b. Clase Battleship con TODA la lógica del juego incluyendo la colección de Players,
los 2 tableros, el desarrollo de una partida, el usuario logged in (current user)….
Ing. Erick Amaya
c. Clase donde estará el Main de la aplicación que contendrá los menús de la
aplicación y llamará las opciones que ofrece la clase Battleship. ¡EL MAIN NO
TIENE NINGUNA LOGICA DEL JUEGO!
2- Se debe utilizar Arreglos Unidimensionales y bidimensionales.
3- Los proyectos con sus clases deben de estar debidamente estructurado, es decir sin
duplicación de códigos, sin funciones MUY cargadas.
4- Se debe usar TODOS los temas vistos en clase incluyendo: Foreach, Switch, Operador
Ternario, Static (¡que no sea la función MAIN!)

De antemano quedo muy agradecido por su atención y su ayuda!

Saludos!

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".