Páginas

miércoles, 19 de febrero de 2020

Saitou y el arte japonés de no mariconear con corchetes

Una vez llorando yo ,de niño, mi viejo me dijo: callate pendejo maricón dejá mirar el super clasico Maradona7Pelé.
55 años mas tarde me creo la persona idonea para decirte lo mismo, pero dejá de usar corchetes.

En el capítulo anterior de su serie de tv favorita de bajo presupuesto, vimos que un array es en realidad un apuntador, más concretamente el nombre como tal es un apuntador, los corchetes son como un sugar daddy sintax. Traducido al espanglish como sintexis salada, no? hmm

Un coso de sintaxis azucarada es una maña para que se mire bien la cosa y no sea enquilombante programar. Pero bueno, no seamos putos, C++ es más feo para escribir que el árabe.

recordemos entonces que:

owo 

Eso sería la verdadera identidad del arreglo en si. Ahora vamos a definir un arreglo de chars (como podria ser de cualquier cosa, como Sanguches o Menemistas) y vamos a mostrar los elementos usando la tecnica ancestral de:

ARITMETICA PARA giles APUNTADORES!

First need un arreglo de toa la vida:


Este arreglo es un arreglo de caracteres que si quiseramos mostrarlo, debieramos saber el tamaño e iterar dentro de un for o un while o un do/while.
Para saber el tamaño usamos un operador coreano oculto entre las hojas que se llama, dividi el entero por su minima (???????)
eto: int TAM = sizeof(arreglo) / sizeof(char);
tam es igual al tamaño en bytes de arreglo dividido el tamaño que ocupa un char.
Esta técnica funciona para todos los datos del C++. Usalo son sabiduría Piter.

Ahora sabiendo el tamaño, ponemos un for y mostramos la cuea:


jasta nani todo bien, usamos arreglo[i] para mostrar el caracter que corresponde al indice i. PORFAVOR no me comenten diciendo pelotudeces como "se te olvidó poner el nulo al final" , o "te falto el \0" NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO *expltota*.

Ahora, la aritmetica de apuntadores solo sirve dentro del mismo apuntador, puesto que vamos a recorrer de atras pa adelante la variable.
internamente estos operadores, como ser el + y el -, suman y restan una cantidad de bytes equivalente al elemento que compone al array. Osea, que si papito tiene un array de ints, hacer:
arreglo_de_ints + 2;

sumaría los bytes que ocupa un int en tu PC multiplicado por dos. Eso haría que desde la posicion en memoria de "arreglo_de_ints" se muevan tantos bytes, que quede entonces posicionado en donde se almacena el tercer elemento.

recordemos tres cosas:
1) el nombre de un arreglo es un apuntador a su primer elemento, osea es lo mimo que si yo pusiera: arreglo_de_ints[0] = *arreglo_de_ints
2) el primer elemento es arreglo[0], el segundo es arreglo[1] , el tercero es arreglo[2], exetera
3) tu mamá me llama

Probemos traducir el codigo a coreano para obtener un resultado de coreano programando en coreano:


acá basicamente lo que hicimos es sumar i a la variable arreglo, osea que va sumando 1byte * i. (Un char ocupa exactamente 1 byte). Entonces después lo desreferenciamos porque estamos diciendo que si " arreglo" es un apuntador a la primer direccion, "array + i" sigue siendo un apuntador, por ello hay que desreferenciarlo para saber que wea tiene atroden.

Podés, si te sentís asiatico, multiplicar también un valor, o mas sensisho pero no amarisho, restarle, dividir. Operaciones aritmeticas faciles de primer gradiola.
Eso si, nada, pero absolutamente NADIEN te asegura que se te vaya al pingo el indice "i" y quedés afuera de los limites xd
Y vos te estarás preguntando : "sirve para algo"
mi respuesta sincera es: "xd"

nos vemos en otra entrega camaradens!


viernes, 17 de enero de 2020

La verdad sobre la tierra hueca y el arrais

Ha, estás acá de vuelta, te quedaste con hambre, hambre de conocimiento, veni golosa, veni  que te doy masa

masarticulos de blog, eh, malpensado!

Alguna vez se preguntaron de donde sale tanto pelotudo suelto, si, del centro de la tierra, listo misterio desvela2. Otro dia desvelo el misterio de la tierra plana.
Ahora sigamos con los arrays.

El otro dia hablando un poco de los arrays, les dijen que eran como cagaditas que se acomodaban uno al lado del otro bien apretao, como cuando se llena de viejas chotas la iglesia y ninguna quiere estar parada.
Eso, un array en C++ es una tira de variables homogeneas una al costao de la otra.
Recordemos que un array, es una variable. Y al ser una variable, entonces se almacena en memoria y si está en memoria le puedo poner un chumbo en el mate, o mejor un apuntador.

Esto nos dice que si yo apunto a un array, y si un array es una seguidilla de variables una al lado de otra entonces, puedo mirar más allá del array, puedo mirar más profundamente puedo crear una variable introspectiva, puedo ser DIOS. No tanto pero:

hostia puta, el fantasma de la B era un apuntador todo este tiempo!

hay muchas cosas que en C++ moderno no se dicen, sos el choripibe que cree que el país se arregla con planes sociales, con la ayuda sosial con el voleto grati con el choripene. Ese sos vos, porque te crees todo lo que escuchas en el diario y lo que mirás en la radio.
Y como tal, hay cosas que no te dicen en los manuales modernos del C++ y es que, un array es un apntador.
ALA CHAVAL, PERO QUE GÜAY, NO?!

La semejanza de un apuntador un array y papa noel

Papa noel no esiste y el arrai tampoco. Un array es un apuntador que apunta al primer elemento de esa tan famosa cadena de elementos.

Si vo va al compilador y haces:


El compilador te va a mostrar la chota un valor en hexadecimal, como cuando trabajábamos con apuntadores, esto es porque ni el array ni papanoel, ni boquita existen.
El nombre de un array es tu papá disfrazado un apuntador.
Los corchetes son humo, son cuentos, son fruto de la viveza criolla, un chamuyo pero nunca el sueño americano de un pais primer mundista. 

En Asia, mas concreatamente en Corea, no usan corchetes, vos vás a laburar desarrollando software allá y le decis a tu colega compañero:
- Che, chino puto, me parece que te comiste los corchetes acá.
- Chino lo unico que él comelse sel tu helmana, chino no sel malica, chino usal puntelos. Colchete pala sudaca cagón.

