lunes, 21 de abril de 2014

Comentando mientras programo - Jugando a ser Tony Stark.- W.O.P.R -5-

Bueno, como algunos ya sabréis estaba entusiasmado con la idea de que Tonto pudiera enterder lo que escribía mas allá de un simple caracter o string. Quería que cuando yo pusiera en un raw_input()  "quiero comer patatas". Tonto buscara en ese String la palabra patatas y me diera una de las opciones. Snifer me recomendó que usara Regular Expresion (re) para este fin y me estuve parte de la noche de ayer jugando con el. Con es el resultado: 

import re

peticion = raw_input("")

def busquedas(sistema):
zanahoria = re.search(r'zanahori(.*)',peticion)
patata =  re.search(r'pata(.*)', peticion)
if patata:
print "correcto es patata"
elif zanahoria:
  print "correcto es zanahoria"
  else: 
  print "aun no lo has programado"

print busquedas(peticion)

Al ver que funcionaba he esperado esta tarde para grabar un vídeo para implementarlo en tonto y explicarlo mientras tanto. Así de paso también hago un "up" al canal de youtube.  


Con esta implementación hemos pasado a la versión 0.0.1.2 de Tonto y ahora ya parece se parece mas a W.O.P.R o Joshua de la película juegos de guerra que a tonto. Habla y reconoce lo que escribo. Una maravilla. 


Cada vez estoy un paso mas de tener un J.A.R.V.I.S competente así que cada vez mi motivación va creciendo. El próximo paso, es implementarle un poco de Hacking o algo relacionado con ello. Aun no lo tengo muy claro pero estoy entusiasmado. 


Ahora sigo viendo la serie de SiliconValley que esta interesante xD

domingo, 20 de abril de 2014

Video explicación - Jugando a ser Tony Stark.- Hasta guarda ideas -4-

Ahora sencillamente la pongo al empezar la entrada. 

He añadido 2 funciones mas que me irán geniales para el día a día una es la de programar con la que me abrirar el SublimeText 2 y la otra un Banco de Ideas que me pase la noche de ayer probando y jugando con el. Bueno os lo explico un poco mejor en el siguiente vídeo.


Código copiado y pegado:

#Esto es un invento un poco loco.
#Esto es solo la base
import os
import sys
import time
from datetime import date

version = "0.0.0.1"
ideas = []

def trabajo(seleccion):
print "Accediendo a banco de trabajo"
os.system('"C:\Users\Albert\Downloads\Jorge4.wav"')
time.sleep(3)
os.system('"C:\Program Files\LibreOffice 4\program\soffice.exe"')
print "Necesitas algo mas? "
os.system('"C:\Users\Albert\Downloads\Jorge7.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge1.wav"')
time.sleep(3)
sys.exit(0)

def estudiar(Albert):
print "Se que no le gusta pero hoy ha de aguantarse"
os.system('"C:\Users\Albert\Downloads\Jorge10.wav"')
time.sleep(4)
print "Abriendo carpeta de documentos, espero que usted sea ordenado señor"
os.system('"C:\Users\Albert\Downloads\Jorge11.wav"')
time.sleep(4)
os.system('"start C:\Users\Albert\Documents"')
time.sleep(3)
print "Necesitas algo mas? "
os.system('"C:\Users\Albert\Downloads\Jorge7.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge1.wav"')
time.sleep(3)
sys.exit(0)

def musica(beethoven):
print "Accediendo a su carpeta de Musica"
os.system('"C:\Users\Albert\Downloads\Jorge6.wav"')
time.sleep(3)
os.system('"start C:\Users\Albert\Music"')
print "Necesitas algo mas? "
os.system('"C:\Users\Albert\Downloads\Jorge7.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge1.wav"')
time.sleep(3)
sys.exit(0)

def programar(Wozniak):
print "Accediendo a su editor de codigo favorito"
os.system('"C:\Users\Albert\Downloads\Jorge13.wav"')
os.system('"C:\Program Files\Sublime Text 2\sublime_text.exe"')
time.sleep(3)
print "Necesitas algo mas? "
os.system('"C:\Users\Albert\Downloads\Jorge7.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge1.wav"')
time.sleep(3)
sys.exit(0)

