Ayuda programa
Publicado por Jose Luis (1 intervención) el 04/05/2007 20:33:48
Hola, si alguien me pudiera hacer este programa me seria de gran ayuda y le estaria muy agradecido, un saludo.
Realiza un programa en ensamblador MIPS que juegue al tres en raya.
El tablero es de 3x3, en donde cada celda puede estar vacía o contener una X o una O, que representan a
los jugadores. Cada jugador colocará una ficha por turno. El juego finaliza cuando uno de los jugadores
coloca tres fichas en línea (recta o diagonal) o cuando se rellena el tablero completo, en ese caso se
considerará empate.
Para seleccionar la celda donde colocar una ficha, consideraremos las nueve celdas con los valores del 1
al 9, en el siguiente orden:
1 2 3
4 5 6
7 8 9
El jugador introducirá el número de la celda donde quiere introducir la ficha.
La representación gráfica en un ejemplo concreto podría ser ([] indica celda libre):
X[][]
[]O[]
[]XO
Turno del jugador 1, donde desea mover: 2
XX[]
[]O[]
[]XO
El programa ha de verificar que la celda donde queremos introducir una ficha esté libre.
Al jugador se le permitirá poder jugar contra otra persona o contra el ordenador.
En el caso de jugar contra el ordenador, tendremos varios niveles:
Nivel 1 (Fácil).- El ordenador selecciona una celda libre al azar.
Nivel 2 (Intermedio).- El ordenador se defiende evitando que hagamos el 3 en raya, es decir,
antes de mover, comprobará que no podemos hacer 3 en raya, en caso contrario colocará la ficha
para evitarlo. Si no hay amenaza de 3 en raya, el ordenador selecciona una jugada al azar como
en el nivel 1.
Nivel 3 (Avanzado).- Aquí primero intentará ganar comprobando si tiene la posibilidad de hacer
3 en raya, en caso contrario se comportará como en el nivel 2.
Nivel 4 (Maestro).- Aparte de considerar poder ganar o evitar perder como en los niveles
inferiores, aquí tendremos en cuenta consideraciones como que si la celda central (5) está libre y
nos da igual donde mover, es mejor hacerlo en esa celda. También, que si la celda central está
ocupada, siempre es mejor colocar una ficha en una esquina (celdas 1, 3 ,7 y 9) que en las zonas
centrales (celdas 2, 4, 6 y 8).
Deberás utilizar procedimientos para controlar el juego, como por ejemplo:
Para comprobar si hay 3 en raya.
Para pedir la jugada del ordenador según el nivel. Considerar que si estamos en un nivel y no
podemos encontrar una jugada con los requerimientos de ese nivel, podemos llamar al nivel
inferior.
Pedir movimiento al jugador. Así será más fácil plantear partidas jugador-jugador o jugadorordenador.
Así como poder elegir si el jugador sale o es el ordenador quien lo hace.
Escribir el tablero.
Puedes añadir todas las consideraciones adicionales que desees, como por ejemplo:
Pedir los nombres de los jugadores.
Poder jugar un campeonato al mejor de un número determinado de partidas. Cambiando el turno
en cada encuentro.
Implementar otro nivel de inteligencia superior.
Realiza un programa en ensamblador MIPS que juegue al tres en raya.
El tablero es de 3x3, en donde cada celda puede estar vacía o contener una X o una O, que representan a
los jugadores. Cada jugador colocará una ficha por turno. El juego finaliza cuando uno de los jugadores
coloca tres fichas en línea (recta o diagonal) o cuando se rellena el tablero completo, en ese caso se
considerará empate.
Para seleccionar la celda donde colocar una ficha, consideraremos las nueve celdas con los valores del 1
al 9, en el siguiente orden:
1 2 3
4 5 6
7 8 9
El jugador introducirá el número de la celda donde quiere introducir la ficha.
La representación gráfica en un ejemplo concreto podría ser ([] indica celda libre):
X[][]
[]O[]
[]XO
Turno del jugador 1, donde desea mover: 2
XX[]
[]O[]
[]XO
El programa ha de verificar que la celda donde queremos introducir una ficha esté libre.
Al jugador se le permitirá poder jugar contra otra persona o contra el ordenador.
En el caso de jugar contra el ordenador, tendremos varios niveles:
Nivel 1 (Fácil).- El ordenador selecciona una celda libre al azar.
Nivel 2 (Intermedio).- El ordenador se defiende evitando que hagamos el 3 en raya, es decir,
antes de mover, comprobará que no podemos hacer 3 en raya, en caso contrario colocará la ficha
para evitarlo. Si no hay amenaza de 3 en raya, el ordenador selecciona una jugada al azar como
en el nivel 1.
Nivel 3 (Avanzado).- Aquí primero intentará ganar comprobando si tiene la posibilidad de hacer
3 en raya, en caso contrario se comportará como en el nivel 2.
Nivel 4 (Maestro).- Aparte de considerar poder ganar o evitar perder como en los niveles
inferiores, aquí tendremos en cuenta consideraciones como que si la celda central (5) está libre y
nos da igual donde mover, es mejor hacerlo en esa celda. También, que si la celda central está
ocupada, siempre es mejor colocar una ficha en una esquina (celdas 1, 3 ,7 y 9) que en las zonas
centrales (celdas 2, 4, 6 y 8).
Deberás utilizar procedimientos para controlar el juego, como por ejemplo:
Para comprobar si hay 3 en raya.
Para pedir la jugada del ordenador según el nivel. Considerar que si estamos en un nivel y no
podemos encontrar una jugada con los requerimientos de ese nivel, podemos llamar al nivel
inferior.
Pedir movimiento al jugador. Así será más fácil plantear partidas jugador-jugador o jugadorordenador.
Así como poder elegir si el jugador sale o es el ordenador quien lo hace.
Escribir el tablero.
Puedes añadir todas las consideraciones adicionales que desees, como por ejemplo:
Pedir los nombres de los jugadores.
Poder jugar un campeonato al mejor de un número determinado de partidas. Cambiando el turno
en cada encuentro.
Implementar otro nivel de inteligencia superior.
Valora esta pregunta


0