Mostrando las entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Programación. Mostrar todas las entradas

miércoles, septiembre 13, 2006

Día 256, día del programador =P

Leyendo en Cofradía digital me encontre con que hoy es día del programador xD: http://es.wikipedia.org/wiki/Dia_del_Programador

Así que ps, felicidades a todos los programadores :D y de paso les dejo un pequeño programa usando POO ( que realmente no hace mucho xDDDDD)..

stringclass.h

//Evita la inclusion multiple del archivo de encabezado


#ifndef STRINGCLASS_H
#define STRINGCLASS_H

class Cadena{
protected:

char *texto;
unsigned int tamano;

public:

Cadena();
Cadena(int _tamano);
Cadena(char *_texto);
~Cadena();

char *Asignar(char *_texto);

char * operator = (char *_texto);
char * operator +=(char *_texto);

char *Texto();

void imprimir();

unsigned int tam();
};

#endif

stringclass.cpp


#include<stdio.h>
#include<stdlib.h>

#include "stringclass.h"

Cadena::Cadena(){
texto = NULL;
tamano = 0;
}

char *Cadena::Asignar(char *_texto){
tamano=0;
int j;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto=(char *)realloc(texto,tamano+1);
for (j=0; j<tamano ;j++)
texto[j]=_texto[j];
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;

}

Cadena::Cadena(int _tamano){
tamano=_tamano;
texto = (char *)malloc(tamano+1);
}

Cadena::Cadena ( char *_texto){
int j=0;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto = (char*)malloc(tamano);
for ( j=0; j<tamano; j++){
texto[j]=_texto[j];
}
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;

}
}

char *Cadena::Texto(){
if(texto)
return texto;
return "";
}

unsigned int Cadena::tam(){
return tamano;
}

void Cadena::imprimir(){
printf("El texto es: %s\n",texto);
}

Cadena::~Cadena(){
if(texto)
free(texto);
}

char *Cadena::operator =(char *_texto){
int j;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto=(char *)realloc(texto,tamano+1);
for ( j=0 ; j<tamano; j++)
texto[j]=_texto[j];
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;

}

