Una vez más aquí, para preguntar por python.
Resulta que leí más como toooodos me mencionaron :laugh:
cambié la variable "str" por fzr.
quedan muchas consultas en mí cabeza
- Por qué al importar "os" y anteponer os.system("clear") me arroja un error.
- El uso del if, todavía no lo logro comprender.
- Siento que el menú es muy disfuncional y podría tener errores.
- Sé que siempre hay distintas formas de hacer una cosa, pero cuál sería la más correcta para lo que yo busco?
Tengo los porcentajes configurados en cada variable, y me funciona bien, todos los valores son exactos, ya que sólo sería de números desde el 300 y el doble de cada número sucesivamente, por ende no tendré problemas con decimales ni nada de eso.
ahora sólo me complica el menú.
Espero que no se molesten, pero no logro comprender muchas cosas de las que leo.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def funcion1():
print(' Stats Recomendados Soul Master')
point = 0
print
point = int(input(' Total de puntos: '))
frzPct = 2
agiPct = 40
vitPct = 8
enePct = 50
PctVal = 100
frz = (point * frzPct) / PctVal
agi = (point * agiPct) / PctVal
vit = (point * vitPct) / PctVal
ene = (point * enePct) / PctVal
print' Fuerza : ', frz
print' Agilidad : ', agi
print' Vitalidad: ', vit
print' Energía : ', ene
print
print' Por Jorge Martini 2016'
input()
def funcion2():
print(' Stats Recomendados Blade Knight')
point = 0
print
point = int(input(' Total de puntos: '))
frzPct = 40
agiPct = 30
vitPct = 10
enePct = 20
PctVal = 100
frz = (point * frzPct) / PctVal
agi = (point * agiPct) / PctVal
vit = (point * vitPct) / PctVal
ene = (point * enePct) / PctVal
print' Fuerza : ', frz
print' Agilidad : ', agi
print' Vitalidad: ', vit
print' Energía : ', ene
print
print' Por Jorge Martini 2016'
input()
def funcion3():
print(' Stats Recomendados Muse Elf(Agilidad)')
point = 0
print
point = int(input(' Total de puntos: '))
frzPct = 24
agiPct = 64
vitPct = 10
enePct = 2
PctVal = 100
frz = (point * frzPct) / PctVal
agi = (point * agiPct) / PctVal
vit = (point * vitPct) / PctVal
ene = (point * enePct) / PctVal
print' Fuerza : ', frz
print' Agilidad : ', agi
print' Vitalidad: ', vit
print' Energía : ', ene
print
print' Por Jorge Martini 2016'
input()
def funcion4():
print(' Stats Recomendados Dark Lord')
point = 0
print
point = int(input(' Total de puntos: '))
frzPct = 7
agiPct = 20
vitPct = 3
enePct = 20
comPct = 50
PctVal = 100
frz = (point * frzPct) / PctVal
agi = (point * agiPct) / PctVal
vit = (point * vitPct) / PctVal
ene = (point * enePct) / PctVal
com = (point * comPct) / PctVal
print' Fuerza : ', frz
print' Agilidad : ', agi
print' Vitalidad: ', vit
print' Energía : ', ene
print' Comando : ', com
print
print' Por Jorge Martini 2016'
input()
def funcion5():
print(' Stats Recomendados Magic Gladiator(Balanceado)')
point = 0
print
point = int(input(' Total de puntos: '))
frzPct = 30
agiPct = 30
vitPct = 10
enePct = 30
PctVal = 100
frz = (point * frzPct) / PctVal
agi = (point * agiPct) / PctVal
vit = (point * vitPct) / PctVal
ene = (point * enePct) / PctVal
print' Fuerza : ', frz
print' Agilidad : ', agi
print' Vitalidad: ', vit
print' Energía : ', ene
print
print' Por Jorge Martini 2016'
input()
print
print ' Bienvenidos a Stats Recomendados'
print ' Mu Wolf S2'
print
print ' [1] Soul Master'
print ' [2] Blade Knight'
print ' [3] Muse Elf'
print ' [4] Dark Lord'
print ' [5] Magic Gladiator'
print
print
print ' Sólo ingresar números!!!'
pj = input(' Seleccionar personaje: ')
print
print
if pj == 1:
funcion1()
if pj == 2:
funcion2()
if pj == 3:
funcion3()
if pj == 4:
funcion4()
if pj == 5:
funcion5()
if pj > 5:
print ' Debes ingresar un número valido.'
os.system es equivalente a escribir un comando en la consola, si estás en windows "clear" no es un comando valido, eso es en linux y mac, usarías "cls" (creo)
el es "si" se cumple una condición
if pj == 1:
funcion1()
sería
si pj es igual a 1:
funcion1()
Estoy en linux, en bash para limpiar la consola es clear, y esa parte del if si la entendí, lo que no comprendo es como hacer cuando se escriba un texto volver al menu, algo como el uso del else, probé pero nada 😔
No puedo decirte sobre "clear" porque no uso linux, en cuanto al menú para que se repita debes aprender soble bucles y para ello sobre while, en cuanto a saber si escriben letras o números existe la función isdigit, ya tenés más para buscar y leer.
edito:
no entiendo que querés hacer pero estaba aburrido y modifiqué apenas tu código porque escribiste una chorrada de funciones que hacen basicamente lo mismo, así que las resumí para que veas como ahorrar código, obvio que faltan cosas y sobran otras, es solo a modo orientativo:
#-*- coding: utf -8 -*-
def caracteristicas(frzPct,agiPct,vitPct,enePct,comPct=0):
point=0
PctVal = 100
point = int(eval(input(' Total de puntos: ')))
frz = (point * frzPct) / PctVal
agi = (point * agiPct) / PctVal
vit = (point * vitPct) / PctVal
ene = (point * enePct) / PctVal
com = (point * comPct) / PctVal
print(' Fuerza : ', frz)
print(' Agilidad : ', agi)
print(' Vitalidad: ', vit)
print(' Energía : ', ene)
if comPct != 0:
print(' Comando : ', com)
print()
print(' Por Jorge Martini 2016')
print()
print(''' Bienvenidos a Stats Recomendados'
Mu Wolf S2')
[1] Soul Master
[2] Blade Knight
[3] Muse Elf
[4] Dark Lord
[5] Magic Gladiator
Sólo ingresar números!!!''')
pj = int(input(' Seleccionar personaje: '))
print()
print()
if pj == 1:
print(' Stats Recomendados Soul Master')
caracteristicas(2,40,8,50)
elif pj == 2:
print(' Stats Recomendados Blade Knight')
caracteristicas(40,30,10,20)
elif pj == 3:
print(' Stats Recomendados Muse Elf(Agilidad)')
caracteristicas(24,64,10,2)
elif pj == 4:
print(' Stats Recomendados Dark Lord')
caracteristicas(7,20,3,20,50)
elif pj == 5:
print(' Stats Recomendados Magic Gladiator(Balanceado)')
caracteristicas(30,30,10,30)
else:
print("ingrese un número válido")