Y vos así como de NANI !? y como no querés quedar como un pitochico, seguramente te interese saber usar la técnica ancestral samurai de:

Resultado de imagen para gif manos naruto

TECNICA SECRETA JUTSU NO CORCHETE DE LA ALDEA OCULTA ENTRE LOS PUNTEROS 

O más conocida en la jerga negra como: aritmética de apuntadores.

Chau, chau putooo chau putooo! ♫♪


No me apuntes con eso! D:

Sabés cual es el problema con la gente de hoy? Es que se volvieron todos una manga de putos y maricones.
No pará no hablo del movimiento elgetevé. Hablo de otra cosa.

Mucha gente le tiene miedo al concepto de "apuntador" o "puntero" dicen que es dificil, dicen que no se entiende, dicen que soy aburrido.
Yo lo único que te puedo decir es que bobo, gordo y un cagón. No servís ni para ir a la cancha.
    No hay peor ciego que aquel que no quiere escuchar.

Las malas lenguas dicen que fueron los Coreanos quienes inventaros semejante salvajada, pero no, los punteros existen desde que la gente maleducada decidió apuntar con el dedo.

Qué es un apuntador?
Un apuntador es una variable que apunta a otra. Es decir si yo tengo una variable entera con un valor pongamosle:
int edad = 3;
Mi variable de apuntador, pude hacer referencia a la variable "edad":
int *puntero_a_entero = &edad;
Y usarse para mostrar el valor, de "edad" pero usando la variable "puntero_a_entero":
cout << *puntero_a_entero;

Lo cual mostraría el valor de 3.

Resultado de imagen para shrek face  
RE util

Y ... es medio como cuando tu viejo maneja, digamos... tiene la luz de guiño pero no la usa para nada el cornudo.

Cómo uso una variable de apuntador?

Como ya se dijo antes, la variable de apuntador (o puntero) se usa principalmente para apuntar a otra variable.
Una variable de apuntador sigue las mismas reglas que una variable normal, en cuanto a alcance(o ámbito), nomenclatura y tiempo de vida. Sin embarguen la variablen no almacena un tipo de dato concreto sino mas bien una direccion de memoria.

Si una variable de tipo int es capaz de almacenar un valor numerico,. Una variable de apuntador es capaz de almacenar una dirección de memoria.

Angora, para obtener la dirección de memoria de otra variable se usa el operador coreano de obtencion de dirección en memoria RAM, el operador AMPERAND-SAMAA
ete  que etá acá:

&

Vos usando esa cagadita y el nombre de una variable de cualquier tipo, ya sea int, char, float, double, incluso otro puntero, te devuelve la dirección de memoria en la que se aloja dicha variable.
Osea, si yo hago esto en mi programa de C++:
cout << &edad;
Te tiene que salir un numero en hexadecimal, que representaría la posición en memoria en donde está la variable edad.
Recordemos que una variable es un espacio en memoria ram capaz de almacenar un valora por vez. El operador de direccion & me devielve esa direccion.

Volviendo al ejemplo de mas arriba de la cara de chuerk, teniamos que:

int edad = 30;
Ahora si yo quiero crear un apuntador que apunte a la variable edad, usaríamos el operador coreano de peticion de dirección, recordemos pues, que una variable de apuntador contiene una direccion de memoria.
La morfologia de un apuntador, tiene adicionalmente en nombracion un asterisco:

*
Si yo quiero apuntar, en este caso a una variable entera. Entonces mi apuntador debe parecerse así como esto:

int * ptr;


Lo cual nos dice "ptr es un apuntador a un entero". Esto de anteponer el tipo de dato, es escencial puesto que los diferentes tipos, ya sea int, char, float, etc, en memoria ocupan diferente espacio en bytes, entonces es necesario antes especificar el tipo de dato a apuntar.
Ahora, de nuevo la variable apuntador recibe como valor una direccion de memoria, no te olvides no seas boludo, no te hagas poner un 1 de arriba en la prueba.

Luego, cuando creamos el puntero tenemos que inicializarlo con la dirección de alguna variable.
Entonces tenemos que:
int edad = 30;
int *ptr= &edad;

Ya con eso mi variable petero, perdon ptr, apunta a "edad", pero pasa algo genial si hacemos:
cout << ptr;

Y es que nos va a mostrar la direccion de la variable "edad", esto porque como dije 4 veces arriba, las variable de puntero almacenan una direccion en memoria, por lo tanto vamos a mostrar justamente eso, su contenido, una direccion de memoria.

Operador coreano de resolucion de diresion:

El operador de resolución de direccion o indireccion es un asterisco también.
Y sirve para resolver la direccion de una variable. En nuestro ejemplo anterior ptr al contener una direccion, muestra un numero en hexadecimal. Si nosotros quisieramos mostrar la variable a la cuál apunta le tenemos que anteponer el operador de indireccion, osea un asterisco:

cout << *ptr;
 Y listo, chau a tomar la leche.

Visto así como así no tiene mucho uso un apuntador, en estos ejemplos petes, pero creeme que cuando veamos más de arreglos, te vas a querer tijeretear las pelotas.

Salu3 gatonautas.


viernes, 10 de enero de 2020

Enlistame en la lista e historias listas sobre listas enlistadas

Hooooola bandurria, tanto time sin writing en este blog, que te cuento... casi que pierdo el correo para entrar xd que pelotubi.
Lo más sorprendente? hace años, me mandé el correo mas pelotudo del mundo: yo, diciendo "para entrar a blogspot usa tantocorreo@gmail" XDD
No caigo la verdad, ni yo me acordaba de eso, y buscando lo encontré de pe2.

A lo que vamos, mucha gente en la audiencia me preguntó que como se come una vector o array en C++. Bueno, para vuestra sorpresa no se come , se lo mete por el cul...

Qué es un vector?
Vector también llamado Array, tambien llamado Arreglo, también llamado lista estática, también llamado eso que se ve una vez y después no sirve pa aca.

Tenía un profesor en la Universidad que decia: "chico, etudien, dejen de pelotudiá, son el futuro del pais."
(Hoy 2020 Argenzuela is real)

No mentira. El viejo decia: "chico, un vetor es como una caja donde vos pones valores".
Mira cumpa, yo de valores y caja no entiendo mucho, siempre fui de poner pesos bajo el colchón, a lo mejor eso hizo en parte se devalue mi peso querido. *llora mirando la foto de San Martin libertador*