def banco(delacalle):
while True:
recogedor = open('banco_ideas.txt','a+')
for item in recogedor:
ideas.append(item)
print "estas son las ideas que ha recogido hasta ahora."
os.system('"C:\Users\Albert\Downloads\Jorge14.wav"')
time.sleep(3)
print ideas
os.system('"C:\Users\Albert\Downloads\Jorge15.wav"')
idea = raw_input("Que se le ha ocurrido?:  ")
ideas.append(idea)
ideas.append(date.today())
print ideas
time.sleep(3)
os.system('"C:\Users\Albert\Downloads\Jorge16.wav"')
d3 = raw_input("Ajunto otra idea señor?: ")
if d3 == "s":
os.system('cls')
print idea
elif d3 == "n":
i = str(ideas)
banco_ideas = open('banco_ideas.txt','a+')
print ideas
banco_ideas.write(i)
banco_ideas.close()
os.system('"C:\Users\Albert\Downloads\Jorge17.wav"')
print "ideas guardadas con exito"
time.sleep(3)
print "Algo mas señor? "
os.system('"C:\Users\Albert\Downloads\Jorge8.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
break
elif d2 == "n":
os.system('cls')
print "que tenga un buen dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge2.wav"')
time.sleep(3)
sys.exit(0)
else:
print "selecione una de las 2 señor"
os.system('"C:\Users\Albert\Downloads\Jorge18.wav"')
time.sleep(5)

def games(juegos):
print "Iniciando Ragnarock Online, ya que tiene los juegos desordenados por el disco duro."
os.system('"C:\Users\Albert\Downloads\Jorge12.wav"')
time.sleep(5)
os.system('"C:\Users\Albert\Downloads\RagnarokOnline\RagnarokOnline\XatiyaRO.exe"')
time.sleep(3)
print "Algo mas señor? "
os.system('"C:\Users\Albert\Downloads\Jorge8.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que tenga un buen dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge2.wav"')
time.sleep(3)
sys.exit(0)

def who(Snifer):
print "Soy tu asistente personal para este pc, me has programado tu y actualmente me encuentro en la " + version
os.system('"C:\Users\Albert\Downloads\Jorge5.wav"')
time.sleep(7)
print "Algo mas señor? "
os.system('"C:\Users\Albert\Downloads\Jorge8.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que tenga un buen dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge2.wav"')
time.sleep(3)
sys.exit(0)

def fin(apagar):
print "Siempre es un placer poder descansar"
os.system('"C:\Users\Albert\Downloads\Jorge3.wav"')
time.sleep(3)
sys.exit(0)
#Saludo, molaria personalizarle el nombre a la maquina

print "Hola Albert, que te apeteceria hacer hoy?"
os.system('"C:\Users\Albert\Downloads\Jorge.wav"')
time.sleep(3)

#Antes de esto me podria dar la tempertura de mi region. Tendre que mirarlo
#estoy ira así facil y comodo xD

while True:
print"""
[a = Me apetece, trabajar]
[b = bah, tendre que estudiar]
[c = Musica, Animame el dia]
[p = programar]
[i = ideas]
[d = Jugar]
[e = Quien eres?]
[f = No requiero tu ayuda, gracias]

"""
d1 = raw_input("--> : ")
if d1 == "a":
print trabajo(d1)
elif d1 =="b":
print estudiar(d1)
elif d1 == "c":
print musica(d1)
elif d1 == "p":
print programar(d1)
elif d1 == "i":
print banco(d1)
elif d1 == "d":
print games(d1)
elif d1 == "e":
print who(d1)
elif d1 == "f":
print fin(d1)
else:
print "Aun no lo ha programado, señor"
os.system('"C:\Users\Albert\Downloads\Jorge9.wav"')
time.sleep(3)

Repositorio de GitHub: 

Que mi sexy voz os acompañe. 


Jugando a ser Tony Stark.- Listo lo Basico + Video -3-

Ayer hice que Windows me iniciara a Tonto cuando arrancara y la verdad es que me lo pase muy bien pero le faltan aun muchas cosas que quiero implementarle y que iréis descubriendo en futuras entradas. Aunque se miráis el GitHub puede que antes porque ya hay algo en uno de los repositorios .


Lo que si que no me dio tiempo de hacer ayer es grabar la prueba de concepto para que veáis como funciona [todo ese cacho código]. 

Aquí la tenéis recién subida a youtube:


Aunque a vosotros os parezca una tontería, me da igual yo me siento así:


sábado, 19 de abril de 2014

Jugando a ser Tony Stark.- ¡¡ Hablaaaaaaa !! -2-

Supongo que os pasará a muchos,  pero hasta que no he acabado todos los puntos del programa que os presente hace unos días no me he quedado a gusto. Ahora ya me puedo sentir un poco mas Tony Stark. Aunque aún hay muchas cosas que me encantaría mejorar, corregir o implementar. Pero con esto creo que la versión 0.0.0.1 de Tonto.  


Os dejo pegado el código por aquí y repositorio de GitHub actualizado. 

#Esto es un invento un poco loco.
#Esto es solo la base
import os
import sys
import time

version = "0.0.0.1"

def trabajo(seleccion):
print "Accediendo a banco de trabajo"
os.system('"C:\Users\Albert\Downloads\Jorge4.wav"')
time.sleep(3)
os.system('"C:\Program Files\LibreOffice 4\program\soffice.exe"')
print "Necesitas algo mas? "
os.system('"C:\Users\Albert\Downloads\Jorge7.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge1.wav"')
time.sleep(3)
sys.exit(0)

def estudiar(Albert):
print "Se que no le gusta pero hoy ha de aguantarse"
os.system('"C:\Users\Albert\Downloads\Jorge10.wav"')
time.sleep(4)
print "Abriendo carpeta de documentos, espero que usted sea ordenado señor"
os.system('"C:\Users\Albert\Downloads\Jorge11.wav"')
time.sleep(4)
os.system('"start C:\Users\Albert\Documents"')
time.sleep(3)
print "Necesitas algo mas? "
os.system('"C:\Users\Albert\Downloads\Jorge7.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge1.wav"')
time.sleep(3)
sys.exit(0)

def musica(beethoven):
print "Accediendo a su carpeta de Musica"
os.system('"C:\Users\Albert\Downloads\Jorge6.wav"')
time.sleep(3)
os.system('"start C:\Users\Albert\Music"')
print "Necesitas algo mas? "
os.system('"C:\Users\Albert\Downloads\Jorge7.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge1.wav"')
time.sleep(3)
sys.exit(0)

def games(juegos):
print "Iniciando Ragnarock Online, ya que tiene los juegos desordenados por el disco duro."
os.system('"C:\Users\Albert\Downloads\Jorge12.wav"')
time.sleep(5)
os.system('"C:\Users\Albert\Downloads\RagnarokOnline\RagnarokOnline\XatiyaRO.exe"')
time.sleep(3)
print "Algo mas señor? "
os.system('"C:\Users\Albert\Downloads\Jorge8.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que tenga un buen dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge2.wav"')
time.sleep(3)
sys.exit(0)

def who(Snifer):
print "Soy tu asistente personal para este pc, me has programado tu y actualmente me encuentro en la " + version
os.system('"C:\Users\Albert\Downloads\Jorge5.wav"')
time.sleep(7)
print "Algo mas señor? "
os.system('"C:\Users\Albert\Downloads\Jorge8.wav"')
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que tenga un buen dia señor"
os.system('"C:\Users\Albert\Downloads\Jorge2.wav"')
time.sleep(3)
sys.exit(0)

def fin(apagar):
print "Siempre es un placer poder descansar"
os.system('"C:\Users\Albert\Downloads\Jorge3.wav"')
time.sleep(3)
sys.exit(0)
#Saludo, molaria personalizarle el nombre a la maquina

print "Hola Albert, que te apeteceria hacer hoy?"
os.system('"C:\Users\Albert\Downloads\Jorge.wav"')
time.sleep(3)
#Antes de esto me podria dar la tempertura de mi region. Tendre que mirarlo
#estoy ira así facil y comodo xD
while True:
print"""
[a = Me apetece, trabajar]
[b= bah, tendre que estudiar]
[c = Musica, Animame el dia]
[d = Jugar]
[e = Quien eres?]
[f = No requiero tu ayuda, gracias]

"""
d1 = raw_input("--> : ")
if d1 == "a":
print trabajo(d1)
elif d1 =="b":
print estudiar(d1)
elif d1 == "c":
print musica(d1)
elif d1 == "d":
print games(d1)
elif d1 == "e":
print who(d1)
elif d1 == "f":
print fin(d1)
else:
print "Aun no lo ha programado, señor"
os.system('"C:\Users\Albert\Downloads\Jorge9.wav"')
time.sleep(3)

GitHub:

viernes, 18 de abril de 2014

Jugando a ser Tony Stark.- ¡¡ Hablaaaaaaa !!


Bueno, como supongo que esto de la programación es así y cuando tienes una idea has de plasmarla o morir en el intento. He cogido el reconocimiento de voz de Windows 8.1 y lo he juntado con Tonto el programa de la entrada anterior para ver que pasaba. El resultado me ha encantado así que he añadido unas cuantas voces de la [demo de Loquendo] para probar a ver como quedaba y este ha sido el resultado. Me siento bien xD


GitHub actualizado:

Tonto.- Creyendome Tony Stark en Python.

Ayer no pude hacer la entrada porque estaba disfrutando de una tremenda barbacoa. Sinceridad al poder. Esta barbacoa acabó con el visionado de la película Iron Man, la primera de todas, en la cual afirme que yo quería ser Tony Stark solo por los juguetes que tiene. Entre ellos un par de sistemas, uno llamado J.A.R.V.I.S y otro llamado Tonto. Tonto era un sistema que podía interaccionar con Tony pero no hablaba, y era inexacto pero tenia un carácter especial que J.A.R.V.I.S no poseía. 


Pues ya que J.A.R.V.I.S esta inventado yo he creado a tonto en completo python . Aquí tenéis el vídeo y el código que aun tengo que ampliar, pero para el tiempo que me he estado haciéndolo creo que ya esta bastante bien. 


Ahora se me plantea un dilema,  seguir con el juego o seguir con mi menú personalizado para mi pc junto al reconocimiento de voy de Windows 8.1 .... Bueno, mientras me decido. Aquí tenéis el código y el repositorio en Git Hub y en los comentarios me podéis dejar recomendaciones. 

#Esto es un invento un poco loco.
#Esto es solo la base
import os
import sys
import time
version = "0.0.0.1"
def trabajo(seleccion): print "Accediendo a banco de trabajo"
os.system('"C:\Program Files\LibreOffice 4\program\soffice.exe"')
#se para aquí y asta que no acabo con el exe no se puede hacer otra acción.
print "Necesitas algo mas? "
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
time.sleep(3) sys.exit(0)
def who(Snifer):
print "Soy tu asistente personal para este pc, me has programado tu y actualmente me encuentro en la " + version
print "Algo mas señor? "
print "[s = si] [n = no]"
d2 =  raw_input("-->:")
if d2 == "s":
os.system('cls')
elif d2 == "n":
os.system('cls')
print "que le vaya bien el dia señor"
time.sleep(3)
sys.exit(0)
#me gustaria que tambien cerrara la consola xD
#Saludo, molaria personalizarle el nombre a la maquina
print "Hola Albert, que te apeteceria hacer hoy?"
#Antes de esto me podria dar la tempertura de mi region. Tendre que mirarlo
#estoy ira así facil y comodo xD
while True:
print"""
[a = Me apetece, trabajar]
[b= bah, tendre que estudiar]
[c = Musica, Animame el dia]
[d = Jugar]
[e = Quien eres?]
[f = No requiero tu ayuda, gracias]
"""
d1 = raw_input("--> : ")
if d1 == "a":
print trabajo(d1)
elif d1 == "e":
print who(d1) else:
print "estamos trabajando en ello escoje otra opcion"

Repositorio en Git Hub:


Tony Stark Rlz xD

Si alguien encuentra el easter egg en ese código prometo seguir con esto y hacer que Tonto hable. 

martes, 15 de abril de 2014

Python estilo libre con (My Fantasy World) 1

Por fin ha llegado la semana santa y he tenido tiempo de darle caña a este blog.  La verdad es que tenia ganas. Bueno, al grano. My Fantasy World va a ser un juego para ayudarme a saber moverme por Python mas que nada es que me parece la forma mas sencilla de aprender a sentirme a gusto con el código, sabiendo abrir un todo tipos de archivos e impirmir lo que yo quiera en pantalla. 

Bueno aun queda muchísimo para que sea algo serio o para que pueda considerarse algo. Pero aqui os dejo el vídeo. 


También los 2 archivos que he creado el juego y el ciclo de día y noche que voy a implementarle en cuanto pueda. No he probado ninguno de los dos dado que hoy he decidido pasar lo que tenia apuntado en mi libreta a limpio pero, si alguno se lo quiere mirar y aconsejarme es bienvenido y me que lo deje en los comentarios. Aquí tenéis el link al repositorio de GitHub. 
Welcome to My Fantasy World !!

sábado, 15 de marzo de 2014

Hoy no toca entrada para Monster Are Back merece la pena.

Pues eso, hoy no toca entrada pero al enterarme del proyecto Monsters Are Back tenia que ponerlo por escrito.  Supongo que muchos ya sabréis de lo que estoy hablando pero seguramente otros no. Monsters Are Back es un videojuego de plataformas hecho entre estudiantes de ESO y Primero de Bachillerato por lo que estamos hablando de una coordinación excelente y un montón de chico trabajando para que un proyecto en común salga adelante, a parte todo lo que deben haber aprendido. A no os parecerá nada raro, pero si os digo que lo han hecho desde 0 con música, programación y gráficos hecho por ellos la verdad es que es genial. 


Lo he estado probando un poco, es bastante difícil y puede llegar a ser adictivo, se nota todo el trabajo que han depositado estos alumnos.

Mas información y descarga: 
Si lo queréis ver en movimiento os recomiendo este vídeo: 


En mi opinion me alegro que la programación este cada día mas al alcance de los nativos digitales, supongo que si en mi edad son introducir a la programación e LOGO, insertar Scratch en las escuelas tanto publicas como privadas debería ser tan trivial como enseñarles a utilizar paint. Ademas, de poderse crear ellos sus propios programas y poder saltar luego a App Inventor y crearse sus propias Aplicaciones para Android con el apoyo de Google. 

Imaginaros las maravillas que podrían crear estos nativos digitales y no se impusiera a los profesores de informática un temario estricto y obsoleto. 



Siento mucho si no estáis de acuerdo pero es una opinión que tengo desde hace bastante tiempo xD

jueves, 13 de marzo de 2014

Volviendo a Codecademy while for que si xD

Como bien veis en el titulo he vuelto a pelearme con Codeacademy y he entrado a saco en el mundo de los bucle, lo cual me ha hecho mucha gracia porque era una de las cosas que me faltaban para que el enano fuera todo lo "fluido" que me gustaría a mi, así que aprender mas sobre ello me gusta y me motiva. Aquí tenéis la hora.


Pues a ver si os puedo sorprender después de pasar mas tiempo en Codeacademy y enterarme de como usar los bucles de una manera correcta. Ademas hay muchos proyectos a los que les tengo que dar salida, ponerme con Pygame y tocar un mogollón de cosas mal así que intentar acabar lo que me queda de Codeacademy no sera ninguna tontería para un futuro. 



Mola mola ^^ 

martes, 11 de marzo de 2014

Mi Enano to' guapo xD Ultimo dia con el.

Hasta siempre Enano te recordaré como un Heroe, para los que ya os habéis olvidado os debía una entrada mas dándole caña al Enano, aquel programa que utilizaba para probar cosas en Battleship y al que después le tomé cariño,  así que le he hecho las mil barrabasadas al código que ha quedado muy chulo y me ha dado muchísimas ideas para un futuro pero fuera de este blog. Tanto ha sido así que al final del vídeo y después de una hora, el resultado a sido este: 


Al final me he dado cuenta de que había puesto en mala posición el código que iba después de la variable d3 dándome este error. Pero con todo lo que le ha puesto este tendría que haber sido el mínimo de mis problemas. Aquí os dejo la hora recién subida a Youtube. 

)

