Tu código es una cajita de herramientas
las instrucciones que le des a tú código se repetirán muchas veces, es mejor guardar las operaciones y tus valores dentro de una variable.
Un ejemplo sería la decisión de elegir piedra papel o tijera, hay 3 opciones únicas, de las cuales solo una se puede elegir, partiendo de esa idea la mejor opción sería guardar las 3 opciones posibles dentro de una tupla
movimientosCPU = ("piedra", "papel", "tijera")
La computadora naturalmente no puede elegir todos las opciones, eso estaría muy OP. En cambio hagamos que elija una aleatoriamente para hacerlo más divertido, suerte que hay librerías que nos ayudan a hacer esto como la librería random, al principio del código usa import <nombre de la librería> para cargarla antes de empezar tu código, además te aconsejo que en tus proyectos busques librerías que te ayuden a hacer tus procesos más sencillos dentro de Python.
Siguiendo con el juego la CPU elegiría una opción aleatoria de tu tupla de esta forma
juegoCPU = random.choice(movimientosCPU)
Tu caja de herramientas seguirá abierta hasta que decidas cerrarla
Ahora nos queda la parte lógica del programa, el usuario tendrá que ser capaz de introducir un movimiento, para simplicidad, en forma de texto; el código deberá entonces evaluar el movimiento contra el de la CPU y dar 3 posibles resultados, empate, ganar y perder dependiendo de la combinación de los diferentes movimientos, además de que si el movimiento es empate el juego dará más oportunidades de jugar, como si un loop se tratará.
La solución más sencilla es abrir un loop y escribir el código lógico dentro de este, así el usuaario y la cpu podrán escoger diferentes movimientos para darle más variedad al ritmo del juego.
La lógica de un loop tiene dos estados, verdadero o falso, y asignaremos verdadero a una variable fuera del loop que lo pueda abrir y solo si el usuario pierde o gana entonces la variable pasará de ser verdadera a falsa para cerrar el loop.
La segunda parte será dar las condiciones lógicas que determinaran el resultado de cada partida usando la lógica del juego de piedra papel o tijera
Supongamos que guardaste tu movimiento en una variable llamada miJugada, ahora compararemos el string de esta con el string dentro de juegoCPU
Te ayudo con la expresión. Si el valor dentro de miJugada = juegoAleatorio entonces el juego es un empate y el loop no se cierra, dando lugar a otra partida.
Los demás escenarios lógicos tedrás que escribirlos ocn evaluaciones if, elif y else usando las reglas del juego de piedra papel o tijera.
loop = truewhileloop:
<codigo>
if miJugada == juegoCPU:
print("juego empatado")
elif <condicion para ganar>
print("juego ganado")
loop = falseelse:
print"juego perdido")
loop = false
Consejos y tips
Tu juego tiene que ser a prueba de errores, si el usario se equivoca o escribe otra opcion que no sea “piedra”, “papel” o "tijera"
asegurate de transformar el string y evaluar su contenido antes de pasarlo sobre el juego verdadero
usa funciones como lower() seguido de usar la variable que guardamos como movimientosCPU, de esta forma el formato del texto no afectará en el juego. Para evaluarlo puedes usar una función if como la siguiente
if miJugada in movimientosCPU:
/// continua el juego sin problemaselse;
pídele al usuario que escriba de nuevo su texto
“in” como habrás notado verifica que el primer string este dentro de las tupla movimientosCPU, si no está entonces repite la linea de código para que el usuario introduzca una respuesta valida.
Espero que puedas hacer un juego creativo y más complicado.