Este programa, creado en PSeInt, es una compilación de varios proyectos que he desarrollado, todos reunidos en una sola aplicación para facilitar su uso. El programa incluye una variedad de juegos interactivos diseñados para proporcionar entretenimiento y desafío. Además, cuenta con una funcionalidad de conversión de números romanos que permite a los usuarios convertir números romanos a su equivalente decimal y viceversa. Esta característica es especialmente útil para aquellos interesados en la historia y las matemáticas. En resumen, este programa es una combinación de diversión y aprendizaje, diseñado para ser tanto educativo como entretenido.
--------------------------------------------------------------------------------
Funcion menu
Escribir "********-----*** Bienvenidos a Wasaaaa ***-----********"
Escribir "En este programa encontraras cosas divertidas de hacer :)"
Escribir " Por favor, elija la opcion que mas le llame la atencion "
Escribir "1. Números romanos"
Escribir "2. Hanoi"
Escribir "3. Misil"
Escribir "4. Piedra, papel o tijera"
Escribir "5. Salir"
FinFuncion
Algoritmo opciones
repetir
menu
leer opcion
segun opcion hacer
1:
// leer el número
Escribir "Aqui aprendera que simbolo romano son los numeros que ingrese"
Escribir "Ingrese un número entre 1 y 1000"
Leer Numero
// controlar que sea válido para convertir
SePuedeConvertir<-Verdadero
Si Numero=0 Entonces
Escribir "No existe ningún símbolo para representar el 0"
SePuedeConvertir<-Falso
FinSi
Si Numero<>trunc(numero) Entonces
Escribir "El número debe ser entero"
SePuedeConvertir<-Falso
FinSi
Si Numero>1000 Entonces
Escribir "Muy alto"
SePuedeConvertir<-Falso
FinSi
Si Numero<0 Entonces
Escribir "Debe ser positivo"
SePuedeConvertir<-Falso
FinSi
// realizar la conversión
Si SePuedeConvertir Entonces
Si Numero=1000 Entonces
Escribir "M"
Sino
Dimension nu[10], nd[10], nc[10] // notación para unidades, decenas y centenas
nu[1]<-''; nu[2]<-'I'; nu[3]<-'II'; nu[4]<-'III'; nu[5]<-'IV'; nu[6]<-'V'; nu[7]<-'VI'; nu[8]<-'VII'; nu[9]<-'VIII'; nu[10]<-'IX'
nd[1]<-''; nd[2]<-'X'; nd[3]<-'XX'; nd[4]<-'XXX'; nd[5]<-'XL'; nd[6]<-'L'; nd[7]<-'LX'; nd[8]<-'LXX'; nd[9]<-'LXXX'; nd[10]<-'XC'
nc[1]<-''; nc[2]<-'C'; nc[3]<-'CC'; nc[4]<-'CCC'; nc[5]<-'CD'; nc[6]<-'D'; nc[7]<-'DC'; nc[8]<-'DCC'; nc[9]<-'DCCC'; nc[10]<-'CM'
centenas<-trunc(Numero/100) MOD 10
decenas<-trunc(Numero/10) MOD 10
unidades<-Numero MOD 10
Escribir nc[centenas+1],nd[decenas+1],nu[unidades+1]
FinSi
FinSi
2:
Dimension torres[3,10], cant_discos[3]
// pedir y validar cuantos discos colocar en la primer torre
Escribir "Muestre su destreza aqui :)"
Escribir "Ingrese el numero de discos (1-8):"
leer discos
mientras discos<1 O discos>8 Hacer
Escribir "El numero de discos debe ser mayor a 0 y menor a 5:"
leer discos
finmientras
// inicializar los datos
cant_discos[1]<-discos
cant_discos[2]<-0
cant_discos[3]<-0
Para i<-1 Hasta discos hacer
torres[1,i]<-discos-i+1
FinPara
// jugar!
cant_movs<-0
Mientras cant_discos[3]<>discos Hacer // mientras no esten todos los discos en la tercer torre, el juego sigue
Limpiar Pantalla
Para i<-1 Hasta 3 Hacer // dibujar las tres torres
escribir "Torre ",i
si cant_discos[i]=0 Entonces
Escribir ""
sino
para j<-cant_discos[i] hasta 1 con paso -1 Hacer // recorrer los discos de la torre, de arriba hacia abajo
segun torres[i,j] Hacer // dibujar cada disco
1: Escribir " XX"
2: Escribir " XXXXXX"
3: Escribir " XXXXXXXXXX"
4: Escribir " XXXXXXXXXXXXXX"
5: Escribir " XXXXXXXXXXXXXXXXXX"
6: Escribir " XXXXXXXXXXXXXXXXXXXXXX"
7: Escribir " XXXXXXXXXXXXXXXXXXXXXXXXXX"
8: Escribir " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
finsegun
FinPara
finsi
Escribir " ----------------------------------"
Escribir ""
FinPara
// solicitar movimiento
Escribir "Mover desde la torre: "
leer t1
Escribir "hacia la torre: "
leer t2
si t1<1 O t1>3 O t2<1 O t2>3 Entonces // controlar que el nro de torre sea valido
Escribir "Movimiento invalido"
Esperar Tecla
sino
Si cant_discos[t1]=0 Entonces // controlar que la torre 1 tengo al menos un disco
Escribir "Movimiento invalido"
Esperar Tecla
Sino
disco_a_mover <- torres[t1,cant_discos[t1]] // obtener tamanio del disco que se quiere mover
puede_mover<-verdadero
Si cant_discos[t2]<>0 entonces // controlar que la torre dos no tenga discos o tenga solo discos mas grandes
Si torres[t2,cant_discos[t2]]<disco_a_mover Entonces
puede_mover<-Falso
FinSi
FinSi
Si puede_mover Entonces // si paso todos los controles, mover
cant_movs <- cant_movs+1
cant_discos[t2]<-cant_discos[t2]+1
torres[t2,cant_discos[t2]] <- disco_a_mover
cant_discos[t1]<-cant_discos[t1]-1
Sino
Escribir "Movimiento invalido"
Esperar Tecla
FinSi
FinSi
FinSi
FinMientras
// mostrar resultado
Limpiar Pantalla
Escribir "Juego finalizado en ",cant_movs," movimientos!"
3:
Escribir "*/*-*/-*/-*Animacion de lanzamiento de cohete-*-*/-*/-*/-*"
Escribir "Presione una tecla para iniciar el lanzamiento del Starship de Elon Musk!"
Esperar Tecla
// el arreglo cohete tiene el dibujo del cohete como lineas de texto
dimension cohete[9]
cohete[1]<-" /|\ "
cohete[2]<-" |B| "
cohete[3]<-" |O| "
cohete[4]<-" |M| "
cohete[5]<-" |B| "
cohete[6]<-" //|\\ "
cohete[7]<-" ***** "
cohete[8]<-"* * * * *"
cohete[9]<-" * * * * "
// primero se muestra la primer parte del dibujo y la cuenta regresiva
Para i<-1 hasta 11 Hacer
Borrar Pantalla
Para j<-1 hasta 15 Hacer
Escribir ""
FinPara
Para j<-1 hasta 6 Hacer
Escribir cohete[j]
FinPara
Escribir ""
Escribir "Lanzamiento en ",11-i
Esperar 1 Segundo
FinPara
// despues se muestra el dibujo completo y cada vez mas arriba
Para i<-1 hasta 15 Hacer
Borrar Pantalla
Para j<-i hasta 15 Hacer
Escribir ""
FinPara
Para j<-1 hasta 8 Hacer
Escribir cohete[j]
FinPara
si i>1 Entonces
Escribir " * * * * "
finsi
Esperar 1/i Segundo
FinPara
// finalmente se va modificando el dibujo para hacer la explosion
// estado tiene un entero que dice en que parte de la explosion va cada linea del dibujo
Dimension estado[6]
estado[1]<-3; estado[2]<-2; estado[3]<-1
estado[4]<-2; estado[5]<-3; estado[6]<-4
Para i<-1 hasta 10 Hacer
Borrar Pantalla
Para j<-1 hasta 6 Hacer
Estado[j]<-Estado[j]-1
segun Estado[j] Hacer
0: cohete[j]<-" + "
-1,-5: cohete[j]<-" +X+ "
-2,-4: cohete[j]<-" +XXX+ "
-3: cohete[j]<-" +XXXXX+ "
-6: cohete[j]<-" "
FinSegun
Escribir cohete[j]
FinPara
Esperar .2 Segundos
FinPara
4:
Definir a, b Como Entero
a= 0
b= 0
Mientras a == b Hacer
Escribir "Jugador 1"
Escribir "1. Piedra"
Escribir "2. Papel"
Escribir "3. Tijera"
leer a
Limpiar Pantalla
si a > 0 y a < 4 Entonces
Escribir "Jugador 2"
Escribir "1. Piedra"
Escribir "2. Papel"
Escribir "3. Tijera"
leer b
Limpiar Pantalla
si b > 0 y b < 4 Entonces
si a == 1 y b == 3 Entonces
Escribir "El ganador es el jugador 1"
sino
si a == 2 y b ==1 Entonces
Escribir "El ganador es el jugador 1"
sino
si a == 3 y b ==2 Entonces
Escribir "El ganador es el jugador 1"
FinSi
FinSi
FinSi
si b == 1 y a == 3 Entonces
Escribir "El ganador es el jugador 2"
sino
si b == 2 y a ==1 Entonces
Escribir "El ganador es el jugador 2"
sino
si b == 3 y a ==2 Entonces
Escribir "El ganador es el jugador 2"
FinSi
FinSi
FinSi
si a == b Entonces
Escribir "El juego queda empatado"
FinSi
SiNo
Escribir "Ingrese una opcion correcta"
FinSi
SiNo
Escribir "Ingrese una opción correcta"
FinSi
FinMientras
FinSegun
Hasta Que opcion= 5
Escribir "Gracias por usarnos"
FinAlgoritmo
Comentarios
Publicar un comentario