0% encontró este documento útil (0 votos)
50 vistas9 páginas

Python Con Thonny

Primeras nociones para programar

Cargado por

Jorge Angulo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
50 vistas9 páginas

Python Con Thonny

Primeras nociones para programar

Cargado por

Jorge Angulo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

—------------------------------------------------------------------------------------------------------------------

import math

def suma(a, b):


return a + b

def resta(a, b):


return a - b

def multiplicacion(a, b):


return a * b

def division(a, b):


if b == 0:
return "Error: División por cero"
return a / b

def logaritmo(a, base=10):


if a <= 0:
return "Error: Logaritmo de un número no positivo"
return math.log(a, base)

def raiz_cuadrada(a):
if a < 0:
return "Error: Raíz cuadrada de un número negativo"
return math.sqrt(a)

def potencia(a, b):


return a ** b

def main():
print("Calculadora")
print("Seleccione una opción:")
print("1. Suma")
print("2. Resta")
print("3. Multiplicación")
print("4. División")
print("5. Logaritmo")
print("6. Raíz Cuadrada")
print("7. Potencia")

opcion = input("Opción: ")

if opcion in ['1', '2', '3', '4', '5', '7']:


a = float(input("Ingrese el primer número: "))
b = float(input("Ingrese el segundo número: "))

if opcion == '1':
print(f"Resultado: {suma(a, b)}")
elif opcion == '2':
print(f"Resultado: {resta(a, b)}")
elif opcion == '3':
print(f"Resultado: {multiplicacion(a, b)}")
elif opcion == '4':
print(f"Resultado: {division(a, b)}")
elif opcion == '5':
base = float(input("Ingrese la base del logaritmo (default es 10): ") or 10)
print(f"Resultado: {logaritmo(a, base)}")
elif opcion == '6':
a = float(input("Ingrese el número: "))
print(f"Resultado: {raiz_cuadrada(a)}")
elif opcion == '7':
print(f"Resultado: {potencia(a, b)}")
else:
print("Opción no válida")
elif opcion == 8:
break

if __name__ == "__main__":
main()

—--------------------------------------------------------------------------
Ahorcado
# Ahorcado con 6 intentos y 100 palabras para jugar
import random
palabras = ["abeja", "abrazo", "abril", "acento", "activo", "aguila", "aire", "ajedrez", "ala",
"alba", "arbol", "arena", "arte", "asado", "azucar", "azul", "baile", "balanza", "banco", "barco",
"barril", "beso", "billete", "boca", "bola", "bolsa", "brazo", "brocha", "bruma", "brujula", "burro",
"bodega", "caballo", "caceria", "cadena", "cajon", "calor", "camara", "cambio", "canal",
"canasta", "cancer", "canto", "cara", "caracol", "cartero", "casa", "casco", "casino", "castillo",
"celular", "cena", "cepillo", "cereza", "cerro", "cierre", "cine", "cinta", "circo", "cielo", "claro",
"clase", "cliente", "clima", "coche", "coco", "collar", "color", "cometa", "comida", "conejo",
"copa", "copia", "corazon", "correo", "corto", "cosa", "costa", "craneo", "crema", "cubo",
"cuchara", "cuenta", "cuerda", "cuerpo", "curva", "dato", "dedo", "dedal", "deber", "deuda",
"diario", "disco", "dios", "dibujo", "diente", "dingo", "dosis", "dragon"]

def elige_palabra(lista_palabras):
return random.choice(lista_palabras).lower()

def mostrar_palabra(palabra, letras_adivinadas):


return " ".join([letra if letra in letras_adivinadas else "_" for letra in palabra])

def jugar():
palabra = elige_palabra(palabras)
letras_adivinadas = set()
intentos = 6 #Estos son los intentos para adivinar la palabra

print("Juego del ahorcado (Tienes 6 intentos)")


print(mostrar_palabra(palabra, letras_adivinadas))

while intentos > 0:


letra = input("Adivina una letra: ").lower()

if letra in letras_adivinadas:
print("Ya probaste esa letra prueba con otra :/")
elif letra in palabra:
letras_adivinadas.add(letra)
print(f"¡Bien hecho! La letra '{letra}' está en la palabra.")
else:
intentos -= 1
print(f"La letra '{letra}' no esta en la palabtra :( . Te quedan -> {intentos} intentos.")

print(mostrar_palabra(palabra, letras_adivinadas))

if all(letra in letras_adivinadas for letra in palabra):


print("Adivinaste la palabtra :D")
break
else:
print(f"Perdiste >:/ La solucion era '{palabra}'.")

if __name__ == "__main__":
jugar
—-------------------------------------------------------------------------------------------------------------------
import numpy as np

TAM = 8

# Funcion que crea un tablero con todos los espacios en blanco


def CrearTablero():
tablero = np.full((TAM, TAM), " ", dtype=str)
return tablero

# Rellenar el tablero
def RellenarTablero(tablero):
piezas_negras = ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r']
piezas_blancas = ['R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R']

# Piezas negras
tablero[0] = piezas_negras
tablero[1, :] = 'p'

# Piezas Blancas
tablero[6, :] = 'P'
tablero[7] = piezas_blancas
return tablero

def ImprimirTablero(tablero):
print(" 1 2 3 4 5 6 7 8", end=" ")
for i in range(8):
print("\n", i+1, end=" ")
for j in range(8):
print(tablero[i][j], end=" ")
print()

def FinalizarTablero(tablero):
if not "K" in tablero:
print("Bot gana, blanco pierde")
return True
elif not "k" in tablero:
print("El negro está muerto, ganas")
return True
else:
return False