Adios Enano, al final conseguiste llegar hasta tu tesoro y espero que hayas inspirado a nuevas generaciones de héroes para hacerse con el . 


Aquí tenéis el código actualizado del Enano:


Me gustaría que lo criticarais para así aprender yo también. ^^ 

jueves, 6 de marzo de 2014

El Enano y el dinosaurio a Python Adventure xD

Normalmente y esto me pasa con mas cosas de las que me gustarían, no puedo dejar nada a medias si no, ando dándole vueltas hasta que llego a una idea mejor o alguna forma de solucionarlo. Esto me pasó ayer pensando en lo cutre que mi querido Enano y quería mejorarlo asi que, he borrado casi todo el codigo para poder practicar mas. Aquí tenéis la hora. 


Aunque os parezca una tontería lo llevo pensando desde esta mañana y hasta me he decidido dibujar un diagrama de flujo para que no se me olvide nada y para reírme un poco de Snifer por pura venganza xD


Así que hoy ha sido un día de construcción ++ además que ya empiezo a dominar los bucles para que hagan lo que yo quiero, así que está perfecto y espero que la hora de mañana siga igual. 


Se me olvidaba aquí tenéis el nuevo código del Enano para que lo miréis y me critiquéis ^^


martes, 4 de marzo de 2014