char *Cadena::operator += (char *_texto){
int tam=0;
int j;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
while (texto[tam]!=0)
tam++;
if ( (tamano) && (tam)){
texto=(char *)realloc(texto,tam+tamano+1);
for ( j=0; _texto[j]!='\0' ;j++)
texto[tam+j]=_texto[j];
texto[tam+j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;
}


stringmain.cpp


#include<stdio.h>
#include<stdlib.h>

#include "stringclass.h"

int main(){
system("clear");

//Crea objetos

Cadena str1;
Cadena str2(10);
Cadena str4;

//Asigna valores

str2.Asignar("Jorge");
str1.Asignar("Hola como estas?");
str4 = "Buenos dias";
str4 += " Hola";

// Imprime valores

str2.imprimir();
str1.imprimir();
str4.imprimir();

//Usando método tam de la clase Cadena

printf("El tamanio de srtr2 es %d \n",str2.tam());

//Usando método Texto de la clase Cadena

printf("El texto de srtr2 es %c ",str2.Texto());

getchar();

return 0;

}

Para compilar: g++ stringclass.cpp stringmain.cpp -o stringclass

Yo por el momento ya empezaron las clases después de un rato de estar en paro xD, lo único relevante es la matería de estructura de datos, en la cuál, nos va a costar un poco ya que manejaremos java (si java, que casí ni nos enseñaron). Además nos traen dando vueltas por lo referente a lo horarios ><", espero cuando menos no salir más allá de las 14:00 Hrs.. ><""

t.|A|. xD

Saludos!!

jueves, agosto 24, 2006

[Script PHP] Converter BBCODE/HTML

Hace un par de días me canse XD de estar editando los pequeños howtos, que aconstumbro escribirlos con todo y etiquetas BBCODE para los foros xD..

Así que me di la tarea de escribir un script que me ayudara o cuando menos minimizara esta tarea un poco. Y aquí esta (tiene detallitos, pero ya menciones cuál era mi objetivo =):



<html>
<head><title>Convert HTML/BBCODE</title></head>
<body>
<?php
if (!empty($HTTP_POST_FILES["archivo"]["tmp_name"]) && !empty($_POST['opc']) ){
if ( $HTTP_POST_FILES['archivo']['size'] <= 100000){
$archivo_name=$HTTP_POST_FILES['archivo']['name'];
$dirTmp=$HTTP_POST_FILES['archivo']['tmp_name'];
$extensiones = explode(".",$archivo_name);
$e = count($extensiones)-1;
if($extensiones[$e] == "txt"){
$opc=$_POST['opc'];
$etiquetas = array
("html" => array( "<span style='font-weight:bold;'>","</span>","<pre><nowiki>",
"</pre></nowiki>","<span style='font-style:italic;'>","</span>",
"<span style='font-size:18px;'>","</span>","<a href=","</a>",
"<img src="," />","<blockquote>","</blockquote>",
"<span style='font-size:16px;'>","</span>"),
"bbcode" => array("[b]","[/b]","[code]","[/code]","[i]","[/i]","[size=18]","[/size]",
"[URL=","[/URL]","[IMG]","[/IMG]","[quote]","[/quote]","[size=16]","[/size]"));
$open=fopen($dirTmp,"r");
$text=fread($open,filesize($dirTmp));
$texto=$text;
for( $x=0; $x<=count($etiquetas["html"]); $x++){
if ($opc == 2)
$text=str_ireplace($etiquetas["bbcode"][$x],$etiquetas["html"][$x],$text);
if ($opc == 1)
$text=str_ireplace($etiquetas["html"][$x],$etiquetas["bbcode"][$x],$text);
}

fclose($open);
?>
<form>
<a href="<?php $PHP_SELF ?>">Regresar</a>
<br><b>Texto Original</b><br>
<textarea name=texto rows=21 cols=100><?php echo $texto ?></textarea>
<br><br>
<b>Texto Modificado</b><br>
<textarea name=texto rows=21 cols=100><?php echo $text ?></textarea>
</form>
<?php
}else{
echo "Sólo se permiten archivos con extensión .txt" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
echo "El archivo debe ser menor de 100 Kb" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
?>
<FORM METHOD="POST" ACTION="<?php $PHP_SELF ?>" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="archivo">
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar">
<br><br><b>Convertir a:</b>
BBCODE: <input type="radio" name="opc" value="1">
HTML: <input type="radio" name="opc" value="2">
<br><br><b>Asegurate que eligas la ruta del archivo y la opción correcta</b>
</FORM>
<?
}
?>
</body>
</html>
Para poder probarlo localmente (que es como lo utilizo) hay que modificar la configuración de PHP en el archivo php.ini de la siguiente manera y agregar los permisos correspondientes. Todo esto para poder subir archivos a un servidor:

Archivo: /etc/php/apache2-php5/php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /tmp

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Asignando permisos al directorio temporal para subir achivos:

##Permisos a /tmp para el usuario y grupo apache

# chown apache:apache /tmp

Saludos!!

viernes, abril 07, 2006

Manejando BD en PHP

Buenas..

Después de tanto tiempo xD espero sigan mirando este pequeño espacio XD

Ahora cómo ya sabemos configurar APACHE + PHP y MYSQL Mirar aqui vamos a ver lo básico para utilizar base de datos con instrucciones sql ( Mysql) mediante php ;)..

Para utiliza php en páginas html necesitamos incluir todo el código que ocupemos dentro de esta estructura..


<?php

Código...........

?>


Antes que nada es necesario crear una base de datos con alguna tabla y sus respectivos valores, para esto podemos hacerlo mediante mysqladmin ó mediante un shell. En la shell vamos hacer lo siguiente:



create database prueba;

use prueba;

create table abecedario
(
A int not null
B varchar (2),not null
C int not null
);


Para hacer conexiones a nuestra base de datos utilizaremos la siguiente sintaxis:


##Conceta a la BD y la variable connect recibe true o false si se logra la conexión
$connect=mysql_connect("localhost","usuario","password");

## Verifíca si la variable connecta seá falsa, si es cierto, envia mensaje
## diciendo "Desconectado"
if ( !$connect )
echo "Desconectado";

## Selecciona la base de datos pasando la conexión antes realizada..
mysql_select_db("nombre_de_la_base_de_datos",$connect);


Ahora para poder hacer cualquier tipo de operación ( altas,bajas,consultas,etc) es necesario hacerlo de la siguiente manera:


mysql_query("operación a realizar;",$connect);


Donde, operación a realizar puede tomar algunas de las siguientes acciones:


## Inserta valores en la tabla "abecedario" en los campos A,B y C con los valores
## correspondientes en este caso 1,2 y 3
mysql_query("select into abecedario(A,B,C) values ('1','2','3');",$connect);

## Da de baja el valor de 1 en el campo y/o columna "B" de la tabla "abecedario"
mysql_query("delete from abecedario where B='1'",$connect);

## Busca el valor de 1 en el campo y/o columna "B" de la tabla "abecedario"
mysql_query("select * from abecedario where B='1'",$connect);

## Primero busca el campo A con valor de 1 y reemplaza los valores A y B de esa misma
## linea. Nota: sólo basta buscar un valor del campo para poder reemplaza valores
## de esa misma linea.
mysql_query("update abecedario set A='5',B='5' where A='1'",$connect);

##Envia los valores de una consulta realizada anteriormente..
mysql_fetch_row($consulta)


Bien para el manejo de instrucciones sql mediante php podemos utilizar tanto variables, cómo sus estructuras de control ó arreglos..

Un ejemplo para que se pueda ver el manejo:


<?php
$opc=$_POST['opc'];
$usr=$_POST["user"];
$pass=$_POST["password"];
$connect=mysql_connect("localhost","$usr","$pass");
if ( !$connect )
echo "Desconectado";
mysql_select_db("abecedario",$connect);

switch ( $opc )
{

case 0:{
//Operación subir
$a=$_POST["v1"];
$b=$_POST["v2"];
$c=$_POST["v3"];
mysql_select_db("abecedario",$connect);
echo "<center><br><br><b style='color:red'>Registrado</center><br><br>";
$result=mysql_query("insert into repositorio(A,B,C) values('$a','$b','$c');",$connect);
mysql_close($connect);
}break;


Lo que haces es conectar, verificar si la variable opción tiene valor de 0 mediante switch y si es asi entra para agregar los datos que contienes las varuables a b y c en la tabla abecedarios en las columnas correspondiente..

Es una pequeña introducción..

Saludos!!

sábado, febrero 11, 2006

I C++ (Introdución, Conceptos y Primeros Códigos)

Introducción a C++

C++ es originalmente creado por Bjarne Stroustrup dentro de los laboratorias Bell (AT&T) a principios de la decada de los 80's, como bien se sabe c++ evolucionó a partir del lenguaje C (programación estructurada) y simula 67.
C++ es un lenguaje de alto nivel orientado a objetos, lo que sinifica, que tenemos la capacidad de crear programas "modulares" y claramente con código reutilizable (una ventaja enorme en cuanto a c). Esto permite programar mejor, con mayor rapidez y corregir errores fácilmente.

Conceptos básicos de la POO (Programación orientada a objetos)

Objeto: Vivimos en un mundo de objetos, cualquier sustantivo puede ser tomado como tal (automóvil, avión, edificio, celular, mesa, silla etc).

Clases: Es la descripción de un objeto (características y funcionalidad).

Variables / Propiedades miembros: Es un almacén de datos relacionados con los objetos, estan suelen ser públicas o privadas.

Funciones miembro: Es la funcionalidad que se le dan a los objetos, similar a las funciones en la programación estructurada o a los métodos en java =).

Herencia: Permite crear clases (subclases) a partir de otras clases (clase base). Una subclase hereda código y datos de la clase base, no obstante, una subclase puede contener su código y datos particulares.

Instancia: Es un objeto creado a partir de un clase deifínida por el usuario.



Conceptos básicos de programación.

Lenguaje de programación: Son una serie de instrucciones que a groso modo indican lo que realizará la computadora para un fin determinado, estos lenguajes de programación son parecidos al lenguaje común del ser humano (en la mayoria de los casos al Ingles).

Secciones lógicas de una computadora.

Unidad de entrada: Es donde se recibe toda la información/datos que almancena/utiliza una computadora para realizar ciertas instrucciones especificas (Dispositivos de entrada: teclado, mouse/raton, Red, Internet, Microfono, etc.).

Unidad de salida: Es la sección donde se deposita toda la información ya procesada por la computadora para que este disponible. (Dispositivos de salida: Monitor, Impresora, Bocinas, etc).

Unidad de memoria: Es la parte donde se almacena información temporal para que este disponible durante la ejecución de procesos y es donde los dispositivos de salida obtienen lo que se mostrará una vez realizada una petición por los dispositivos de salida.

Unidad aritmética y lógica (ALU): Es la que se encarga de realizar las operaciones y decisiones al momento de procesar información ( operaciones aritméticas, operaciones lógicas).

Unidad central de procesamiento (CPU): Es la que administra todo el relajo al momento de manipular datos, la que inidica cuando se escribe en memoria, cuando se envia información a los dispositivos de salida, etc.
Este término es mal usado por muchos al referirse al gabinete de una computadora, asi que ya saben :D (no vuelvan a decir: Pasame el CPU!! XD).

Unidad secundaria de almacenamiento: Es donde se guarda información a largo plazo la cual puede ser utilizada cuando se requiera (discos).

Lenguaje maquina: Es el lenguaje o idioma natural que entiende un computadora, que básicamente son arreglos de puros 0 y 1. Este tipo de lenguaje es muy poco entendible y complicado para realizar programas.

Lenguaje esamblador: Este lenguaje sustituye al lenguaje maquina por una variante que es la sintaxis ( parecido al ingles), el cual se pueden realizar las operaciones básicas de una computadora. No es tan complicado de entender pero requiere de de mucho código.

Lenguaje de alto nivel: Es el utilizado hoy en día para realización de programas para una computadora. Estos lenguajes tiene una sintaxis mucho más sencilla que un lenguaje esamblador y que además proprociona ser más eficiente al programar.

Compilador: Es el encargado de convertir las instrucciones de un lenguaje de alto nivel (código fuente) a lenguaje maquina para que puede ser entendible para una computara. Esto a su vez crea un ejecutable el cual se encargará de realizar las operaciones que indicamos al momento de programar.

Interprete: Ejecuta un programa de alto nivel sin tener que compilarlo.

Ambiente de programación en C++

Los programas escritos en C++ y el código fuente de este se almacenan en archivos con extensión .cc .cxx .cpp ó .C.
Un programa en c++ pasa por 6 fases para su ejecución, que se describen a continuación:

Edición: Es la fase donde se escribe el código fuente del programa mediante un editor. En linux hay varios como vim, vi, gvim, anjuta IDE xD, etc ( Ya estaré escribiendo algo sobre esto ;).

Preproceso: Esta fase se realiza antes de compilar el programa y la cual usa directivas de un programa llamado preprocesador el cual es invocado por el compilar antes de convertir a código objeto nuestro programa.

Compilación: Se crea el código objeto y se almacena en disco.

Enlace: Se enlaza nuestro código objeto con las librerias estandar de c++ o las creadas por nosotros para crear una imagen ejecutable.

Carga: El programa se almacena en memoria para su ejecución, sencillo no?

Ejecución: Se ejecuta el programa mediante la administración de la CPU.

Escribiendo código en C++

Después de un poco de teoria y espero haberlo hecho bien XD, empezamos con la acción, PERO antes debemos saber algunas cosas más al momento de programar.

Las variables son usadas en cualquier lenguaje de programación y no es más que un espacio de memorial reservado para algunos tipos de datos que utilizaremos durante la ejecución de un programa.

1. Enteros
1. int
2. long int
3. long long
4. short
5. char
2. Flotantes
1. float (IEEE754 Simple)
2. double (IEEE754 Normal)
3. long double (IEEE754 Extendido)


Los operadores aritméticos son especialmente para realizar operaciones/cálculos aritméticas(os) xD

Operador Operación

+ Suma

- Resta

* Multiplicación

/ División

% Residuo o Módulo

Existe una precedencia al momento de evaluar una expresión aritmética

Orden de operaciones:

1.- Paréntesis

2.- Potencias y raíces

3.- Multiplicaciones y divisiones

4.- Sumas y restas

5.- Dos o más de la misma jerarquía u orden entonces resolver de izquierda a derecha


Los operadores relacionales con para evaluar ó comparar expresiones.

<> Mayor que
<= Menor o igual que >= Mayor o igual que
== Igual que (identidad)
!= Desigual que (desigualdad)

El flujo estándar de entrada se hace mediante la instrucción cin (c-in) y por lo regularmente obtenemos los datos necesarios mediante el teclado.

El flujo estándar de salida se manda a pantalla mediante la instrucción cout.

El flujo estándar de errores se usa mediante la expresión cerr y se manda al monitor junto con cout regularmente.

Secuencias de escape.




Secuencia Valor Símbolo Que hace

\a 0x07 BEL Sonido audible (bell)

\b 0x08 BS Retroceso (backspace)

\f 0x0C FF Salto de formato (formfeed)

\n 0x0A LF Saltar una línea (linefeed)

\r 0x0D CR Retorno de carro (carriage return)

\t 0x09 HT Tabulación horizontal (H Tab)

\v 0x0B VT Tabulación vertical (V Tab)

\\ 0x5c \ Barra invertida (backslash) [2]

\' 0x27 ' Apóstrofo (comilla simple)

\" 0x22 " Doble comilla

\? 0x3F ? Interrogación

\O cualquiera cualquiera O = cadena de hasta tres dígitos octales

\xH cualquiera cualquiera H = cadena de dígitos hexadecimales

\XH cualquiera cualquiera H = cadena de dígitos hexadecimales



Los comentarios son usados para expresar una opinión o algún comunicado a la persona que mire el código de nuestro programa.
En c++ se pueden escribir de la siguiente manera:

// Esto es comentario de una linea

/* Esto es
un comentario de
muchas lineas
XD
BU!*/


Pues empezemos con un programa sencillo:


// Esta es una liberia estandar de C++, se tiene que declarar para usar el
//flujo de entrada, salida y de errores.
//Esta linea es usada por el preprocesador de C++.
1 #include<>
2 int main(){
3 std::cout <<"Hola, \n Que tal? \n Nos vemos!"; 4 return 0; 5 }


Que es lo que hace?
En la linea 2 se declara la función principal del programa, la cual siempre se debe escribir y decimos que devuelve un valor de tipo entero (ya veremos esto a fondo). Sabemos que es una función por la forma de declarar los parentesis a la derecha despues del nombre.
La llave izquierda ({) señala que ahi empieza una bloque de instrucciones que son parte de la función main.

La linea 3 se manda a imprimir en pantalla mediante la instrucción std::cout y el operador de insercción de flujo (<<) el siguiente mensaje, por cierto, cada instrucción termina con punto y coma (;): Hola, Que tal? Nos vemos! En la linea 4 indicamos que regresamos un valor nulo (nada). La linea 5 simplemente con la llave derecha (}) se da por concluido el bloque de instrucciones de la función main y por lo tanto el termino del programa. Nota: Siempre que se abrá un bloque de instrucciones se debe cerrar, si al momento de compilar nos mandará un mensaje de error y no podrá crearse la imagen ejecutable del programa. El programa anterior se puede escribir con algunas variantes y con el mismo resutado:

// Esta es una liberia estandar de C++, se tiene que declarar para usar el
//flujo de entrada, salida y de errores.
//Esta linea es usada por el preprocesador de C++.
1 #include<>
2 int main(){
3 std::cout <<"Hola, \n"; 4 std::cout <<"Que tal? \n"; 5 std::cout <<"Nos vemos! \n"; 6 return 0;



// Esta es una liberia estandar de C++, se tiene que declarar para usar el
//flujo de entrada, salida y de errores.
//Esta linea es usada por el preprocesador de C++.
1 #include<>
2 int main(){
3 std::cout <<"Hola, \n" 4 <<"Que tal? \n" 5 <<"Nos vemos! \n"; 6 return 0;


Entre algunas formas mas pero bueno ahi prueben que es la unica manera de aprender (practicando).

Ahora algo un poco mas complejo, algunas operaciones mediante el uso de los operadores aritméticos.


#include<>
int main()
{
using std::cout;
using std::cin;
using std::cerr;
int num1, num2;

cout<<"Escribe el num1: "; cin>>num1;
cout<<"Escribe el num2: "; cin>>num2;
cout<<"La suma de los dos numero es: "<<>

Vaya hay cosas nuevas XD..

Using std:: Es para poder omitir el std:: cada vez que ocupemos cout, cin o cerr (esto es referente a los espacios de nombre que veremos después).

int num1, num2 Nada especial declaramos dos variables que solo guardaran datos enteros.

cin>> Lo mismo que cout, se usa para obtener datos mediante el operador de extracción de flujo (>>). En este caso pedimos el valor de la variable num1.

<<>

miércoles, febrero 01, 2006

Segundo codigo en php (juego del gato)

Buenas..

Pues lo prometido es deuda xD, aqui esta el juego del gato. Falta depurarlo aún mas y afinar detalles como por ejemplo poner una alerta en javascript si el lugar en el que se tiro ya esta ocupado entre otras circunstacias que pueden surgir xD. Pero de que funciona, funciona xD..

Cualquier comentario haganmelo saber. Sin mas que decir lo pongo aqui abajo..
Por cierto traté de acortarlo usando en un principio arreglos y funciones pero no pude hacer funcionar un arreglo declarado en otras funciones (que se a de poder pero no investigué mucho).

Una vez mas si lo quieren probar quitenle los espacios que puse entre las etiquetas html.
Ya despues estaremos explicando algo de prog. en php ;)



Archivo index.html


< html>
< head>
< title> Juego del gato
< /head>
< body>
< center>
< h1> Bienvenidos al juego del gato
< h5>Juega Jugador 1 con una 'X' (Favor escribir con Mayusculas)
< FORM action="gato.php" METHOD="GET">
< INPUT type="text" name="jd1" size=1 maxlength=1>
< INPUT type="text" name="jd2" size=1 maxlength=1>
< INPUT type="text" name="jd3" size=1 maxlength=1>
< br>
< INPUT type="text" name="jd4" size=1 maxlength=1>
< INPUT type="text" name="jd5" size=1 maxlength=1>
< INPUT type="text" name="jd6" size=1 maxlength=1>
< br>
< INPUT type="text" name="jd7" size=1 maxlength=1>
< INPUT type="text" name="jd8" size=1 maxlength=1>
< INPUT type="text" name="jd9" size=1 maxlength=1>
< br>
< INPUT type="hidden" name="jugador" value="1">
< INPUT type="hidden" name="contador" value="0">
< INPUT type="hidden" name="jugada" value="X">
< INPUT type="submit" value="Enviar Jugada">
< /FORM>
< /center>
< /body>
< /HTML>



Archivo gato.php

< html>
< head>
< title>Jugando al gato
< /head>
< body>
< center>
< h1> Juego del gato
$jd1=$_GET['jd1'];
$jd2=$_GET['jd2'];
$jd3=$_GET['jd3'];
$jd4=$_GET['jd4'];
$jd5=$_GET['jd5'];
$jd6=$_GET['jd6'];
$jd7=$_GET['jd7'];
$jd8=$_GET['jd8'];
$jd9=$_GET['jd9'];

$contador=$_GET['contador'];

$jugada=$_GET['jugada'];

$ganador=0;

//Checando Verticales


if ( $jd1 == $jugada && $jd2 == $jugada && $jd3 == $jugada )
{

$ganador=1;
}
if ( $jd4 == $jugada && $jd5 == $jugada && $jd6 == $jugada )
{
$ganador=1;
}
if ( $jd7 == $jugada && $jd8 == $jugada && $jd9 == $jugada )
{
$ganador=1;
}

//Checando Horizontales

if ( $jd1 == $jugada && $jd4 == $jugada && $jd7 == $jugada )
{
$ganador=1;
}
if ( $jd2 == $jugada && $jd5 == $jugada && $jd8 == $jugada )
{
$ganador=1;
}
if ( $jd3 == $jugada && $jd6 == $jugada && $jd9 == $jugada )
{
$ganador=1;
}

//Checando Diagonales

if ( $jd1 == $jugada && $jd5 == $jugada && $jd9 == $jugada )
{
$ganador=1;
}
if ( $jd3 == $jugada && $jd5 == $jugada && $jd7 == $jugada )
{
$ganador=1;
}

$jugador=$_GET['jugador'];


if ( $jugada=='X' || $jugada=='x')
{
$jugada='O';
}
else{
$jugada='X';
}

if ( $contador <= 8 && $ganador != 1 )
{
if ( $jugador==1)
{
$jugador=2;
}
else{
$jugador=1;
}
$contador++;
echo "< h5>Juega Jugador ",$jugador ," con una ",$jugada," (Favor escribir con Mayusculas)< /h5>";
echo "< FORM action=\"gato.php\" METHOD=\"GET\">";
echo "< INPUT type=\"text\" name=\"jd1\" size=1 maxlength=1 value=",$jd1,">";
echo "< INPUT type=\"text\" name=\"jd2\" size=1 maxlength=1 value=",$jd2,">";
echo "< INPUT type=\"text\" name=\"jd3\" size=1 maxlength=1 value=",$jd3,">";
echo "< br>";
echo "< INPUT type=\"text\" name=\"jd4\" size=1 maxlength=1 value=",$jd4,">";
echo "< INPUT type=\"text\" name=\"jd5\" size=1 maxlength=1 value=",$jd5,">";
echo "< INPUT type=\"text\" name=\"jd6\" size=1 maxlength=1 value=",$jd6,">";
echo "< br>";
echo "< INPUT type=\"text\" name=\"jd7\" size=1 maxlength=1 value=",$jd7,">";
echo "< INPUT type=\"text\" name=\"jd8\" size=1 maxlength=1 value=",$jd8,">";
echo "< INPUT type=\"text\" name=\"jd9\" size=1 maxlength=1 value=",$jd9,">";
echo "< br>";
echo "< INPUT type=\"hidden\" name=\"jugador\" value=",$jugador,">";
echo "< INPUT type=\"hidden\" name=\"contador\" value=",$contador,">";
echo "< INPUT type=\"hidden\" name=\"jugada\" value=",$jugada,">";
echo "< INPUT type=\"submit\" value=\"Enviar Jugada\">";
echo "< /FORM>";
}

if ( $contador < 8 && $ganador == 1 )
{
echo "< h2>Gano el Jugador ",$jugador ,"!!!";
echo "< FORM action=\"gato.php\" METHOD=\"GET\">";
echo "< INPUT type=\"text\" name=\"jd1\" size=1 maxlength=1 value=",$jd1,">";
echo "< INPUT type=\"text\" name=\"jd2\" size=1 maxlength=1 value=",$jd2,">";
echo "< INPUT type=\"text\" name=\"jd3\" size=1 maxlength=1 value=",$jd3,">";
echo "< br>";
echo "< INPUT type=\"text\" name=\"jd4\" size=1 maxlength=1 value=",$jd4,">";
echo "< INPUT type=\"text\" name=\"jd5\" size=1 maxlength=1 value=",$jd5,">";
echo "< INPUT type=\"text\" name=\"jd6\" size=1 maxlength=1 value=",$jd6,">";
echo "< br>";
echo "< INPUT type=\"text\" name=\"jd7\" size=1 maxlength=1 value=",$jd7,">";
echo "< INPUT type=\"text\" name=\"jd8\" size=1 maxlength=1 value=",$jd8,">";
echo "< INPUT type=\"text\" name=\"jd9\" size=1 maxlength=1 value=",$jd9,">";
echo "< br>";
echo "< INPUT type=\"hidden\" name=\"jugador\" value=",$jugador,">";
echo "< INPUT type=\"hidden\" name=\"contador\" value=",$contador,">";
echo "< INPUT type=\"hidden\" name=\"jugada\" value=",$jugada,">";
echo "< /FORM>";
}

if ( $contador == 9 && $ganador != 1 )
{
echo "< h2>Juego Terminado
EMPATE!! ";
}
?>
< /center>
< /body>
< /html>



sábado, enero 28, 2006

Mi primer codigo en PHP

Buenas..

Apenas empezé a programar en PHP, despues de tener el servidor DNS y apache ya era hora que comenzará la acción..
En fin les dejo el codigo que se trata de pedir de cuantos niveles quieren un triangulo y este dato será enviado por un formulario mediante GET..

Agregué espacios al codigo html por que si no el blog me los interpretaba como tal, lo digo en caso de que quieran probarlo..



Archivo *.html


< !----- Dibujando un triangulo ------>


< title>Dibujando un triangulo< /title>


< h1>Formulario< /h1>

< form action="dibuja.phtml" method = "get">
De cuantos niveles quiere el triangulo? :

< input name="nivel" type ="text">
< input value="Procesar codigo PHP =)" type="submit">
< /form>





Archivo *.php


< !----- Dibujando un triangulo - PHP ------>
< html>
< head>
< title>Dibujando un triangulo - PHP< /title>
< /head>
< body>
< h2>Dibujando triangulo< /h2>
$nv=$_GET['nivel'];
$dib='*';
$y1=1;
$ln=100;

for ($nv;$nv>0;$nv--)
{
for ($x=$ln;$x>0;$x--)
{
echo " ";
}
$ln=$ln-1;
for ($y=$y1;$y>0;$y--)
{
echo $dib;
}
$y1=$y1+2;
echo "
";
}
?>



El resultado es algo así:

Free Image Hosting at www.ImageShack.us

Si alguien tiene una recomendación en cuanto al codigo que lo comente para aprender =)


El siguiente paso es crear un codigo para jugar al gato xD. Espero enseñarles el codigo en cuanto lo tenga andando