Un vector, a mi entender, es un colección de variables de tipo homogénea. Homogénea se entiende por una colección de variables del mismo tipo, que pueden ser enteros, decimales, charachteres o manzanas.

que e esa banderita q tene ahi...
-Eso?, Eso é un vector!

y decir una colección de variables de un tipo común es medio... medio pete, porque en realidad no es tan así.
Mira pendeja, vos cuando vas a declarar un vector de toda la vida:

En realidad lo que hace el se-másmás o el compilador o Dios, es poner tantos valores enteros en memoria adyacente. Es decir, una al lado de otra, entonces cuando uno vá recorriendo el vector, internamente, se usa lo que en el bajo mundo se conoce como Aritmetica de Apuntadores o como dicen en corea:     당신의 여자 친구는 창녀입니다

Resumiendo, las variables van una al lado de otra para que se puedan acceder easy.

Eso es una lista, ya tá, hay que ser pelotudo si no entendés. No tiene más magia, es una tira de valores uno al lao del otro pa q la wea se ordene y lito, chau a la casa, tené 10. No vemo el año que viene.

Ah eso si, la facilidad radica en que para acceder a un valor, solamente tenés que poner el nombre del vector y el indice al cual hacer referencia.
Por ejemplo del array anterior, si sho pongo:

cout << v[4];

El programa me va a mostar en pantasha: 5
Recordemos una cosa importante y es que los indices de los vectores comienzan en cero. Es decir para el indice cero, el valor es 0.
Para el indice uno el valor es 1.
Para el indice dos el valor es 2.
Para el indice tres el valor es 3.
Para el indice cuatro el valor es 5.

Ahora, no se te vaya a ocurrir, de meter la pata cuando estés en un exámen y te digan: "A ver Pepito cual es el valor del segundo elemento?"
Y ahi, tenés que tener cuidado, porque el elemento número 2 y el segundo elemento son distintos.
El elemento numero dos, sería v[2], el cual vale 2.
Pero, el segundo elemento sería v[1] el cual vale 1.
Recordemos que el primer elemento es v[0] porque los vectores en C++ comienzan desde el indice cero.

Guarda eh? yo te avisé, son bravas las viejas, te hacen preguntas chotas para mandarte a rendir a Diciembre. Sisi, yo entiendo que hay veces que hay ganas de meterle un turrón de navidad en el culo, pero es verdad, que muchas veces uno estudia como la mierda y quiere aprobar diciendo pelotudeces.
Hashtag, no a la guitarreada.

#LaGuitarraEsParaLosPetesYoMeEstudioElManualEntero


jueves, 19 de enero de 2017

Sobre binarios y archivos de te equis te

Alguna vez escucharon hablar de binarios?
Si, en TARINGA! seguramente cuando quieren pasar porno o links de descarga.


Bueno, el problema, luego de investigar un poco era que estaba leyendo el archivo como si contuviera caracteres ASCII, la llógica me decía que eso era lo correcto, porque? bueno, quizá las drogas sean malas.

Una vez hace mas de 3 años hice un programa que copiaba archivos, lo hice con fines maliciosos, esta claro, pa' q te wa mentir. Pero resulta que hasta ayer no recordaba esa sutil diferencia al momento de abrir/escribir archivos... mi excusa? no la hay, simplemente nunca más volvi a hacer handling(del inglés Manuela) de archivos o datafiles.

Entonces re-escribí un poco el código que ya tenía y violá!


Welcome to Matrix , NEO, pilla la pildora verde, joer, tio
Pastilla verde? glitch everywhere

Bueno ahora si abro el correspondiente GIF obtengo lo mismo que haría al hacerlo con el Notepad++, y es justo lo que quería... ahora viene la parte importante, ¿Cómo hago para ver la estructura ordenada? Creo que de ahora en más me va a costar una lectura a las especificaciones de GIF o corbatearme... lo que llegue primero

Pero por lo pronto podemos ir visualizando un poco el archivo:


La cuestion sería ordenarlo un poco para entender un poco cómo esta estructurado. Aclaro de momento que no estoy realmente seguro si la conversion a unsinged char, se debe hacer o no, si esta bien hacerla.  Pero bueno uno paga los 0.05 centavos en el supermercado para ayudar a la ballenas y nadie dice nada, asi que para mi es lo mismo pero con números.


Saludosssssssssssssssssss (Pársel detected)


miércoles, 18 de enero de 2017

Desmembrando un Gif miembro a miembro

Alguna vez se preguntaron cómo es que un archivo GIF esta compuesto?

Bah... osea... claro, usual, te levantás a las 4 de la mañana todo transpirado y gritás: "Cómo poronga estarán hechas las imagenes???" y te dormís de nuevo.

Usualmente uno no le da bola a las cosas sencillas de la vida, maquinola a manija, pero que sucedería el dia que alguien acuda a nuestra ayuda pidiendonos programar un programa para el tratamiento de imagenes?
Ese es el quiz de la cuestión, la cereza en el pastel, tu vieja en mi cam... no pará


Tras un par de dias leyendo el... como se le dicen a estas porquerías..., es un documento... ah si! "La especificacion de archivo GIF" que es un documento que contiene el codificado/decodificado de un archivo GIF, que básicamente explica cómo estan hechas estas maravillas animadas.


Ejemplo práctico de una imagen animada en formato GIF... es hasta hipnotizante, en serio.

Luego de hacer un programa en la lengua madre soviética, ANSI C, lo que hacía básicamente era abrir un archivo e ir mostrando el contenido, previamente los convertía a enteros, luego del "número mágico" o como suelen decirlo en la TV the show of do mayico mascarado



(MIrá ese escriptazo papu)


Pude comprobar que efectivamente si se deja mostrar la cabecera (esto con un for) el resto concuerda con la especificación. Que seguramente no tendrán ni puta idea... pero inicialmente comienza con el tamaño del lienzo del archivo a saber, el tratamientofue sobre "cat.gif" que, efectivamente media 64 x 64... o lo mismo, el primer y tercer número en la tabla.

Luego de desmembrar muchos GIF's hechos por mi, pasados por conversores y yerbas de Mandinga el prohibido necros, me dí cuenta de que mi programa podría estar fallando.

Esto era obvio, si trataba con algo que pudiera leer cualquier archivo como notepad++.
El problema estaba en esto:


En que si yo abria un archivo GIF animado super simple como una pelota me salía una desmesurada tabla. Pero si yo trataba con el gif de nuestra amiga con aspecto perruno, la tabla era ínfima.

