Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Mensaje iniciado por: $Edu$ en 8 Febrero 2012, 03:55 AM

Título: Como hacen ustedes estas cosas?..
Publicado por: $Edu$ en 8 Febrero 2012, 03:55 AM
Cuando en un programa se requiere de hacer cosas con probabilidades de acertar o no, por ejemplo, supongamos un programa que tenga un boton y tengas 10% de que te salga un mensaje que diga: "Haz ganado!", como lo hacen?

Porqe yo lo que hago en este caso por ejemplo es un numero Random del 1 al 100 y que si ese numero es menor o igual que 10 entonces sale el mensaje.
Esta bien como lo hago? como lo hacen ustedes?



Y ahora una cosa.. talvez es mas complicado no se.. Para hacer que una aplicacion conecte con la otra que esta en otra computadora, mediante sockets, se requiere saber la ip de la aplicacion que trabaja como servidor y el puerto.
Pero yo quiero que aparezca en una lista los conectados y que se pueda enviar desde la aplicacion una invitacion para ahi recien si crear la conexion privada entre esas 2 maquinas.

Un ejemplo por si no entienden que digo seria como cuando jugas en una web al ajedrez, vos ves muchos conectados y les envias la invitacion para jugar y ahi se empieza el juego sin tener que saber la ip de esa maquina.
Pero talvez esto es asi porque tienen un servidor prendido las 24hs puede ser? al cual se conectan todos y luego se hacen las conexiones entre los que van a jugar.

Me pierdo un poco, a ver quien me saca las dudas, gracias!
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: 2Fac3R en 8 Febrero 2012, 04:10 AM
Pues si, podrias hacerlo asi, depende de la complejidad que le quieras dar al programa (no especificas el lenguaje)
Zalu2
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: $Edu$ en 8 Febrero 2012, 04:14 AM
Me gustaria que me digan como lo hacen y digan en que lenguaje lo hacen de esa forma.
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: 2Fac3R en 8 Febrero 2012, 04:22 AM
Vale xDDD, un poco tonto el pedido pero bueh:

Código (php) [Seleccionar]
<?php
$num 
rand(1,5);
if(
$num<2){
echo 
"Este es el mensaje";
}else{
echo 
"No acertaste :P";
}
?>


Código (dos) [Seleccionar]
@echo off
:: No testeado ya que no ando en windows xD
set num= %random%
if %num%<10 ( echo Mensaje ) else echo No acertaste
pause>nul && exit


etc, etc xDD
Zalu2
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: $Edu$ en 8 Febrero 2012, 04:29 AM
No loca! solo que me digan con sus palabras xDD

Gracias igual, tu idea es igual a lo que yo digo asi que esperemos a otros a ver que hacen para lograr eso
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: 2Fac3R en 8 Febrero 2012, 05:53 AM
Cita de: $Edu$ en  8 Febrero 2012, 04:14 AM
Me gustaria que me digan como lo hacen

Ah vale, es que ahi lo dices :P

Cita de: $Edu$ en  8 Febrero 2012, 03:55 AM
Pero yo quiero que aparezca en una lista los conectados y que se pueda enviar desde la aplicacion una invitacion para ahi recien si crear la conexion privada entre esas 2 maquinas.

Claro, el servidor debe estar las 24 horas online. En este caso, pienso que ya entran en juego bases de datos (para la lista de conectados y poder enviar la invitacion, por ejemplo) y PHP para manejarlo.
Zalu2
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: criskapunk en 8 Febrero 2012, 13:05 PM
Buenas,

Algo que se me ocurre (Nunca lo hice), por ejemplo, para tener el 10% de probabilidades de ganar en algún juego sería, antes de comenzar cada turno y de forma previa a los tiros de los jugadores se eligen 10 números aleatorios entre 1 y 100, se los almacena y luego se aplica la función aleatoria a los 100 números nuevamente para saber cual le salió al jugador.

No es algo muy complicado, pero bueno xD.

Un saludo.
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: $Edu$ en 22 Febrero 2012, 17:57 PM
Nadie ha tenido que hacer algo de esto como para explicarme como hacerlo?
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: $Edu$ en 7 Marzo 2012, 00:24 AM
Vamos programadores, nadie que haya hecho un programa con probabilidades o con conexiones como explico en mi primer post?
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: leogtz en 7 Marzo 2012, 04:15 AM
Programar con probabilidades así no..., pero sé que eso lo podrías hacer con una distribución Bernoulli, donde:

p = 0.1
1 - p = 0.9

p es la probabilidad de ocurrencia del evento, en este caso de que el usuario acierte.

Es decir.

Si 0 <= random() <= 1 - p                 entonces acierta.
Si 1 - p <= random() < 1                   entonces falla.


Saludos.
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: $Edu$ en 7 Marzo 2012, 14:06 PM
Ta pero entonces se usa Random y para que acierte tiene que caer en un limite, lo que es lo mismo que poner que un 70 porciento es un random del 1 al 100 y acierta si sale del 1 al 70, eso mas que nada quiero saber :P
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: MCKSys Argentina en 8 Marzo 2012, 20:33 PM
En el tema de probabilidades, puedes revisar la teoria:

http://es.wikipedia.org/wiki/Distribución_de_probabilidad
http://es.wikipedia.org/wiki/Axiomas_de_probabilidad

Por supuesto, usar random es un acercamiento mucho mas simple...

Con respecto a las conexiones es sencillo: El servidor escucha y los clientes se conectan. Luego solo lista los clientes conectados y permite la interconexion entre cada uno...

Cómo implementas el cliente/servidor es otro tema. Las opciones son variadas...

Saludos!
Título: Re: Como hacen ustedes estas cosas?..
Publicado por: $Edu$ en 8 Marzo 2012, 21:18 PM
Gracias! Ya entiendo, esque con las webs es mas facil pienso yo, porque existen muchos hosts gratuitos para tener tu base de datos y tu web alojada ahi pero en el caso que yo quisiera alojar mi servidor.exe corriendo en un host eso ya nunca lo he hecho y no creo que haya gratis, hablo de un host que yo pueda entrar por escritorio remoto por ejemplo y dejar corriendo mis aplicaciones.

pd: Lo de computacion en la nube tiene que ver con esto tambien?