Subpage under development, new version coming soon!
Subject: Asesoramiento: Programación para aficionados
Bueno, gracias a ustedes me metí devuelta a incursionar en mi viejo y querido game maker, pero sólo porque es el que más se usar.
Les comento lo que estoy haciendo: estoy escribiendo en lenguaje humano (no me acuerdo cómo se llama hacer esto) el motor de un partido de fútbol. La finalidad sería hacer un manager, pero eso viene después, primero el partido y después hablamos del contexto.
Mi idea del motor es que los jugadores no sólo cuenten con habilidades como en todos los juegos, sino que el propio jugador tenga tendencia a hacer una cosa u otra. Por ejemplo, un parámetro sería "tendencia de perfil". Esto es para qué lado arranca un jugador con la pelota, más allá de su pierna preferida. Esto vale sobretodo a la hora de gambetear. Sirve también para un wing, si encara más para adentro o para afuera a tirar centros (pensemos si ponemos a Messi de wing derecho y no le podemos dar la indicación de que encare hacia al arco más que desbordar y tirar centros). Bueno, en este caso de Messi, un jugador como él vendría ya con una tendencia a encarar para adentro mayor a la de encarar para afuera y tirar centros. El chiste de esto es que uno podría indicarle la acción contraria a la que él por naturaleza realiza más a menudo y el jugador podría obedecer o no según su disciplina táctica.
Ya estoy algo avanzado, sobre todo con las decisiones que toma un jugador con la pelota.
Mi idea, antes de que me llegue el aluvión de "por qué no empezás con el pacman" (ya lo hice jeje, igual que el arkanoid), es hacer pequeños programas en dónde se pongan en práctica los distintos algoritmos. por ejemplo: uno de un tipo solo que patee al arco, o tres jugadores que se den pases, piquen y así. Al principio lo voy a hacer con "tapitas" y después le agregaría animaciones. Lo bueno es que si funciona, no sería tan difícil escribirlo en un mejor lenguaje que el del game maker.
Es recontra complejo! les estaría escribiendo un montón, pero nadie lo va a querer leer, jejeje
Cualquier pregunta o sugerencia, será muy bienvenida y agradecida.
Les comento lo que estoy haciendo: estoy escribiendo en lenguaje humano (no me acuerdo cómo se llama hacer esto) el motor de un partido de fútbol. La finalidad sería hacer un manager, pero eso viene después, primero el partido y después hablamos del contexto.
Mi idea del motor es que los jugadores no sólo cuenten con habilidades como en todos los juegos, sino que el propio jugador tenga tendencia a hacer una cosa u otra. Por ejemplo, un parámetro sería "tendencia de perfil". Esto es para qué lado arranca un jugador con la pelota, más allá de su pierna preferida. Esto vale sobretodo a la hora de gambetear. Sirve también para un wing, si encara más para adentro o para afuera a tirar centros (pensemos si ponemos a Messi de wing derecho y no le podemos dar la indicación de que encare hacia al arco más que desbordar y tirar centros). Bueno, en este caso de Messi, un jugador como él vendría ya con una tendencia a encarar para adentro mayor a la de encarar para afuera y tirar centros. El chiste de esto es que uno podría indicarle la acción contraria a la que él por naturaleza realiza más a menudo y el jugador podría obedecer o no según su disciplina táctica.
Ya estoy algo avanzado, sobre todo con las decisiones que toma un jugador con la pelota.
Mi idea, antes de que me llegue el aluvión de "por qué no empezás con el pacman" (ya lo hice jeje, igual que el arkanoid), es hacer pequeños programas en dónde se pongan en práctica los distintos algoritmos. por ejemplo: uno de un tipo solo que patee al arco, o tres jugadores que se den pases, piquen y así. Al principio lo voy a hacer con "tapitas" y después le agregaría animaciones. Lo bueno es que si funciona, no sería tan difícil escribirlo en un mejor lenguaje que el del game maker.
Es recontra complejo! les estaría escribiendo un montón, pero nadie lo va a querer leer, jejeje
Cualquier pregunta o sugerencia, será muy bienvenida y agradecida.
Bueno gente, a los que quieran hacer cursos dictado por gente idónea (no por Y Doña?) y a buen precio, les dejo este link: http://www.clubdeprogramadores.com/
Yo ahora estoy en dos mundos contrapuestos:
1) En el trabajo todo es .NET. Yo estoy ahora como Arquitecto de Sistemas de AySA. Como las aplicaciones que se usan en la empresa están en su mayoría en VB.6 se optó por migrar a VB.Net versión Team System 2008.
2) Con un amigo estamos tratando de montar una pequeña empresa de sistemas. La mayoría de los pedido que nos hacen es para hacer portales y/o soluciones para Marketing Viral. Esto último es lo que más nos están pidiendo por lo cual me decidí a programar en Python y PHP. En PHP ya había realizado cosas pero no que se integrara con Python. Ahora tengo que terminar una interfaz en Python que maneje el modem 3G como los que da Claro, Personal o Movistar. Ese pendorcho ZTE que da más dolores de cabeza que gratificaciones. Pero bueno, es lo que hay...
Si alguien está buscando trabajo de part time, me avisa y me envía un SK Mail para contactarnos.
(edited)
Yo ahora estoy en dos mundos contrapuestos:
1) En el trabajo todo es .NET. Yo estoy ahora como Arquitecto de Sistemas de AySA. Como las aplicaciones que se usan en la empresa están en su mayoría en VB.6 se optó por migrar a VB.Net versión Team System 2008.
2) Con un amigo estamos tratando de montar una pequeña empresa de sistemas. La mayoría de los pedido que nos hacen es para hacer portales y/o soluciones para Marketing Viral. Esto último es lo que más nos están pidiendo por lo cual me decidí a programar en Python y PHP. En PHP ya había realizado cosas pero no que se integrara con Python. Ahora tengo que terminar una interfaz en Python que maneje el modem 3G como los que da Claro, Personal o Movistar. Ese pendorcho ZTE que da más dolores de cabeza que gratificaciones. Pero bueno, es lo que hay...
Si alguien está buscando trabajo de part time, me avisa y me envía un SK Mail para contactarnos.
(edited)
Up Up Up!!!!
Bueno, levanto este thread, porque se estaba descontrolando el de "Experimentar Linux", que preferiría que quede como un thread para discutir cosas de Linux como sistema operativo y para asesoramiento de los interesados en cuestions pertinentes a Linux, y discutir en este hilo las cuestiones relativas a programación, lenguajes, compiladores, bla bla bla.
Si no los hilos se hacen de chicle y cuando realmente necesitás ver algo (por ejemplo, "qué me habían recomendado para medir la temperatura del CPU en Linux?") te topás con posts y posts de otros temas (qué es mejor, Python o C++), ya sea con un tema u el otro.
Así que, si están de acuerdo, sigamos hablando de programación acá.
Bueno, levanto este thread, porque se estaba descontrolando el de "Experimentar Linux", que preferiría que quede como un thread para discutir cosas de Linux como sistema operativo y para asesoramiento de los interesados en cuestions pertinentes a Linux, y discutir en este hilo las cuestiones relativas a programación, lenguajes, compiladores, bla bla bla.
Si no los hilos se hacen de chicle y cuando realmente necesitás ver algo (por ejemplo, "qué me habían recomendado para medir la temperatura del CPU en Linux?") te topás con posts y posts de otros temas (qué es mejor, Python o C++), ya sea con un tema u el otro.
Así que, si están de acuerdo, sigamos hablando de programación acá.
Castor: ¿hice algo? Bueno, no, hasta estos días no. Pero después de que me recomendaron Python, arranqué con el tutorial y "algo hice":
numjug = 2
numcol = 14
referencias=("Nombre", "Apellido", "Edad","Valor","Salario",
"Forma","Condición","Rapidez","Técnica","Pases",
"Portería","Defensa","Creación", "Anotación")
refabv=("nn", "NN", "ed","val","sal",
"FOR","CON","RAP","TÉC","PAS",
"POR","DEF","CRC","ANT")
jugadores = [["Ian","Bagan", 29,368000,4300,12,11,12,8,10,0,9,10,5],\
["Simón", "Arambu", 26, 241250,3025,10,11,9,9,6,1,9,8,5]]
def main ():
MenuPpal = '''
1) Agregar Jugador
2) Imprimir Plantel
3) Grabar y cerrar
'''
# theBook = {}; estas son funciones de un programa del tutorial para abrir y leer archivos.
# readBook(theBook); las dejé porque cuando tenga que hacer eso, quería acordarme dónde
# las había puesto el que lo escribió. "3. Grabar y cerrar" de momento cierra nomás :P
opcion = getChoice(MenuPpal, 3)
while opcion != 3:
if opcion == 1:
reaseguro = input ("¿Está seguro? (S/N) ")
if (reaseguro == "s") or (reaseguro=="S"):
IngJug()
else: main()
elif opcion == 2:
ImpPlantel()
else: print( "Opción incorrecta. Ingrese opción válida." )
opcion = getChoice(MenuPpal, 3)
print ("Fin")
#getChoice
def getChoice(menu, length):
print( menu )
prompt = "Elija opción (1-%d): " % length
choice = int( input(prompt) )
return choice
#Ingreso de jugadores
def IngJug():
nujug=[0,0,0,0,0,0,0,0,0,0,0,0,0,0]
col=0
while col
numjug = 2
numcol = 14
referencias=("Nombre", "Apellido", "Edad","Valor","Salario",
"Forma","Condición","Rapidez","Técnica","Pases",
"Portería","Defensa","Creación", "Anotación")
refabv=("nn", "NN", "ed","val","sal",
"FOR","CON","RAP","TÉC","PAS",
"POR","DEF","CRC","ANT")
jugadores = [["Ian","Bagan", 29,368000,4300,12,11,12,8,10,0,9,10,5],\
["Simón", "Arambu", 26, 241250,3025,10,11,9,9,6,1,9,8,5]]
def main ():
MenuPpal = '''
1) Agregar Jugador
2) Imprimir Plantel
3) Grabar y cerrar
'''
# theBook = {}; estas son funciones de un programa del tutorial para abrir y leer archivos.
# readBook(theBook); las dejé porque cuando tenga que hacer eso, quería acordarme dónde
# las había puesto el que lo escribió. "3. Grabar y cerrar" de momento cierra nomás :P
opcion = getChoice(MenuPpal, 3)
while opcion != 3:
if opcion == 1:
reaseguro = input ("¿Está seguro? (S/N) ")
if (reaseguro == "s") or (reaseguro=="S"):
IngJug()
else: main()
elif opcion == 2:
ImpPlantel()
else: print( "Opción incorrecta. Ingrese opción válida." )
opcion = getChoice(MenuPpal, 3)
print ("Fin")
#getChoice
def getChoice(menu, length):
print( menu )
prompt = "Elija opción (1-%d): " % length
choice = int( input(prompt) )
return choice
#Ingreso de jugadores
def IngJug():
nujug=[0,0,0,0,0,0,0,0,0,0,0,0,0,0]
col=0
while col
uff... SK... NO... respeta los espacios... o sea que todos los "indents" se perdieron. En fin...
Estas poniendo en un arreglo las caracteristicas del jugador?
Si es asi, te conviene crear una clase "Jugador", que tenga adentro las habilidades y demas.
Tutorial Clases. Fue lo primero que encontre, seguro que hay mejores.
por ejemplo:
class Jugador:
def __init__(self, nombre, apellido, valor):
self.nombre = nombre;
self.apellido = apellido;
self.valor = valor;
def main ():
ianBagan = Jugador("Ian", "Bagan", 432432432);
print(ianBagan.nombre);
print(ianBagan.apellido);
print(ianBagan.valor);
--------
No se si anda, a la noche me instalo el entorno y te doy mas detalles, pero para que te des una idea
(edited)
Si es asi, te conviene crear una clase "Jugador", que tenga adentro las habilidades y demas.
Tutorial Clases. Fue lo primero que encontre, seguro que hay mejores.
por ejemplo:
class Jugador:
def __init__(self, nombre, apellido, valor):
self.nombre = nombre;
self.apellido = apellido;
self.valor = valor;
def main ():
ianBagan = Jugador("Ian", "Bagan", 432432432);
print(ianBagan.nombre);
print(ianBagan.apellido);
print(ianBagan.valor);
--------
No se si anda, a la noche me instalo el entorno y te doy mas detalles, pero para que te des una idea
(edited)
Pará, pará, que todavía no llegué a clases!!! :P
De momento estoy en lista, y "nested lists", que es lo que creé (una lista con otras listas adentro), y de momento jugué a imprimirlo y a poder agregar manualmente un jugador (algo que lo hice a propósito para poder tener la opción de ampliar la base de datos de mis jugadores el día de mañana más dinámicamente que anotándolos a mano :P).
Pero ahora estoy en una parte donde me van a explicar como abrir, leer, editar y cerrar archivos, porque de movida, aunque agrege manualmente un jugdor, cierro el programa y la info se pierde :P
A propósito: el tutorial que me indicaste es uno de los dos que estoy haciendo (estoy laburando con dos, ese, que parece el "oficial" de Python, y también éste, al que llegué por un wiki de Python porque lo recomendaban para beginners.
Ahora, en el tutorial que vos me indicás, clases es el capítulo 9 y yo voy todavía por el 4 :P
De momento estoy en lista, y "nested lists", que es lo que creé (una lista con otras listas adentro), y de momento jugué a imprimirlo y a poder agregar manualmente un jugador (algo que lo hice a propósito para poder tener la opción de ampliar la base de datos de mis jugadores el día de mañana más dinámicamente que anotándolos a mano :P).
Pero ahora estoy en una parte donde me van a explicar como abrir, leer, editar y cerrar archivos, porque de movida, aunque agrege manualmente un jugdor, cierro el programa y la info se pierde :P
A propósito: el tutorial que me indicaste es uno de los dos que estoy haciendo (estoy laburando con dos, ese, que parece el "oficial" de Python, y también éste, al que llegué por un wiki de Python porque lo recomendaban para beginners.
Ahora, en el tutorial que vos me indicás, clases es el capítulo 9 y yo voy todavía por el 4 :P
Otro tema:
if (reaseguro == "s") or (reaseguro=="S"):
if (reaseguro.lowercase == "s"):
Pegale una leida a string operations
if (reaseguro == "s") or (reaseguro=="S"):
if (reaseguro.lowercase == "s"):
Pegale una leida a string operations
A propósito, Castor, ya tengo la página de UM que da datos de jugadores, así que cuando más adelante sepa en Python como crear un archivo bajándolo de internet, ya voy a poder tener la base para hacer una aplicación para UM.
http://www.ultimatemanager.eu/utility/WSUltManager.asmx/GetAllenamento?Utente=usuario&Password=clave
Hay que copiar y pegar ese link en el navegador, y reemplazar "usuario" por nuestro usuario de UM, y "clave" por nuestra pass de UM. Ahora, lo que te muestra es un quilombo de chirimbolos entre info e info, no sé si es así por ser un html, o si es así porque lo hicieron desde Java, o VBS, o qué sé yo, pero de cada 15 caracteres, 1 o 2 tienen realmente "información".
http://www.ultimatemanager.eu/utility/WSUltManager.asmx/GetAllenamento?Utente=usuario&Password=clave
Hay que copiar y pegar ese link en el navegador, y reemplazar "usuario" por nuestro usuario de UM, y "clave" por nuestra pass de UM. Ahora, lo que te muestra es un quilombo de chirimbolos entre info e info, no sé si es así por ser un html, o si es así porque lo hicieron desde Java, o VBS, o qué sé yo, pero de cada 15 caracteres, 1 o 2 tienen realmente "información".
Otro tema:
if (reaseguro == "s") or (reaseguro=="S"):
if (reaseguro.lowercase == "s"):
Perfecto! Sí, vi eso, pero es capítulo 7.. soy un tipo muy ordenado, Castor, no me apures!!! XD
Che, estás haciendo links al tutorial de Python 2.7, pero yo estoy con el 3.2 (cuyo tutorial, creo yo, es casi el mismo sólo que con la sintaxis adaptada). Detalle menor pero para que lo tengas en cuenta, por lo que vi, hay muchos que siguen programando con el 2.7, no sé si por costumbre porque no vi comentarios negativos al 3.2.
if (reaseguro == "s") or (reaseguro=="S"):
if (reaseguro.lowercase == "s"):
Perfecto! Sí, vi eso, pero es capítulo 7.. soy un tipo muy ordenado, Castor, no me apures!!! XD
Che, estás haciendo links al tutorial de Python 2.7, pero yo estoy con el 3.2 (cuyo tutorial, creo yo, es casi el mismo sólo que con la sintaxis adaptada). Detalle menor pero para que lo tengas en cuenta, por lo que vi, hay muchos que siguen programando con el 2.7, no sé si por costumbre porque no vi comentarios negativos al 3.2.
Lo que te devuelve UM es un archivo xml, similar a los datos que provee Sokker en este link: http://online.sokker.org/xmlinfo.php
Para poner todo en un archivo, lo mejor es serializar y deseralizar (por mejor implica mas facil).
Pones un objeto en ese lugar magico y lo guarda de alguna manera en un archivo, despues apuntas a ese archivo y le decis "ahi adentro hay un objeto de esta clase, ya utoamticamente lo deserializa.
Pickle es el framework de python (Pickle
Pones un objeto en ese lugar magico y lo guarda de alguna manera en un archivo, despues apuntas a ese archivo y le decis "ahi adentro hay un objeto de esta clase, ya utoamticamente lo deserializa.
Pickle es el framework de python (Pickle
Estoy linkeando a lo que primero pone google :P.
Tema oscuro de python, muchas cosas que haces en una version, dejan de andar en otra.
Me paso cuando programaba hace 2 años, creo que en ese momoento quise pasar de 2.4 a 2.6, no me acuerdo bien.
Asi que tene en cuenta eso.
Tema oscuro de python, muchas cosas que haces en una version, dejan de andar en otra.
Me paso cuando programaba hace 2 años, creo que en ese momoento quise pasar de 2.4 a 2.6, no me acuerdo bien.
Asi que tene en cuenta eso.
Ojo, Python está dividido en 2 ramas: la 2.x y la 3.x. A partir de la versión 3.x modificaron toda la sintaxis y por lo tanto no hay retrocompatibilidad.
Para la rama 2.x (la 2.7) hay un montón de librerías y código de ejemplo, pero para la 3.x todo se reduce bastante. Por eso vas a encontrar que la mayoría sigue usando 2.7. Obviamente en un futuro la sintaxis de 3.x se va a imponer, pero no va a ser algo rápido.
Para la rama 2.x (la 2.7) hay un montón de librerías y código de ejemplo, pero para la 3.x todo se reduce bastante. Por eso vas a encontrar que la mayoría sigue usando 2.7. Obviamente en un futuro la sintaxis de 3.x se va a imponer, pero no va a ser algo rápido.