Probablemente había estado tratando mal los archivos? (archivo hijo de puta, vos a mi me respetás)
#PrayForMonguito
#NoAlMaltratoDeArchivos


De momento no es algo realmente crítico,y siempre podés ver cosas raras en Notepad:



Me dispongo a cambiar la compración EOF por usar foef(...), a ver si eso "soluciona" el problema.
Deséenme suerte y no lloren por mi que ya estoy mori434.


404 despedida not found.

martes, 17 de enero de 2017

La mágica historia de GIFecito

Hello darkness mai old friends...

Hola iutub soy marina joyce, no estoy secuestrada ni nada, solo escribo a tiempo completo en un sótano entradas para un blog muerto. HELP

No, no es cierto... nadie dijo nada. *La mete dentro de una bolsa de papas*


Alguien alguna vez se preguntó que le pasó al blog?
Bueno, en realidad no mucho, solo digievolcionó como los Pokémones (Copyright STRIKE incoming!) ah... porque digievolucionaban si eran cartas de yu-gi-oh?
     Sucede que me volví un hombre de bien, un hombre grande, con hijos, y esposa... imaginario todo por supuesto y me dediqué al alcohol étilico con jugo Baggio.

"Na, hace varios años que la vengo pecheando pero este año es el bueno."
Suena como yo el año pasado :grin:

La historia en cuestion

Sin más preambulos ambulines ambulantes deambuleaneros, comenzamos con la mágica historia de GIFecito, un archivo GIF (tm), que nació para ser un colorido archivo a 256 colores, animado. Pero un dia le pintó el corbatazo y se colgó.

La alegoría del cuento es que el GIF animado que estaba depresivo... ahhhhhhhh re

De GIFazos, memes y memazos

Alguna vez, alguien en la antigua Grecia llamado Miguél de Notredam(aka Nostradámas pal barrio que lo vió crecer y jugar en cebollitas) se preguntó: "por qué caen para arriba las manzanas?", claramente el man estaba durísimo como pan viejo... aún así surgió la necesidad imperiosa y vital de la humanidad de crear un archivo que cumpliera muchos puntos importantes.

Esa es la historia falsa, la verdadera es que en un sucucho muy lejano en Oklahoma, se juntaron 5 gordos morbidos a debatir el futuro de la humanidad y de un formato que conllevara a la paz mundial, así surgió el formato GIF.
Sea dicho de paso que se pusieron de acuerdo para que sea una real mierda, con corona y cetro.
No, pos, por qué? veamos
  • Pesa más que milanesa de Mantecol
  • Tiene menos colores que vision de perro
  • Transparencia igual a la de Panamá Papers
  • Pierde calidad como los juguetes hechos en China
De todas maneras tiene una basta cantidad de puntos a favor, vamos a enumerarlos:
  • Gif porno en Taringa
Listo, se acabaron los puntos fuertes.
Uno podría pensar que tiene mas cosas malas que buenas y si, voçé tem toda la razoun, voçé tem Pelé!

A menos claro que se os haya olvidado tener en cuenta que es un formato remil viejo, más atrás en el tiempo, mucho más atrás en 1990 cuando internet era vos y tu vecino usando 2 vasitos de yogur con un piolin de cometa.

Si de verdad querés leer la historia de los GIF's andá a wikipedia y dejá de romper los huevos, que me viste cara de Biblioteca, pelotudo?

Como sea... la parte buena que tiene GIF es que se puede animar ( jip, jip, hurra????) o mejor dicho que es animado (cuenta chistes?).  No conozco formato más copado que uno que te deja hacer animaciones mediocres, con pocos colores y encima pesado.

              

El punto de todo esto, no es el origen real, ni el ficticio, sino que estás leyendo esto al pedo .
Si voçé a perdido tiempo, la esperanza en el mundo, entonces yo ya gané. Por que yo no voté el cambio, globoludo.

Pero bueno calma,  sólo recordemos lo que decía Buda:
Ni corto ni perezoso, ni religioso ni pagano
Te voy a enseñar a tirar altos Gif's como un koreano

En otra entrada de voy a desvelar la teoría de la tierra hueca y como trabajar con formato GIF en mi lenguaje madre C/C++.

Saludos!!!!!!!1uno

viernes, 18 de octubre de 2013

Dia 1: sobre la planificación de un RPG local: El tipico problema de las camaras ocultas de VideoMatch

Saludame saludate, ah... no?  Silver ser reiría...

Con propósitos de documentación, inclusive si es posible (pero no es el objetivo) que pueda para muchos ser didactico, escribiré así como que entradas respecto al desarrollo de lo que vendría siendo un juego en RPG para 4 jugadores Locales (No online) sea de paso sabido: Local != Online sin embargo no necesariamente implica que Local = conexion en red (LAN), concluimos así el objetivo principal del juego que es: Realizar un juego para 4 jugadores, que pueda ser jugado (valga la redunancia) en una PC de escritorio. Y para más claro: NO LAN, NO Online, NO red, NO conexiones.

FAQ inecesario tendencioso tomador de bebidas encafeinadas:

-Cómo surgio el proyecto?
 Un dia común como vos como yo, surge un dia 27 de Septiembre de 2013 una propuesta por parte de Escuarenics (Copyright)  para ampliar la franquicia codiciosa y avara de Fainal phantasi, es así como surge un proyecto sin precedentes en el mundo de los videojuegos :D
Okno, un dia (like a Cat) postee en Facebook una publicación pidiendo a los Dioses de la programación una idea como para hacer (se hacía el pr4h después de lo que venía siendo estudiar C/C++) y bueno, le pintó la nostalgia de hacer alguito en Game Maker.... (hereje). Así llegó Kurt que me propuso hacer un juego para 4P del tipo RPG.

-Ya tenés planeado el juego?
Ya sabeis lo dizen por losh mediosh... vuestra media naranja sois vosotros mismos, ahora casaos con vustro propio ego de mierd* (?)
ah... digo, no---

- Cuba o Africa?
Ya tu sabeh mi negro... Cuba libreeee!

-Sea dicho de paso este FAQ no aporta nada, ni siquiera es un FAQ, fuck! -



