martes, 28 de agosto de 2012

Proyecto Texas Holdem On-Line PHP FLEX y FLASH

En esta ocasión me encuentro algo estresado por el hecho de crear una aplicación dedicada al juego de Poker en su modalidad Holdem para la cual iré describiendo el procedimiento de realización, cabe mencionar que desconozco por completo las tecnologías Flex y Flash pero en su momento y con ayuda de dios Google iré aprendiendo y perfeccionando cada vez mis habilidades hasta alcanzar por completo el objetivo... para empezar me eh estado reventando unos video tutoriales muy interesantes para aprender Flas, Flex y AS3 tecnologías que según entiendo podría vincular con PHP que es lo que hasta el momento mejor conozco... coloco el vinculo de la lista de reproducción de estos magníficos videos con los cuales siento me eh ido instruyendo en este magnifico arte de la POO con AS3 para la creacion de los formularios y las animaciones que llevará la aplicación...CURSO DE ACTION SCRIPT 3.0 .

Por otra parte me preocupa bastante la lógica del negocio, osea el calculo de ponderaciones en combinaciones de juego y al no querer entrar tanto en desarrollar algo que me permita esto me dispongo a localizar algunas librerías que hagan el calculo por mi... navegando en la red me encuentro con varias que me pueden llevar a la solución, pero al parecer esta es la que utilizare en mi proyecto, Poker Texas Hold'em Evaluation, es interesante como los desarrolladores hoy en dia proporcionan ayuda en linea para de alguna manera realizar la "chamba" un poco menos pesada...

Conforme siga avanzando en mi proyecto seguiré posteando la forma en la que voy solucionando el problema para que posiblemente si en algún momento algún usuario en la WEB se topa con esta situación pues conozca un poquito acerca de la carga de estres que conlleva a la realización de un proyecto de esta magnitud y pueda de alguna manera aligerar su carga mental...



Buscando información reelevante para avanzar sustanciosamente en el proyecto...
.
.
.

A raíz de la investigación realizada se ha avanzado sustancialmente en el proyecto, ya que hasta el momento se lleva como avance el posicionamiento de las cinco cartas de la mesa en una mesa puesta en un archivo SWF creado precisamente con AS3 de Flash... se detalla a continuación parte del show realizado para alcanzar el avance...

Clase PHP Texas Holdem
Después de reflexionar todo el trabajo que se requería para calcular la repartición de cartas, calculo de jugadas y ponderación de las mismas se llego a la conclusión que se requería de un código sumamente elaborado para la lógica general del juego, y después de mucha lectura en diferentes fuentes de información vía WEB (foros, tutoriales, etc..) pude deducir que existía la posibilidad de que ya se hubiese programado con anterioridad una calculadora que pudiera hacer la parte lógica del negocio del juego, refiriéndome a la repartición de cartas, elaboración de jugadas y ponderaciones de las mismas y determinación de un ganador, así que me dedique a buscar ese código elaborado en PHP. Entre las paginas mas relevantes que nos comparten las clases para poder realizar dicho juego podemos encontrar...

Pokenum-php muy buena clase desarrollada para el calculo no solo del Texas holdem si no de una amplia gama de juegos de cartas, hecha en C.

Algunas herramientas adicionales que pudieran servir para el desarrollo del proyecto.

Poker Texas Holdem Evaluation la cual utilizare en el proyecto, elaborada integramente en PHP y cual realiza exactamente lo que se requiere para iniciar la lógica de este apasionante juego de cartas... a continuación un pantallazo de lo que hace la clase respectiva...




De que se trata?, pues bueno la clase calcula la jugada en forma aleatoria de las cartas que componen la partida en curso, teniendo en cuenta las 5 primeras cartas del lado izquierdo que son las que van en la mesa, seguidas de dos cartas por jugador, para el caso son 12 jugadores en la "mesa", pondera la jugada acumulada entre las cartas del jugador y las cartas de la mesa asignándoles un valor numérico y determinando resaltando en color rojo o en amarillo aquellas jugadas que sean posibles ganadoras dentro de la partida, las rojas son las mas poderosas seguidas de las amarillas, para el caso solo hay rojas y tienen un valor de 4.08 las que son corridas y 5.1310080703 la que es color de Diamantes, como funciona esto?, por que los números? 4.08, 4 equivale a la ponderación máxima de la jugada en este caso una corrida vale 4, el .08 equivale a la carta alta de la corrida observa al lado derecho Straight - Eights High, (pa los que no saben espanglish pues significa Corrida - Ocho alta), en el caso de la jugada ganadora, anunciada precisamente en la parte baja de la imagen corresponde 5, a la ponderación máxima de una jugada de Flush (osea color) mostrando el Kings- High como carta mas alta, y el resto de la numeración corresponde a las cartas que lo conforman, 1310080703, osea, 13- Rey, 10-Diez, 08-ocho, 07-siete, 03-tres todos de diamantes.

Bueno pues habiendo encontrado la librería, clase o como se le llame a esta maravilla ahora si necesito conocer un poco acerca de como mostrarlo en pantalla ya como un juego en forma de Poker Online, algo así como el juego de Zynga Poker es lo que se pretende crear con estas herramientas.