Segundo día con Enano y Battleship. Esto apunta maneras xD

Hoy estoy muy contento con mi hora, no solo he podido hacer que que Battleship luzca un poco mejor, hacerle un "menu" simple paro funcional y cambiar al Enano para la nueva aventura que le espera sino que he sido capaz de hacer funcionar el import os con su os.system("cls") para que borrara las paginas y no quedara todo hecho un pastizal. Sinceramente eso es algo que me moleta bastante y mas hablando de un juego. Aquí tenéis el vídeo de siempre xD


La verdad es que me ha encantado esta hora y tal vez mañana le de rienda suelta a mi imaginación y empiece a añadirle laberintos al Enano. No se eso es algo que se me ha ocurrido sobre la marcha. Aunque,  no consigo que el aparezca el Game Over en el Battleship me tendré que esforzar mas, pero es algo que me trae de cabeza xD 

Game Over Game Over Game Over ... 

lunes, 3 de marzo de 2014

Un menú para el Enano.py

Buenas, después del descanso del fin de semana por fin he tenido tiempo de poderme dedicar un poco a este blog, no he hecho nada del otro mundo pero mi programa "Enano" el que utilizo para probar todo lo que ira en el Battleship necesitaba un menú y un bucle While  para que volviera al principio cuando alguna de las preguntas fuera mal.  Así que le he dado caña y lo podréis ver en el vídeo de aquí abajo: 


Por lo que a esta hora se refiere, me ha encantado ponerme a trastar con While y saber que te lo puede joder todo a la minima simpre esta bien. Pero tengo que pensar la forma de dominar estos bucles y ver si mañana puedo mejorar al Enano para poder incluirlo todo en BattleShip. Ademas, ya me he decidido, antes de volver a Codeacademy a acabar el curso le dedicare a estos dos programas esta semana entera. He dicho. 


Porque me gusta y por que veo que al programar en un entorno libre me va de maravilla. 

jueves, 27 de febrero de 2014

Primer día sin errores graves.- Battleship y el Enano

Por fin,  ya tocaba una entrada en la que no llorara por los llorara por tonterías. Hoy he podido darle caña tanto a Battleship y para mostraros al Enano no he podido hacer nada del otro mundo, pero la menos hoy funcionaba todo. Ademas me he dado cuenta de que Python la lía un poco cuando tiene que imprimir caracteres ASCII bastante largos. Pero hemos podido hacer un buen trabajo con los títulos de ambos "Juegos". 



Abajo os dejaré el código completo pero de momento prefiero poneros el vídeo para demostraros que en realidad me estoy una hora metido. Aunque avance poco a poco ... xD



Aquí tenéis ambos códigos. En el caso de BattleShip viene con su respectivos comentarios:


