Matlab - Ejercicio para resolver

   
Vista:

Ejercicio para resolver

Publicado por Snowlis (1 intervención) el 10/05/2012 18:06:55
Buenas tardes.

Tengo un ejercicio que hacer y no tengo ni idea de como solucionarlo.
Se la pregunta 1,2,3 pero el resto ni idea.

Me gustaria que alguno de vosotros me echara una mano.

Ejercicio 1 (1 punto)
Escribe una función en Matlab que dibuje un tablero de tres en raya. Dicha función deberá tener
la siguiente cabecera:
function DibujaTablero
Dicha función deberá dibujar las siguientes líneas:
• Línea que va del punto (10, 0) al (10, 30)
• Línea que va del punto (20, 0) al (20, 30)
• Línea que va del punto (0, 10) al (30, 10)
• Línea que va del punto (0, 10) al (30, 10)
Recuerda que Matlab dispone de una función line para el dibujo de una línea. La llamada line ([x0
x1], [y0 y1]) dibujará una línea del punto (x0,y0) al punto (x1, y1).
Ejercicio 2 (1 punto)
Escribe una función en Matlab que dibuje una ficha O en el tablero de tres en raya. Dicha función
deberá tener la siguiente cabecera:
function DibujaO (f, c)
donde f y c son el número de fila y de columna del tablero donde se desea dibujar la ficha. La
función dibujará una circunferencia de radio 5 y centro en el punto de coordenadas (radio*(2*c-1),
radio*(2*f-1)). Para el dibujo propiamente dicho de la circunferencia, se deberá usar la función
DibujaCircunferencia(centro, radio) que dibuja una circunferencia centrada en el punto centro y
con radio de longitud radio.
1/4
902 – Examen de prácticas Curso 2010/2011 – Convocatoria de septiembre
Ejercicio 3 (1 punto)
Escribe una función en Matlab que dibuje una ficha X en el tablero de tres en raya. Dicha función
deberá tener la siguiente cabecera:
function DibujaX (f, c)
donde f y c son el número de fila y de columna del tablero donde se desea dibujar la ficha.
La función dibujará una X en el punto (radio*(2*c-1), radio*(2*f-1)); dicha X estará formada por
dos líneas:
• Línea que va desde el punto (centro(1)-radio, centro(2)-radio) al punto (centro(1)+radio,
centro(2)+radio)
• Línea que va desde el punto (centro(1)+radio, centro(2)-radio) al punto (centro(1)-radio,
centro(2)+radio)
Ejercicio 4 (1 punto)
Escribe una función en Matlab que dibuje el tablero del tres en raya y en él las fichas de los
jugadores. Dicha función deberá tener la siguiente cabecera:
function DibujaTableroConFichas (tabfichas)
donde tabfichas es una matriz de 3x3 que mantiene información sobre la posición en el tablero de
las fichas de los distintos jugadores. El elemento tabfichas(f,c) contendrá el valor 1 si la celda (f,c)
del tablero está ocupada por una ficha del jugador 1 (una X), el valor 2 si dicha celda está
ocupada por una ficha del jugador 2 y cualquier otro valor si la celda está vacía.
Ejercicio 5 (1 punto)
Escribe una función en Matlab que pida un valor dentro de un rango determinado. Dicha función
deberá tener la siguiente cabecera:
function valor = PideValorAcotado (pregunta, minval, maxval)
donde pregunta, es el texto que se presentará al usuario para pedirle el valor, y minval y maxval
son el mínimo y el máximo valor que se permitirá indicar al usuario. La petición deberá repetirse
mientras el valor introducido por el usuario no esté entre minval y maxval.
Ejercicio 6 (1 punto)
Escribe una función en Matlab que pida al usuario una posición en el tablero. Dicha función
deberá tener la siguiente cabecera:
function [f, c] = PidePosicion (tabf)
donde tabf es una matriz de 3x3 que mantiene información sobre la posición en el tablero de las
fichas de los distintos jugadores, y f y c son las coordenadas de la posición indicada por el
2/4
902 – Examen de prácticas Curso 2010/2011 – Convocatoria de septiembre
usuario. La petición deberá repetirse mientras el usuario no indique una posición correspondiente
a una celda vacía del tablero.
Ejercicio 7 (1 punto)
Escribe una función en Matlab que compruebe en el tablero si un determinado jugador ha hecho
un tres en raya. Dicha función deberá tener la siguiente cabecera:
function htr = VerificaTresRaya (tabf, valorj)
donde tabf es una matriz de 3x3 que r mantiene información sobre la posición en el tablero de las
fichas de los distintos jugadores, valorj es el número del jugador del cual se quiere comprobar si
ha hecho un tres en raya, y htr tiene el valor cero si el jugador indicado no ha hecho un tres en
raya y un valor distinto de cero en caso contrario.
Ejercicio 8 (1 punto)
Escribe una función en Matlab que reúna las acciones realizadas por un jugador del tres en raya
en su torno. Dicha función deberá tener la siguiente cabecera:
function [tabf, res] = RealizaJugada (tabf, jugador)
donde tabf es una matriz de 3x3 que r mantiene información sobre la posición en el tablero de las
fichas de los distintos jugadores, jugador es el número del jugador del cual se quiere comprobar si
ha hecho un tres en raya, y res tiene el valor cero si el jugador indicado no ha hecho un tres en
raya y un valor distinto de cero en caso contrario. Los pasos a realizar por dicha función son:
• Petición de una posición al usuario
• Marcar dicha posición en el tablero con el número del jugador
• Dibujar el tablero con todas sus fichas
• Verificar si el jugador ha conseguido un tres en raya
Ejercicio 9 (1 punto)
Escribe una función en Matlab que permita a dos usuarios jugar al tres en raya. Dicha función
deberá tener la siguiente cabecera:
function JuegaTresRaya
Esta función deberá seguir este procedimiento:
Inicializar a cero el tablero (usar la función zeros de Matlab)
Mientras no se llegue al final de juego hacer
Realizar la jugada correspondiente al jugador 1
Si no se ha llegado al final de juego entonces
Realizar la jugada correspondiente al jugador 2
FinSi
FinMientras
Recuerda que la función zeros(n) de Matlab genera una matriz de nxn ceros.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder