Sunteți pe pagina 1din 3

Tarea U03

Debe implementar las siguientes funciones dentro de un mismo módulo llamado


mis_funciones.py y el programa principal en otro script llamado principal.py. Ambos archivos
debe comprimirlos un solo archivo ZIP o RAR y entregarlo por Sidweb.

Programa principal. Desarrolle un programa principal que pida al usuario un valor N entre
8 y 20 (ambos incluidos) y que permita generar una matriz de NxN codificada en una cadena.
Cada fila de la matriz debe contener N/3 de enemigos (representados por números entre 1 y 4) y
el resto deben ser ceros, y todas las filas debe estar unidas por punto y coma. Luego muestre
dicha matriz en forma de tablero. Primero implemente todas las funciones y al final haga el
programa principal.

Funciones que debe desarrollar en mis_funciones.py:

1. def menu() Debe mostrar el siguiente menú, validar y retornar una opción escogida
por el usuario. Es decir, si el jugador escoge una opción incorrecta se la debe validar y
seguir pidiendo que ingrese una opción hasta que sea válida. Las opciones disponibles
son:
1. Iniciar partida
2. Ver estadísticas
3. Mostrar última partida
4. Salir

2. def mostrar_indice(n). Recibe un número entero positivo n, e imprime una cadena


donde se muestra el índice 1 y el n, pero entre ambos números hay una secuencia de
signos de suma(+) en lugar de los números de la secuencia, y separados por guiones. Por
ejemplo, si recibe 5 mostraría
1-+-+-+-5
Si recibe 12, mostraría
1-+-+-+-+-+-+-+-+-+-+12

3. def mostrar_fila(fila). Recibe la cadena fila, que está llena de N números


naturales menores a 4, separados por guiones, donde N es un valor entre 10 y 15. La
función debe mostrar únicamente los dígitos separados por espacios y agregarle una
barra vertical al inicio y al final de la fila. Por ejemplo:
tablero = "3-0-1-0-0-0-3-0-0-0-0-1"
Fila mostrada
| 3 0 1 0 0 0 3 0 0 0 0 1 |

4. def mostrar_tablero(tablero). Recibe la cadena tablero y debe imprimirlo como


se muestra a continuación. El tablero es una cadena de caracteres y está representado
por filas de números separadas por punto y coma. Debe llamar a la función mostrar_fila
para mostrar cada fila, pero además debe agregar los bordes superior e inferior como los
índices de las columnas del tablero (función mostrar_indice). El tablero representa una
matriz cuadrada de dimensiones NxN, donde N es un valor entre 10 y 15, es decir; si la
fila tiene 11 dígitos, entonces también tendrá 11 filas el tablero. Se recomienda utilizar
split() obtener N y usar for. Por ejemplo:
tablero = "3-0-1-0-0-0-3-0-0-0-0-1;0-1-0-0-0-3-0-0-2-2-0-0;0-0-0-0-
0-0-1-3-0-0-3-0;0-0-0-0-2-3-0-0-1-0-0-0;0-0-0-0-0-2-1-2-3-0-0-0;0-0-
0-1-1-3-0-0-0-1-0-0;0-3-0-2-0-0-0-3-0-3-0-0;0-0-0-0-3-0-1-2-0-0-0-
0;0-0-3-0-1-0-0-1-0-0-0-0;0-0-0-0-0-1-3-0-1-0-1-0;0-3-0-0-2-0-0-2-0-
1-0-0;0-0-3-0-1-0-0-1-0-2-0-0"
Tablero mostrado:
___________________________
| 3 0 1 0 0 0 3 0 0 0 0 1 |
| 0 1 0 0 0 3 0 0 2 2 0 0 |
| 0 0 0 0 0 0 1 3 0 0 3 0 |
| 0 0 0 0 2 3 0 0 1 0 0 0 |
| 0 0 0 0 0 2 1 2 3 0 0 0 |
| 0 0 0 1 1 3 0 0 0 1 0 0 |
| 0 3 0 2 0 0 0 3 0 3 0 0 |
| 0 0 0 0 3 0 1 2 0 0 0 0 |
| 0 0 3 0 1 0 0 1 0 0 0 0 |
| 0 0 0 0 0 1 3 0 1 0 1 0 |
| 0 3 0 0 2 0 0 2 0 1 0 0 |
| 0 0 3 0 1 0 0 1 0 2 0 0 |
---------------------------
1-+-+-+-+-+-+-+-+-+-+12

5. def generar_enemigos(N). La función debe generar N/3 números entre 1 y 4 (ambos


incluidos) y devolverlos en forma de lista de str. Por ejemplo: N
N = 12
['3', '1', '2', '4']
N = 10
['2', '2', '1']

6. def generar_linea(N). La función debe generar y devolver una nueva fila del tablero
en forma de cadena. La cadena debe estar rellena de ceros y un tercio deben ser
enemigos, utilice la función generar_enemigos(N). Los dígitos de la cadena deben estar
separados por guiones. Por ejemplo, si N=12 se obtendrá “ 0-0-3-0-1-0-0-1-0-2-0-
0” con 4 enemigos. Las posiciones de los enemigos deben ser aleatorias y distintas. Los
valores que pueden tomar los enemigos van desde 1 hasta 4. Se recomienda utilizar la
función shuffle() con listas y luego join().

7. def ingresar_valor(minimo, maximo). Esta función debe tener como valores


mínimo y máximo el 10 y el 15 de forma predeterminada. Además, debe pedir al usuario
que ingrese un valor en el rango indicado, ambos límites incluidos, y debe validar que lo
que ingrese sea únicamente números entre esos valores, caso contrario debe seguir
pidiendo al usuario que ingrese un número en ese rango. Se recomienda utilizar while.

S-ar putea să vă placă și