enlace: http://pastebin.com/cvQPswVb



enlace: http://pastebin.com/BfZ33JRV

Ha sido una hora muy chula cambiando todos los problemas que realmente podía o sabia como hacerlo, mejorando mi Battleship (lo próximo será un menú xD) y peleandome con el GameOver que aun no se porque el programa pasa de el ... la maquina prefiere auto-destruirse antes que decirte que has perdido. xD


Si alguien me puede ayudar o darme algun consejo, lo agradecería muchísimo aquí os dejo la parte que me escama. 


Easy, pero python pasa de ella.

miércoles, 26 de febrero de 2014

Modificado el BattleShip.- Mierda no estoy en la 2.7.2

Vale, empiezo a explicar por que esto es una larga historia y seguramente a los que llevareis tiempo programando os va ha dar un patatús o os vais a partir lo que no suena de lo que os vais a reír de mi xD. 

Hoy, antes de ponerme a grabar, he preparado todo el tinglado he instalado Python en mi equipo y decidido a probar el código de Battleship lo puse en el SublimeText 2  para ya tenerlo preparado y guardado. Cual ha sido mi sorpresa al encontrarme que al ejecutarlo desde la cmd no funcionaba.

Después de volverme loco buscando una solución se ve ya tenia en el equipo versiones antiguas de python y me estaban dando algún tipo de incompatibilidad. Simplemente que estaba tirando con la versión 2.3 y por mucho que le dijera que usara la 2.7 no le daba la gana. Desinstalé las versiones anteriores,  lo probé y perfecto ya estaba dispuesto para grabar. La verdad es que hoy me había estado mas de una hora de grabación pero no por que me lo pasara bien, que también,  pero he tenido bastantes problemas.

Para comenzar había buscado información para imprimir en pantalla el titulo compuesto por caracteres Ascii, o también comúnmente conocido Ascii Art --> print """ """ si con tres comillas me permitía imprimir todo un párrafo, perfecto era lo que necesitaba. Pero cuando me he puesto me salían todo los caracteres desordenados. Quiero remarcar que anteriormente lo había probado y funcionaba, porque ahora no...

Luego después de 30 minutos peleándome con el BattleShip descubrí que raw_input() no funcionaba como Codecademy me enseñó es mas copiaba y pegaba el código que había puesto en el sublimetext2  y funcionaba ..  ¿Que cojones pasaba entonces? Entonces ya cabreado me puse a crear un programa chorra llamado Enano.py , el cual espero seguir por que le he pillado cariño, para probar lo del raw_input() ... No podía ser tan noob almenes en esto.... y entonces vi el error ...


No estaba trabajando con la versión 2.7 y no con la 2.7.2 que es la que se trabaja en Codecademy... y algunos métodos no funcionan como me habían enseñado...  y por si fuera poco.... al comprobar la grabación que había hecho de la hora .... el archivo estaba corrupto y aun no se la razón ... vaya hora. Pero, para compensar este error mañana trabajare con el Enano.py para darle caña y poderos-lo mostrar en el vídeo de mañana. 

martes, 25 de febrero de 2014

Thinking about Battleships!