Bien, ahora planteando el tema de la jugabilidad el primer inconveniente fue meter un jugador independiente en un lugar X distinto de los demás.
¿Qué quieres decir con esto? D:
- Quiero decir que por cada jugador (quizá algo obvio) se empleará una camara independiente. Ahora si un jugador por si mismo quisiera entrar en una casa, tienda, casa tienda, tienda casa, casienda, tiendasa,....(?) habría que plantearse primero, que no se puede cambiar de room puesto que todos los jugadores forman parte del juego actual, si hicieramos eso moveriamos todos los jugadores a un room diferente, como no queremos que succeda.
Una solicion para dicho inconveniente fue plantearme el realizar un espacio reservado para cada jugador, un espacio donde esté la casa a donde se ingresa. El tamaño debería ser <= Tam_max_ed, donde Tam_max_ed es el tamaño del edificio más grande.



Luego surge un segundo inconveniente (respecto al rendiemiento), nos preguntamos entonces ¿Es necesario hacer un apartado exclusivo para cada jugador? Si lo pensamos bien, no realmente, porque todos podrían entrar en una misma casa, es más si hay una cantidad  de casa menor a la cantidad de jugadores en verdad no tendría mucho sentido, puesto que los jugadores podrían compartir (en todo caso) un espacio reservado. Pero esto complicaría un poco la administración de espacios reservados, calcularlos por room respecto a si hay o no cantidad de jugadores <= cantidad de edificios (casas)
Eso, a saber es desviar nuestro punto de programación a algo innecesario, para lo que viene siendo "el pez gordo".

Hasta ahora esto es todo XD me canse de escribir, otro dia ampliaré mas el concepto.

 

sábado, 31 de agosto de 2013

Programando una IA de naves


 Hola GATONAUTASSSSSSSSSSSSSSSsssssssssssssssssssssssssss ah, re que nunca escribia el sucio...

Luego de haber retomado lo que venia siendo la programación dentro de un IDE como es el Game Maker, que lo había dejado años atrás porque ya no era lo que era siendo que dejo de ser lo que solía ser cuando era lo que realmente era , no siendo lo que uno espera de ser lo que era(?) ah.

Eeeeeeeen, fin *german reference* lo que pasa es que uno anda asi como que perdido con la facultad y toda la pesca ( y no cuenta como excusa, en la Rusia Sovietica las computadoras te programan a ti).


Programar no es lo mismo que antes, antes estaba al reverendo pedo TOO MUCH! XD y bueno que querés las vacaciones daban para clavarse... altos algoritmos aaaaah picaron!

Programame programate, alica, alicate

Lo que sea... viendo la venida de lo que será la nueva GIA4, una leyenda entre otras leyendas... no sé quien fue el Semi Dios que se dio el lujaso de hacer una nueva... porque desde la GIA2 a la GIA3 pasó creo yo mucho tiempo, o eso me pareció. Un excelente trabajo de Ciberman en cuanto al concepto de juego... yo la verdad para cosas novedosas no soy un As.
   Esto nos lleva  a preguntarnos quien diseñó la GIA4? o quienes, si fuera el caso.... pero algo que mas intriga creo yo es de QUÉ se va a tratar... ya cubrieron naves cenitales, Tetris! y plataformas. ¿Qué depara la GIA4? RPG's? No sé como que no cuadra... o la propuesta del autoritario Metal Mario? Una GIA de peleas a lo KOF?  [Aunque bueno, no todo el merito es de Metal Mario, sino de... hmmm.... no me acuerdo pero el tipo que la propuso, bastante original :D]

Y bue, ya me fuí por las ramas *se prende alta tuca*... viendo la llegada de la GIA4 me surgió probar mis habilidades en Game Maker, que resultaron ser una nefastes XD de las cosmicas exponenciales bananasticas ._.)
Como sea... intenté recrear la GIA1 la batalla de naves, haciendolo todo desde 0 con funciones trigonometricas y tal.... llegué conceptualmente a hacer 2 hojas de tería sobre como mover la nave, calculos y un monton de cosillas trigonometrísticas:

La foto-certificada, que no se ve una put* mierd* LOL


Comencé haciendo algo sencillote, una funcion de SENO/COSENO en la que la nave rota alrededor del cursor:

._.) no aparenta nada hasta ahora


Lo que hacía era orbitar alrededor del punto del mouse, asi como un droide rotatorio, Lo que se ven de colores, son los que determiné como puntos de area peligrosa, es decir dentro de esos puntos la nave puede ser dañada con cualquier proyectil, no es tan general, sino que mide un radio de 32 o 16, aprox. un calculo asi como que estimativo (se re iba al carajo):

acá se nota mas la rotacion, menos croto
Finalmente le decidí dar un toque matemático (al pedo) porque estaba al pedo... valga la redundancia, LOL


caretear es gratis, por eso lo hago =D

A la final todo quedó RE armado, hacía todo lo que tenía que hacer, se iba hacia el punto de salvataje si determinaba que debía esquivar, entonces rotaba, estaba todo perfecto!
Lo que falló fue cuando el punto cambió a un proyectil variable, como un disparo, el punto de rotación se calculaba siempre y nunca era relativo, sino mas bien absoluto, hacía saltos en la pantalla, HORRIBLES parecía que estaba re baqueteado con cocaína el piloto... volaba mal la nave al carajo tendiendo al infinito y más allá.

zopeda de mi IA