def PedirMovimiento():
try:
columnaInicial = int(input("Introduce la columna inicial (1-8): ")) - 1
filaInicial = int(input("Introduce la fila inicial (1-8): ")) - 1
columnaFinal = int(input("Introduce la columna final (1-8): ")) - 1
filaFinal = int(input("Introduce la fila final (1-8): ")) - 1
return columnaInicial, filaInicial, columnaFinal, filaFinal
except ValueError:
print("Movimiento inválido, no introduzcas caracteres, solo números")
return PedirMovimiento()

# Función para mover una pieza en el tablero


def MoverPieza(tablero, columnaInicial, filaInicial, columnaFinal, filaFinal):
pieza = tablero[filaInicial, columnaInicial]
tablero[filaInicial, columnaInicial] = ' '
tablero[filaFinal, columnaFinal] = pieza

# Función para verificar si el movimiento de una pieza es válido


def MovimientoValido(tablero, columnaInicial, filaInicial, columnaFinal, filaFinal):
pieza = tablero[filaInicial, columnaInicial]
destino = tablero[filaFinal, columnaFinal]

# Movimiento del peón blanco


if pieza == 'P':
if filaInicial == 6 and filaFinal == 4 and columnaInicial == columnaFinal and tablero[5,
columnaInicial] == ' ' and tablero[4, columnaInicial] == ' ':
return True
if filaFinal == filaInicial - 1 and columnaInicial == columnaFinal and destino == ' ':
return True
if filaFinal == filaInicial - 1 and abs(columnaFinal - columnaInicial) == 1 and
destino.islower():
return True
if filaFinal == 0:
tablero[filaFinal, columnaFinal] = 'Q'
return True

# Movimiento del peón negro


if pieza == 'p':
if filaInicial == 1 and filaFinal == 3 and columnaInicial == columnaFinal and tablero[2,
columnaInicial] == ' ' and tablero[3, columnaInicial] == ' ':
return True
if filaFinal == filaInicial + 1 and columnaInicial == columnaFinal and destino == ' ':
return True
if filaFinal == filaInicial + 1 and abs(columnaFinal - columnaInicial) == 1 and
destino.isupper():
return True
if filaFinal == 7:
tablero[filaFinal, columnaFinal] = 'q'
return True

# Movimiento de la Torre
if pieza in ['R', 'r']:
if filaInicial == filaFinal or columnaInicial == columnaFinal:
if all(tablero[min(filaInicial, filaFinal):max(filaInicial, filaFinal), columnaInicial] == ' ')
and \
all(tablero[filaInicial, min(columnaInicial, columnaFinal):max(columnaInicial,
columnaFinal)] == ' '):
return True

# Movimiento del Caballo


if pieza in ['N', 'n']:
if (abs(filaFinal - filaInicial) == 2 and abs(columnaFinal - columnaInicial) == 1) or \
(abs(filaFinal - filaInicial) == 1 and abs(columnaFinal - columnaInicial) == 2):
return True

# Movimiento del Alfil


if pieza in ['B', 'b']:
if abs(filaFinal - filaInicial) == abs(columnaFinal - columnaInicial):
# Verificar si no hay piezas en el camino
fila_step = 1 if filaFinal > filaInicial else -1
col_step = 1 if columnaFinal > columnaInicial else -1
for step in range(1, abs(filaFinal - filaInicial)):
if tablero[filaInicial + step * fila_step, columnaInicial + step * col_step] != ' ':
return False
return True

# Movimiento de la Reina
if pieza in ['Q', 'q']:
if abs(filaFinal - filaInicial) == abs(columnaFinal - columnaInicial) or \
filaInicial == filaFinal or columnaInicial == columnaFinal:
# Verificar si no hay piezas en el camino
if filaInicial == filaFinal or columnaInicial == columnaFinal:
if all(tablero[min(filaInicial, filaFinal):max(filaInicial, filaFinal), columnaInicial] == ' ')
and \
all(tablero[filaInicial, min(columnaInicial, columnaFinal):max(columnaInicial,
columnaFinal)] == ' '):
return True
else:
fila_step = 1 if filaFinal > filaInicial else -1
col_step = 1 if columnaFinal > columnaInicial else -1
for step in range(1, abs(filaFinal - filaInicial)):
if tablero[filaInicial + step * fila_step, columnaInicial + step * col_step] != ' ':
return False
return True

# Movimiento del Rey


if pieza in ['K', 'k']:
if abs(filaFinal - filaInicial) <= 1 and abs(columnaFinal - columnaInicial) <= 1:
return True

return False
# Función para gestionar el turno del jugador
def JugarTurno(tablero, turno):
print(f"Turno {turno}")
columnaInicial, filaInicial, columnaFinal, filaFinal = PedirMovimiento()

if MovimientoValido(tablero, columnaInicial, filaInicial, columnaFinal, filaFinal):


MoverPieza(tablero, columnaInicial, filaInicial, columnaFinal, filaFinal)
else:
print("Movimiento inválido, intenta de nuevo")
JugarTurno(tablero, turno)

# Función para verificar si el juego ha terminado


def FinalizarJuego(tablero):
if not np.any(tablero == 'K'):
print("Bot gana, blanco pierde")
return True
if not np.any(tablero == 'k'):
print("El negro está muerto, ganas")
return True
return False

# Inicialización del juego


Tablero = CrearTablero()
Tablero = RellenarTablero(Tablero)
turno = "blanco"

while not FinalizarJuego(Tablero):


ImprimirTablero(Tablero)
JugarTurno(Tablero, turno)
turno = "negro" if turno == "blanco" else "blanco"

ImprimirTablero(Tablero)
print("Fin del juego")

También podría gustarte