Un poco de programación Geek

February 9th, 2010

Todo empezó un día que estaba menos ocupado que hoy… de la nada me clavé pensando en el juego del Gato, también llamado tres en raya o en inglés Tic Tac Toe…. y se me ocurrió hacer un programa que me diera las posibles jugadas para cualquier situación y así tal vez saber los mejores comienzos que me dieran mas posibilidades de ganar…

Hace días que quería postear algo a este blog olvidado por Dios, pero no fue hasta ayer mientras volvía a copiar a mi disco duro mi información respaldada (causa) fue cuando vi el script del gato y entonces decidí publicarlo aquí antes de que terminara oxidado dentro de un disco duro viejo…

El código del script nombrado:

#!/usr/bin/php
<?php
	mysql_connect("localhost","root","");
	mysql_select_db("tictactoe");
	set_time_limit(60000);
	// 1 - O wins
	// 2 - X wins
	// 3 - Tie
	$start = time();
	function search_winner($game) {
		$winner = array(array(1,4,7),array(2,5,8),array(3,6,9),array(1,2,3),array(4,5,6),array(7,8,9),array(1,5,9),array(3,5,7));
		foreach($winner as $comb) {
			if(strpos($game,"o".$comb[0]) !== false && strpos($game,"o".$comb[1]) !== false && strpos($game,"o".$comb[2]) !== false) { return "1"; }
			if(strpos($game,"x".$comb[0]) !== false && strpos($game,"x".$comb[1]) !== false && strpos($game,"x".$comb[2]) !== false) { return "2"; }
		}
		return false;
	}
	function play($player,$game,$free) {
		$free2 = $free;
		$num = count($free);
		if(count($free)<1) { echo "$game\n"; mysql_query("insert into gato values(NULL,'$game',3)"); }
		$winner = search_winner($game);
		if($winner) { echo "$game Winner: $winner.\n"; $num = 0; mysql_query("insert into gato values(NULL,'$game',$winner)"); }
		for($i=0;$i<$num;$i++) {
			$temp = array_pop($free2);
			$libres = array();
			foreach($free as $libre) {
				if($libre != $temp) $libres[] = $libre; 
			}
			if($player == "o") $playern = "x";
			else $playern = "o";
			play($playern,$game.$player.$temp,$libres);
		}
	}
	play("o","",array(1,2,3,4,5,6,7,8,9));
	$end = time();
	$duration = $end - $start;
	echo "\n\nTardo: $duration segundos.\n\n";
?>

El programa necesita una tabla MySQL:

CREATE TABLE IF NOT EXISTS `gato` (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `game` varchar(100) NOT NULL,
  `winner` int(11) NOT NULL,
  PRIMARY KEY (`id`)
)

Al correrlo y ver resultados, se ven interesantes puntos:

mysql> select winner,count(*) from gato group by winner;
+--------+----------+
| winner | count(*) |
+--------+----------+
|      1 |   131184 |
|      2 |    77904 |
|      3 |   127872 |
+--------+----------+
3 rows in set (0.20 sec)

Hay que denotar que en realidad los numeros deberian ser en realidad una cuarta parte de lo que son, ya que en el programa, si se toma en cuenta la posicion vertical hacia arriba, sin embargo volteando el gato serían los mismos movimientos 3 veces diferentes…

La observación obvia al ver los resultados es que el circulo O tiene gran ventaja, ya que tiene 1.68 veces de posibles victorias con respecto a la equis X debido a que la primera empieza con el primer movimiento.

Para la próxima dejemos el algoritmo que elimina las jugadas repetidas debido a la rotacion del cuadrado… y ya con eso podremos analizar mas facilmente cuales son las jugadas clave a la hora de jugar al gato…. por ahora creo que la moraleja es, escoje el circulo para tener mas posibilidades jejeej :) .

Si alguien se anima a darle seguimiento comente los resultados.

Mi laptop dell M1530 se tarda 175 segundos en procesar el script, cuanto tarda la tuya? Comenta!.

Si te gustó compartelo:
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Digg
  • Technorati
  • Meneame
  • Slashdot
  • Bitacoras.com
  • email
  • Print
  • PDF

, , , ,

Servicio de Traducción Online

January 28th, 2010