Mi IA no llegaba más que unas cuantas lineas, unas... 80 (ah se hacía el humilde)... na, 80 no es nada, programé algo tirando a las 400 lineas si no me equivoco pero en otro lenguajejejejejejejejeje(?  *estaba re duro*

Bueno, no sé en que fallé, pero lo más seguro es que sea en la cohesión (ah, usaba terminos de la universidad, ewe) entre los distintos estados, 2 dependientes de 1 ya es demasiado.... dos modulos que dependan de uno es bastante, y más si son así como que similares: Esquivar de rotar, pero puede parecer similar.... lo que sea, a mi se me hace que fue eso, lo de andar anidando como negro a los cartones, lo que para mi fueron los estados a las funciones.... ah, re racista era? nee, eso es cosa de negros (?)

Bueno, como lección de vida, no importa qué tan documentado este su juegorl, siempre habrá un reverendo problema triple joputa que te joda lo que hiciste todo el santo dia, la re put* madre que los parió
:D los quiero ^_^

Recuerden... programar es de vikingos y de gatos con Notebooks! hasta la próxima :3



martes, 26 de marzo de 2013

Simpletron


Hola a todos los gatonautas que se gastan en leer la pavadas que escribo acá, porque de hecho, no lo hago a menudo.... no desde EL INCIDENTE D:
 Hacía años que no programaba algo en serio, y mucho menos juegos en Game Maker, porque... no se, vos viste cuando la magia se va... se va U__U

Hoy me di cuenta de que tan mal estaba cuando no podía poner a punto un for estilo fila y columna pero con un solo arreglo de 100 elementos.
 Y es que de eso trata simpletron! Una maquina SIMPLEtron capaz de hacer calculos basicos, y que además si se tiene un poco de imaginación puede ejecutar pequeños programas ciclicos para sacar promedios, etc, etc.

Simpletron es una maquina que entiende palabras especificas, y además trabaja secuencialmente de arriba hacia abajo. Una palabra en simpletros se entiende como un codigo numerico de cuatro cifra (veremos esto mas adelante) 
Simpletron cuenta con unos pocos comandos, enlistar! :

LEER = 10 lee una valor desde el teclado y la introduce en una celda de memoria.

ESCRIBIR = 11 , muestra en pantalla el valor almacenado en una celda especifica de memoria

CARGAR = 20  carga en la memoria temporal un valor indicado por la celda de memoria

ALMACENA = 21 guarda un valor dentro de una celda especifica de memoria

SUMA = 30 suma el valor que esta actualmente en la memoria temporal al que esta en la celda de memoria especificada y guarda el resultado en la memoria temporal

RESTA = 31 resta el valor que esta actualmente en la memoria temporal al que esta en la celda de memoria especificada y guarda el resultado en la memoria temporal

DIVIDE = 32 divide el valor que esta actualmente en la memoria temporal con el de la celda de memoria especificada, guarda el resultado en la memoria temporal

MULTIPLICA = 33 multiplica el valor que esta actualmente en la memoria temporal con el de la celda de memoria especificada, guarda el resultado en la memoria temporal

BIFURCA = 40 bifurca a la localidad de memoria especificada

BIFURCANEGATIVO = 41 bifurca a la localidad especificada, solo si el valor de la memoria temporal es negativo

BIFURCACERO = 42 bifurca a la localidad especificada, solo si el valor de la memoria temporal es igual a 0

PARAR = 43 finaliza el programa

MOSTRARREGISTROS = 50 muestra todos los registros y estados de memoria


el funcionamiento de Simpletron es bastante basico, trabaja con dos memorias:
Una memoria temporal, y una memoria de almacenamiento(la cual contiene 100 slots)
Por Cada comando que se escribe para simpletros, se ocupará un slot de memoria, tambien por cada valor que guardemos.

Una palabra en Simpletron se entiende como un codigo numerico de cuatro cifras, ej: 1023
Esta palabra se separa en dos partes, 10 y 23: 1023
Los dos primeros digitos indican que funcion va a realizar Simpletron, en este caso con 1023, los primero dos digitos, son 10, es decir que llamamos al comando de escritura.
Luego la segunda parte indica la celda de memoria que especificamos, en este caso 23.
Entonces con esto: 1023 estamos diciendo que vamos a leer un valor desde el teclado y lo vamos a guardar en la celda 23

Supongamos que queremos sumar dos numeros: 
Primero cargamos el primer numero 1009: cargamos el primer numero en la celda 09
Segundo cargamos el segundo numero 1010: cargamos el segundo numero en la celda 10
Ahora para Sumarlo, primero debemos cargar uno de los dos numeros a sumar en la memoria temporal, como lo dice la funcion, para ello usamos el comando 20 seguido del primer numero que queremos sumar
es decir: 2009, entonces ya lo tenemos cargado.
Luego para sumar usamos el comando de suma, que es 30 y seguido colocamos la celda de memoria que vamos a sumarle, es decir 3010, luego el resultado se almacena nuevamente en la memoria temporal.
Entonces tenemos:
1009
1010
2009
3010

Para que un programa termine correctamente, se emplea el comando 43, es indiferente si colocamos 4300, como si fuera 4398, puesto que solo interesa la primera parte, el 43.
Si, un programa termina con un error fatal, ya sea division por cero o desbordamiento de memoria (a saber, que solo pueden almacenarse numeros de 4 digitos), en ese caso se mostrará los registros para que puedas verificar cuales fueron los errores.
Bifurcar, significa ir a un punto del programa en especifico, tomando el ejemplo de la suma:
00 1009
01 1010
02 2009
03 3010
si queremos volver a ingresar un valor en la celda 09, nos bastará con usar el comando de bifurcacion 40, de la siguiente forma 4009 entonces esto hará que se ejecute el programa desde dicha posicion, puesto que como dije es un programa secuencial.

Luego de escrito el programa, para que se ejecute hay que colocar el centinela 99999


Este es un ejemplo del uso del comando de lectura:
Note que para ejecutar el programa debe tipear el centinela 99999
Se puede apreciar un "? 3" que sería el ingreso del comando 1003




Como se puede apreciar ocurre una advertencia de comandos inexistentes cuando se leen comandos que no corresponde a ninguna funcion en simpletron.




Aqui podemos apreciar una division por cero, lo cual despliega los registros, es decir, esto es un error fatal:

 Finalmente aquí apreciamos un programa que sirve para determinar el valor más grande, haciendo uso de BIFURCANEGATIVO, solo basta analizar un poco las funciones y los 4 digitos para entenderlo:




Eso es todo amigos :D si quieren hacer uso de esta simple pero poderosa herramienta (que de hecho no sirve para mucho XDD ) les dejo el link:


Saludos nuevamente Gatonautas!!!!!


sábado, 27 de octubre de 2012

Proyecto Marisa B

Bueno, para no dejar el blogcjk me pongo a hablar del Proyecto Marisa B... Sean bienvenidos una vez mas al Blog Gatomaker! 


Con esa cara de estrés que solo nuestro presentador puede describir...
WELCOME con cara de que no le pagan ni una triste moneda por trabajar en nuestro triste y melancolico, desolado y frio GRUPO DE DESARROLLO! =3


*trata de sonreir pero le sale una cara tetrica*



Viste la cara de crotazo que tiene uno cuando se levanta con resaca alevosa? Con esas ganas de vivir? esas hermosisisismas ganas de pegarse un chumbazo en la sien porque te da vuelta todo el brebaje mistico de la noche anterior compuesto de vodka, tequila, fernet, alquitran, agua del inodoro y enjuague bucal .


Pero en definitiva, no venia a hablar de la resaca que nos pegamos con nuestro equipo, sino de que no tenemos equipo! =D osea que yo me halzé un pedo solo... ni te imaginas, veía dragones! me subí a uno y no sabes... bolu.. me fui hasta Narnia, que flipás!


 - bueno en fin, después de que nuestra programadora estrella se decepcionara de su proyecto numero 1, o mejor llamado como Proyecto Marisa A (que antes era 1, porque sino no habria B y no podría ser A, LOL)
 bue... la cosa es que hubo un error de programacion en cuanto a las "Tiendas" o Negocios... despues de un tiempo de trabajar con el editable, los vendedores se volvieron GARCAS! D:
tomaron vida propia y comenzaron a estafar a la gente.... (;__;


Pero eso es mentira n__n todos saben eso... solo que como el proyecto no estaba documentado... se desbordo hacia la conciencia del uno infinito y WWWSHHHPPPBWWW DDDDAAAaaaaa murio el proyecto U__U una perdida lamentable....

 SIN EMBARGO! comenzamos un buen y documentado proyecto... con la nomenclatura oficial como proyecto: Proyecto_Marisa_2 o conocido como el Proyecto marisa B con B de Baca, Bacalao(?

Y que hay de Olimpo? ese es el segundo proyecto al mando despues de este... porque solo es documentacion fisica en papel de diario....
 y este ya tiene masomenos formita, es mas churo y etecé, etecé

Esa imagen, es la cinematica... como ven Marisa está enojada porque cancelamos su primer proyecto... asi que se nos empacó TT__TT

 Bueno, ya es tiempo de cerrar esta edicion...
 Luego de que Silver Light se mudara a Twitter y que vuelvamos a usar el MSN como medio de comunicacion portable sin lag , pero con Ping, yo decidí igualmente volver a usar mi emesene, porque ni la clave me acordaba,.... propusimos de cambiar a Marisa com o protagonista y hacer, de forma secreta un remplazo... pero sssshhh, no debe escucharlos D:

Finalmente Alice, nuestra ayudante gotica murio por desangramiento y contratamos a Brisa! la nueva ayudante del blog porque somos too hardcore(?

Y nada, Saludos a todos los que se gastan en leer esto ^___^ saludos desde el Nether :D
Cambio y fuera Gatonautas

sábado, 6 de octubre de 2012

Olimpo - Entrada desarrollo 1



Hoooooooooooooola pedazos de subnormales lectores del inframundo!!! 
como carajo estan?! coño... tanto tiempo(?


Hace milenios que no hago una entrada, porque no tengo patrocinio sustentable ._.)
 y eso qué? :D
 nosotros hacemos las cosas porque se nos dá la regalada gana y porque mi mami me paga el internet e_e
- Hoy, estamos siendo patrocinados por nuestra querida amiga llegada desde el averno eterno, llena de oscuridad y sombras que reinan su miserable vida... así es , hablamos de nuestra camarada Alice, que nos acompaña deseándonos una fractura de craneo:

Ella es quien nos mantiene el blog por medio de sacrficios rituales(?

Bueno, en fin... esta entrada, llena de maldad y arcoiris es para presentar el nuevo proyecto de medio tiempo que se desarrolla en nuestros estudios.
- Vosotros os preguntareis que carajo pasó con PINKI DACH, pues... resulta que el proyecto colapsó luego de que una horda de gatos zombis atacaran mi PC atravez de las redes de computadoras y el proyecto se prendiese fuego e irremediablemente terminara siendo un lindo árbol n_n

El proyecto actual de medio/largo tiempo que vamos a desarrollar en nuestros estudios es OLIMPO, el nombre mas berreta nunca jamas colocado a un videojuego Indie trastornador de mentes.
 Promete ser un shooter lateral para PC, obvio, hecho con el Game Maker. Estos últimos dias estuvimos desarrollando lo que sería el DDMP: Documento de Diseño de Mediano Presupuesto... iba a ser escrito en un rollo de papel higienico pero conseguimos hojas de maquina =D

Dicen que una imagen dice mas que mil palabras:
Esto, aunque no lo crean es un documento de diseño hecho en casa con ODIO >:-c
esto sería algo asi como que la documentacion fisica del juego

Luego un plano mas cercano de los jugadores (van a ser 2):

Acá se ven los atributos de cada uno, hechos a lo cualquier cosa... distribuida para el duraznete.

Y acá la ubicacion del personaje, y el HUD en toda la pantalla:
 
Que personalmente no se para que carajo le saqué una foto si no se vé un pomo...
igual! Alice nos presupuesta el blockj


Y bueno... un poco de lo que sería el trabajo arduo del Grafista que tenemos en nuestros estudios amarrado a la silla dandole de comer por suero, ya que el tiempo es oro y no vamos a dejar de asotarlo hasta que por mitosis genere un lingote de oro solido :

Primeramente el diseño del plasher 1, y las animaciones de las alas:




Segundamente, hacer los bosquejos (del verbo Bosque) en computadora (del verbo compiuteshon): 
Y eso es todo el documento de diseño, y no vale la pena leer nada porque no se ve un carajo en las fotos :D
 Seguramente Pinkie Dash no se cancele, sino que lo termine (inclusive) en periodo de vacaciones, porque hay que darle seguimiento a la 39DLL sino se va todo al recontra carajo explota y morimos todos.
 Como saben, en nuestros estudios KarmatiK nos gusta trabajar cuando se nos canta, y por supuesto los 30 de Febrero y los 32 de cada mes ^_^

 Saludos Gatonautas pecadores blasfemos! nos vemos en otra entrada


martes, 31 de julio de 2012

Pinkie Dash_39DLL

Pos, hola... acá GatoMaker en su triste blog, para documentar lo que ahora será el nuevo proyecto con la 39DLL, lo que sucedió con Castillos Online es historia antigua, lo mandé a freir churros por el simple hecho de que hacía las cosas por hacerla sin entender, y si funcionaba, mejor...; Pero ahora que sé como funciona exactamente(por decir) la 39DLL puedo mantener el rastro de lo que voy haciendo.

 Este proyecto comenzó un dia Sábado 28 de Julio de 2012... Gatomaker, bitácora:

Esto comenzó porque ví un cooperativo de un juego Online, donde los jugadores eran Gatos en un escenario plataformero. Tenía el Sprite de Rainbow Dash así que decidí usarlo.

Acá... logré enviar datos perfectamente, aunque ya estaba todo conectado.

Encontrar el Sprite de Pinkie, como está fué... tristísimo xD
Sin mencionar la editada que le tuve que hacer para que camine ._.)
Así descarté los recolores que quedaban feísimos

Aquí, un intento de Chat... que nunca se llegó a concretar por la vagancia existencial que tengo siempre encima... y porque no tenía ni las ganas de programar con arrays x3
De todas formas no creo que implemente el Chat... no lo sé


En esta ya están agregados los preparativos para el tipo de juego "El Mayor Tesoro" que consiste en obtener el mayor puntaje al terminar el tiempo (Cosa que no está)

Acá porbando el juego con un amigo mio... Matias :D Funciona perfectamente con Hamachi
Un Saludo desde acá y agradecimientos =3

Acá hago prueba de Ping, no se sabe si funciona a ciencia cierta.
Sin embargo las pruebas de sincronizacion, indicando con "ESPERANDO" y "CARGANDO" si es que el cliente aún está haciendo modificaciones.


Eso es tooodo lo que se vino haciendo desde el 28/7 hasta hoy 31/7
 Personalmente no espero terminar este proyecto en un haz! como Astrid One, porque es un campo que no domino enteramente y pues... la FACULTAAAAAAAAAAD POMPOMPOM! D:

Saludos Gatonautas! :3


lunes, 30 de julio de 2012

Ahora a los dibujos!

HOOOOOOOLAAAAAAAA SUBNORMAAALEEES(?
re q se sacaba(?)
 En fin... creando esta nueva entrada para hacer oficial la afiliacion propia para dibujos y comis :yaoming:
porque si yo no produzco contenido nadie lo hace :D
 - Ha excepcion de los aliens que se prestan mucho a hacer aportes abductorios... pero no quiero que me reporten por robarme vacas D:

En fin... para celebrar esta nueva seccion del blog, voy a armar una partusa con juegos de azar y mujersuelas :D
 na mentira, acá hacemos todo de la forma más crota y aburrida posible para que se peguen el embole de su vida... , por eso:

 INTRO_B de lo que será una de las historias más retorcidas y alocadas (mentira) sobre la estancia de GatoMC en el internet:

particularidad, la Intro_A, era demasiado emo, así que decidí ponerle más onda, sino despues dirían que soy un amargado pechofrio hincha del Taladro

bueno... eso fué un introductorio, algo así como un Spoiler de bajo presupuesto... porque acá el dinero como que no sobra :'(

Saludos gatonautas! y hasta otra entrada crota de bajo presupuesto :3

lunes, 16 de julio de 2012

Astrid One (entrada rápida)


Hola a todos ustedes, Gatonautas!!!

Nuevamente aquí su amigo Gatomaker (re que no)...
 Para presentarles lo último en tecnología videojueguíl(?), na mentira, porque no sirve para desarrollar nada U__U solo estimula los reflejos  ^_^
 Y si... si estaban pensando en tostadas y dulce de arándanos acertaron!!!!! porque es un juego para PC !!!

Lo nuevo de lo nuevo en cuanto a juegos shooter Verticales Arcade... Astrid One!:
 Un shooter vertical donde personificas a Astrid una chica piloto de Naves espaciales, que debe salvar a Saturnia de la invasion Droide.




Descargar V1.2

El juego totalmente producido por quien les habla y escribe n_n
 tema Musica,Graficos, Programacion y estupideces varias. Por eso de tan bajo presupuesto XD

En fin... el juego debería tener un correcto funcionamiento durante toda su vida útil (Garantía de 1 semana)
 Cualquier consulta, sugerencia y/o queja, podeis hacerlo al mail habilitado: gatitudo@gmail.com


Edit: (16/07/12) [18:56] Version nueva: 1.1
 Bugs corregido: El Hi-Score se guarda únicamente cuando el juego es cerrado. En esta nueva version se guarda (si es mayor) cada que finaliza la partida (No el juego).



Edit: (16/07/12) [19:12] Version nueva: 1.2
 El Hi-Score se guardaba con el valor del Score sin importar que sea mayor o no.

.
Saludos Gatonautas! Nos vemos en otra entrada larga n_n

viernes, 6 de julio de 2012

La Búsqueda interminable (Historia) V1(borrador)

Todo juego (a menos que sea un Arcade), teóricamente, tiene una historia.
 Entonces, saco a modo de borrador la historia del juego "La búsqueda interminable" que cuenta, relata y desarrolla así:
 Thomas, es un gato (persona, protagonista, ente) que cansado de su común vida, decide hacer algo con ella. Es un gato que ha vivido una triste vida de fracasos. En busca de ser una estrella protagonista o hacer un hito en su vida, decide largarse por una leyenda antigua... sin importar qué... puesto que está harto de que  sus cercanos le digan que no vale nada. Tanto así que piensa que perder la vida por algo que no existe, está bien.
 Thomas parte en busca de uno de los tesoros más valiosos, según dicta la leyenda: "Dentro de la pirámide antigua al sur de nuestro poblado existe, dentro, un tesoro valioso que una vez obtenido es difícil perder que vale más que millones de pulidos diamantes en cualquier mercado."
 Nuestro protagonista llevará su voluntad hacia allí solo para obtener aquel tesoro tan deseado, con la esperanza de obtener todo su valor para él solo.
Y eso es todo :D
 nada fuera de lo común xD
Saludos

martes, 3 de julio de 2012

La busqueda interminable (Alpha 0.01)

Hooooola a todos los Gatomakeros que visitan el blog, y para los que no les gusta es nombre. Pues... estimados visitantes.
 Hoy con nuevas, sobre este proyecto que se está gestando de a poco, ahora en solitario, antes en un duo, pero por razones varias me quedé a cargo de todo el proyecto. Que mas que llamarlo proyecto yo le diría pasatiempo ^_^
 porque sino sería como que laburo para otros y la idea es que no sea así, porque sería como auto obligarse a publicar avances y de hecho... no ganás nada puesto que a muchos no les interesa lo que respecta a programacion casera o el hecho de hacer un juego (Lo digo por experiencia y no es por ofender a nadie). Es un proyecto libre de cancelarse en cualquier momento (como hice con varios) porque no es obligatorio y no tiene fines comerciales.

Descargar Alpha 0.01

La descarga, aqui, arriba (abajo de la imágen) para quienes quieran probarlo y/o aportar algo al proyecto pueden enviar criticas,sugerencias o un mensaje, puede hacerlo a esta direccion: gatitudo@gmail.com
Saludos a todos!  Gatomaker! :3