OOP con Flash???
Programación Orientada a Objetos con Flash??? pues si, al igual que algunos de uds. yo desconocía hasta el momento que se podía utilizar esta programación en Flash, pues es nada mas y nada menos que con el lenguaje AS3(Action Script 3) el cual mantiene un amplio uso en diversas aplicaciones sobre todo WEB y programación de videojuegos para dispositivos móviles, yo no se si el Flash o AS3 vaya dia con dia en decadencia, de lo que si estoy seguro es que es una poderosisima herramienta que nos permitirá alcanzar el objetivo del proyecto. Digo acerca de que va en decadencia debido a la información que se maneja en internet referente a este lenguaje de programación, hay quienes dicen que va en decadencia por que originalmente el Flash se desarrollo para diseñar animaciones o aplicaciones muy básicas que te permitían generar diversos y muy llamativos efectos de una forma muy simple y poco creativa, lo cual para un diseñador grafico resultaba una herramienta sumamente poderosa y de muy fácil manejo, a diferencia de un programador que al no dominar el arte del diseño todo era pensado en código de programación y no con una paleta de colores y variedad de lineas y figuras utilizables lo cual limitaba sus posibilidades, ahora con AS3 las posibilidades son enormes pero a la par de este lenguaje existen ahora otros del mismo tipo (OOP) que resultan mas accesibles, mas universales y mas demandados en las empresas y por los mismos usuarios y/o desarrolladores. Por lo pronto aqui les dejo el vinculo al canal de este señor OutKast creador de video tutoriales de AS3 muy interesantes y con los cuales yo me eh ido instruyendo y empapando poco a poco de esto que es AS3.

El próximo paso

Ahora bien, una vez encontrada las clases en PHP necesitaba saber si se podría utilizar la informacion generada de ese archivo, los datos de las ponderaciones, las jugadas, la jugada ganadora, etc... y me dispuse a buscar la respuesta y para esto le pregunté a San Google, patrono de los ignorantes y descubrí muchisima información de como pasar variables de un PHP a AS3, o de como pasar arreglos de PHP a AS3 o viceversa, de diversas maneras, ya que existen varias para cada caso... listo a continuacion algunas de las formas que se investigaron para hacer esto posible...

A traves de WEBORB
verifique la forma de trabajar a traves de Weborb, sin embargo resulta un poco complicado manejarlo de esta manera, hasta aqui ya me habia dado cuenta que por esta forma puedo pasar valores de PHP a AS3 a travez de objetos que puedo separar con si fueran arreglos con sus propiedades y sobre todo si los resultados de las variables a trapasar son a raiz de resultados de consultas hechas a MySQL, generando un evento en AS3 que lea el metodo en el PHP a travez de un RemoteObject y posteriormente ese metodo en PHP nos regrese a AS3 con los valores solicitados... por ejemplo...

alumno.nombre
alumno.apellido
alumno.grado

Simple paso de variables
Este simple paso de variables fue el que utilice al final generando un evento Load utilizando URLvariables en AS3 llamando el PHP que a su vez este imprime con un echo o un print y el AS3 se lo trae con un POST

A través de un XML (arreglo)
Generando un XML con el contenido de un arreglo en PHP y leyendolo directamente en AS3 como XML convirtiendolo a arreglo... PHP Array -> XML ->AS3 Array

O directamente aplicando un cuestionamiento en Foros del WEB, comunidad de internautas, desarrolladores y sobre todo personas dispuestas a compartir su conocimiento para hacer de esto lo mas sencillo posible, la cual fue de lo mejor ya que con esta solcion fue con la que me quedé...

Pregunta hecha en FOROS DEL WEB respecto a si se puede enviar info de un PHP a un AS3, pagina en la cual el apoyo fue en todo momento incondicional por parte del colega Gonzalo al que le agradezco la iluminación al momento....

Ahora bien me dispongo a colocar los elementos visuales que caracterizan a todo juego desarrollado en cualquier plataforma, al inicio de la lectura se hablaba acerca de emplear Flash como principal motor de este juego, y pues iniciamos...


Programación en Flash AS3
Mientras se examinaban las diversas alternativas disponibles para desarrollar entornos graficos pasamos por el JavaScript que al ser un lenguaje de programacion orientado a objetos y especialmente aplicado directamente sobre la mejora de interfaces WEB quedó en duda su potencial al tratar de implementar un proyecto de esta magnitud con ese lenguaje, resulta un poco complicado para lo que se quiere lograr aunque no por esto es un mal lenguaje de programación, y aunque el AS3 como mencionaba antes va en decadencia segun criticos y expertos en tecnologias, existe mayor información de soporte en linea, considero que para iniciar en este arte de la programacion es lo mejor...

.
.
.
Presento una vista previa de como va quedando el prototipo del juego...




Próximamente explicaré cómo eh alcanzado este avance...

jueves, 2 de agosto de 2012

Error Forbidden 403 WAMP


Como alguna vez esto me preocupo bastante, a continuación detallare la forma en la cual se puede corregir el error que no te permite conectar con tu servidor apache local...

Localiza en archivo httpd.conf en la carpeta C:\wamp\bin\apache\apache2.2.22\conf\ y encuentra las siguientes lineas...


    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1

 y cámbialas por


    Order Allow,Deny
    Allow from all


y listo... después reinicias los servicios y adelante...