Buenas, hoy no habrá vídeo para que veáis lo que he programado dado que si voy a ponerme a mejorar el código del juego "Hundir la flota" he de tener claro lo que quiero cambiar, lo que no o como lo quiero mejorar. Si esto no fuera así tendrías un vídeo con pausas interminables y eso no me gusta en absoluto. Ademas, es un trabajo que he estado haciendo durante todo el día de hoy por lo que se merece una entrada.  

La verdad es que estoy hecho un lío por no saber por donde empezar. Si empezara por arreglar los bug que existen es la versión de ayer podrían salir de nuevos al empezar a programar la segunda versión. Quizás seria mas buena idea conseguir un código "funcional" de esta segunda versión y arreglar los bugs del tirón. Pero, si no arreglo estos errores ahora,  puede ser que se me olviden después de todo... 

Así que, lo que haré es una cosa intermedia, arreglaré los errores mas "pesados" y empezaré a añadirle nuevas funcionalidades. ¿Que errores hay en el código de ayer?¿Que nuevas funcionalidades vas a ponerle a esto?

Errores:  (de momento los que he visto xD ya sabéis que soy un noob de esto.)
  1. No filtra las letras, es decir si cuando me pide el numero de columna y de fila le introduces un carácter no numero el programa estalla. 
  2. En el clásico juego de BattleShip en realidad las columnas son nombradas por letras y no con números.
  3. La posición del barco es imprimida por pantalla. Además solo hay 1 barco en juego.
  4. Los barcos mueren de 1 golpe. 
Nuevas funcionalidades: 
  1. Un menú no vendría mal. 
    1. Modos: un jugador y dos jugadores.  
  2. Barcos mas resistentes 
  3. Mas Barcos 
  4. Un Pixel Art antes del  Menú 
  5. ¿Nuevos Gráficos? tendré que mirar la librería pygame a ver si consigo algo xD
Si, todo el día dándole vueltas a lo que quería y creo que ya tengo una muy buena idea. Así que voy a darle a partir de mañana. Además lo del menú me irá genial para otros proyectos. Se aceptan propuestas. 

La verdad es que me apasiona poder crear mi propio "juego" aunque la mitad del código no sea propiamente mio creo que es un paso para aprender a usar la cabeza en un proyecto mucho mas libre que codecademy. Espero poder comentar bien el código para que os sea fácil es seguimiento. Si lo evoluciono un poco mas, ¿os gustaría que estuviera en GitHub?  Son muchas las dudas que tengo sobre eso ahora mismo así que si me podes ayudar os lo agradecería un montón, en serio ^^ 


Aprendo aprendo aprendo 

lunes, 24 de febrero de 2014

Mi primer acorazado con Python - BattleShip Incoming

Hoy es lunes y se que prometí meterme un poco en el Lenguaje R pero la verdad es que empezar a montar mi propio juego de "Hundir la flota" o "BattleShip" me gustaba mas que meterme desde 0 con otro lenguaje.
La verdad es que ha sido una hora bastante productiva, y tal vez no tendría que haberme quedado hasta acabarlo por motivos de tiempo. Ya sabéis que llegar tarde queda feo, pero me ha encantado poderlo acabar.  Al final os pondré todo el código para que podáis criticarlo como queráis. 


Como podréis ver en el vídeo que siempre os dejo por aquí abajo, la mayoría de errores han sido muy tontos. Me explico, esos típicos errores que no entiendes porqué no funcionan hasta que varias el nombre de una lista porque la habías dejado con el nombre por defecto.  


Aquí tenéis el código. No esta tan a mi gusto como me gustaría y por eso quiero dedicarle unas horas de código a programarlo bien, o todo lo bien que sepa xD
from random import randint
board = []
for x in range(5):
    board.append(["O"] * 5)
def print_board(board):
    for row in board:
        print " ".join(row)
print "Let's play Battleship!"
print_board(board)
def random_row(board):
    return randint(0, len(board) - 1)
def random_col(board):
    return randint(0, len(board[0]) - 1)
ship_row = random_row(board)
ship_col = random_col(board)
print ship_row
print ship_col
for turn in range(4):
     guess_row = int(raw_input("Guess Row:"))
     guess_col = int(raw_input("Guess Col:"))
     if guess_row == ship_row and guess_col == ship_col:
         print "Congratulations! You sunk my battleship!"
         break
     else:
         if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
              print "Oops, that's not even in the ocean."
         elif(board[guess_row][guess_col] == "X"):
             print "You guessed that one already."
         else:
             print "You missed my battleship!"
             board[guess_row][guess_col] = "X"
    # Print (turn + 1) here!
     print turn + 1
     if turn > 4:
         print "Game Over"
     print_board(board)