Esta vez me toca dar review a un servicio de Traducción que presume dar solución a esta necesidad de ser multilenguaje que cada vez es más común debido a la globalización obtenida fácilmente para cualquier empresa que tenga presencia en internet.
El esquema de este servicio de traducción se basa en un sistema parecido a una subasta, en el que aquel que desea o necesita traducir algo, hace su propuesta publicando el texto y la cantidad que está dispuesto a pagar por la traducción. En el sitio se registran gran cantidad de traductores de diferentes lenguajes los cuales constantemente son notificados de las propuestas.
Una vez que el primer traductor acepte la propuesta, es asignada la relación y se procede a realizar el proceso de traducción y el pago al entregar el texto ya traducido.
Como nota curiosa sobre el servicio, cuando me encontraba revisando su página, me encontré con un error en el texto de la página de inicio, supongo que una mala traducción o tal vez un typo, pero al fin y al cabo un error…

En resumen en mi opinión creo que el servicio de subastas siempre da un buen equilibrio entre un precio justo tanto para el comprador como para el vendedor, y creo que da resultados eficientes en productos asi como en servicios. Sumandole la plataforma web creo que es un servicio exitoso, y lo que si hay que hacer es establecer una marca predominante, que aunque la competencia es saludable, siempre es bueno que haya una solución fuerte y robusta por lo que recomendaría utilizar este servicio para lograr que este servicio madure.
El único pero que le pondría hasta ahora, es que se fijaran mas en el texto de su página inicial al menos.

Sitio: http://www.translia.com/es

Cancion del Año

October 14th, 2009

Hoy me pasó @poringo este link -> http://www.getonmyhorse.com.

getonmyhorse

Me parece muy divertido, pero es muy pegajoso y me gusta la musica :D . Creo que puedo oirla cientos de veces… esas veces donde el repeat si vale la pena jejeje.

Aqui la letra:

Look at my horse,
My horse is amazing,
Give it a lick,
ooo, it tastes just like raisins,

Have a stroke of its mane,
It turns into a plane,
And then it turns back again,
When you tug on its winkie.

ooo thats dirty!!
Do you think so?
Well I better not show you where
the lemonade is made

Sweet lemonade,
Sweet lemonade,
Sweet lemonade,
Sweet lemonade.

(bopping ensues)

Get on my horse,
I’ll take you around the universe,
and all the other places too!

I think you’ll find that the universe pretty much
covers everything,

Shuttup woman! Get on my horse!

Nota: Sale un pene de caballo en la animación, asi que cuidado donde o con quien lo vean jeje. ¿qué?, ¿que muy tarde?… ups…

Si te gustó compartelo:
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Digg
  • Technorati
  • Meneame
  • Slashdot
  • Bitacoras.com
  • email
  • Print
  • PDF

, ,

Video XXX de Rammstein (Pussy)

October 1st, 2009

El vídeo de Rammstein del sencillo “Pussy” que es el primer sencillo de su nuevo material sí que da de que hablar!.

Han pasado al porno explicito ya que no solo muestran bubis, penes, sino hasta penetraciones y corridas… y al parecer han querido dar polemica tal vez para que gente nueva los escuche, pero además los fans de siempre les ha gustado pues dicen “es muy rammstein”, tanto el video, como la musica, ya que dicen, recuerda sus inicios.

…no hay nada que no se vea en la TV, no ya por la noche sino a las 22:00 ya se ve “carne”, pero ahí está la gracia: Rammstein se ríe de nuestra mojigatería…

Agregan un fan.

Nota: si eres menor de edad o muy persinado no le des play. Pues esta sin censura.


Si te gustó compartelo:
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Digg
  • Technorati
  • Meneame
  • Slashdot
  • Bitacoras.com
  • email
  • Print
  • PDF

, ,

Muse se burla de programa Italiano

September 29th, 2009

La banda Muse decidió burlarse de un programa Italiano en vez de hacer PlayBack como estaba planeado.

Al no estar de acuerdo con no poder cantar en vivo, los integrantes de la banda decidieron intercambiar papeles en los instrumentos, e incluso de vocalista… pues el baterista Dom Howard se introdujó a cantar pero extrañamente con la voz del cantante.

Lo mas divertido del asunto, fue que la producción no se percató del cambio e incluso entrevisto al baterista Dom Howard, pensando que era Matt Bellamy el lider y cantante de la banda.

Aquí el vídeo de la presentación:


Una pregunta interesante es cual es la reacción de la producción despues de que se supo el boicot.

Si te gustó compartelo:
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Digg
  • Technorati
  • Meneame
  • Slashdot
  • Bitacoras.com
  • email
  • Print
  • PDF

, ,

Get Adobe Flash playerPlugin by wpburn.com wordpress themes