La verdad es que si todo va bien hoy me encantaría arreglar un poco este juego ... mmm ... o convertirlo en otro ... quien sabe. Lo importante es lo bien que me lo he pasado hoy dando le caña a esto. 


Esto ya empieza a parecerse a la hora de código que yo tenia en mente. 

viernes, 21 de febrero de 2014

Volviendo a los brazos de la Python xD

Después de haber acabado la primera unidad del curso que visteis ayer pensé en mi necesidad de hincharme ha videos y a practicas de java si pretendía subir un app a Google Play dentro de unos meses. Así que como es un trabajo que no puede ser grabado, bueno si que es posible pero no creo que os guste ver 1 hora de un tío con las manos en el teclado mirando un vídeo,  he decidido hacer mi hora con python y ya le dedicare tiempo a verme videos este fin de semana. 


La verdad es que me ha encantado volver y no solo por acabar el apartado de Funciones que ya domino un poco sino para empezar con el nuevo apartado llamado BattleShip y se trata de hacerse un "hundir la flota". La verdad es que estoy pensando de que, dependiendo como quede el código al final de este apartado, dedicarme una entradas a mejorar el juego solo por el hecho de tocar el código y divertirme xD Aquí tenéis mi hora de código. 


Aunque hoy hace un día algo gris ha valido la pena dedicarme la hora. Al menos no me siento tan inútil que con java -.-u tengo que mejora eso lo se. A ver si este "finde" me pongo las pilas.

Al Toro xD

jueves, 20 de febrero de 2014

Segunda clase con Java necesito clases particulares xD

La verdad es que no es el propósito del curso pero me veo muy cojo con java, así que mas para mi que para el curso me iria bien un refuerzo así que, haciendo caso a un mail, me he preparado unos videos referentes a un curso de java que lo explican para gente tonta como yo. Bueno, aun así en el "examen" de la unidad no me ha ido tan mal . La teoría la tengo pero para la practica me quedan muchos videos para ver. 


Aquí tenéis la hora y como necesitaba ver los videos del curso, para enterarme bien de todo pues lo he añadido a la hora xD


Bueno así que mientras ultimo detalles con Sniffer para ultimar las ideas que tenemos para este blog, me rallo la cabeza pensando en como me ira el curso o si dedicarle toda mi atencion a las practicas de los videos del curso de Java y no al de esta unidad. Pero sea como sea ... no sale >_<

Rabanda rabandaba rabanda a a 

miércoles, 19 de febrero de 2014

Empezando con Java.- Clases clases y mas clases.

Hoy aprovechando que ya había llegado a la parte mas practica del curso de programación en Android y que había arreglado el problema que había con Eclipse y Open Broadcaster, he aprovechado para grabar mi hora de código y para que veáis lo patata que soy con Java. 

La verdad es que me cuesta mucho cambiar el chip que llevaba de python y esto de definir clases en paginas diferentes e "invocarlas" (me gusta llamarlo asi, mola mucho mas que llamarlas xD) de clase en clase empezando por el public static void main(String[] main) {}  para que empiece a funcionar todo. Como he dicho me cuesta un poco de entender, pero no me desagrada esa sensación en absoluto. 


La verdad que aunque me cuesta un poco adaptarme estoy feliz de estar aprendiendo 2 lenguajes tan diferentes a la vez, me encanta y me apasiona al mismo tiempo. Así que, a por ello que esto se recompensa con un certificado. 


Eclipse, Java y Python. Esto da para una historia seguro. 

martes, 18 de febrero de 2014

Siiii un amplio resumen de listas en Python

Esta entrada lleva un poco mas de retraso de lo que es habitual para mi horario de publicación y no es para menos. La verdad es que hoy ha empezado un curso muy interesante sobre Android y quería que destinar la entrada de hoy a la creación de clases en java o la realización de mi primera practica para este curso. Pero, después de haber descargado el todo el ADT y de haber hecho alguna prueba para que tirara todo a la primera. Resulta que al ejecutar el programa que utilizo para grabar interrumpe algún proceso de la maquina virtual de Java y no me dejaba ejecutar Eclipse así que, he decidido hacer mi hora en python para no perder el tiempo. 


He de decir en mi defensa que he resuelto el error mas tarde pero, no me daba tiempo ni de lejos a montar todo el trabajo otra vez para presentarlo hoy. Así que os dejo con mi media hora, un poco mas de Python que he hecho hoy.


La verdad es que me ha encantado volver a las lista y me ha encantado aun mas que haya un rápido resumen sobre ellas. Las tenia medio olvidadas y de lo bien que me ha ido esta sesión casi eclipsa no haber obtenido ningún logro. Hoy estoy satisfecho de mi trabajo. 


Next Round Java & Eclipse