Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Novlucker

#3461
Ejercicios / Re: Juego ejercicios [Python]
12 Enero 2010, 15:45 PM
El siguiente es sencillo :P

"Crear un programa que abra un archivo binario y 'extraíga' todo aquello que pueda significar texto"

El mejor ejemplo de esto es strings de Sysinternals (la salida no debe de ser tal cual ese programa, sino que tiene que ser dentro de todo, 'legible')

Saludos
#3462
Ejercicios / Re: Juego ejercicios [Python]
12 Enero 2010, 13:23 PM
Y así se ve en el servidor y uno de los clientes (con errores de ingreso) :P

D:\Py>python.exe Cliente3raya.py
___ ___ ___
|___||___||___|
|___||___||___|
|___||___||___|

-- PLAYER ONE [X]--

Ingresa numero de casillero [1-9]: 1
___ ___ ___
|___||___||___|
|___||___||___|
|_X_||___||_0_|

-- PLAYER ONE [X]--

Ingresa numero de casillero [1-9]: 5
___ ___ ___
|___||___||___|
|___||_X_||_0_|
|_X_||___||_0_|

-- PLAYER ONE [X]--

Ingresa numero de casillero [1-9]: o
El casillero seleccionado no es váli
___ ___ ___
|___||___||___|
|___||_X_||_0_|
|_X_||___||_0_|

-- PLAYER ONE [X]--

Ingresa numero de casillero [1-9]: 6
El casillero ya se encuentra ocupado
___ ___ ___
|___||___||___|
|___||_X_||_0_|
|_X_||___||_0_|

-- PLAYER ONE [X]--

Ingresa numero de casillero [1-9]: 9


-- Gana PLAYER1 --

D:\Py>


D:\Py>python.exe Servidor3raya.py
12/01/10 13:12:41: Conexion desde ('127.0.0.1', 1455)
12/01/10 13:13:39: Conexion desde ('127.0.0.1', 1456)
12/01/10 13:14:38: Juego Terminado

D:\Py>


Como puede verse, el tablero se actualiza solo cuando "te vuelve el foco", así que cuando envías la jugada debes de esperar a que te toque otra vez para que se actualice.
En realidad no se por que hice esto así, solo debeía de agregar otro llamado a TresRayas.dibujar() :xD

Supongo que con esto esta ok, así que voy pensando en un nuevo ejercicio :P

Saludos
#3463
Ejercicios / Re: Juego ejercicios [Python]
12 Enero 2010, 13:20 PM
La verdad que el crear juegos no me gusta nada, pero bueno, para que haya otro ejercicio más rápido XD

Servidor:
Código (python) [Seleccionar]
import socket
import random
import time
from time import localtime, strftime

class TresRaya():
    def __init__(self):
        self.player1 = ''
        self.player2 = ''

    def Agregar(self,value, player):
        try:
            if(int(value) in range(1,10)):
                if(value not in (self.player1+self.player2)):
                    if(player==1):
                        self.player1 += value
                    else:
                        self.player2 += value
                    return 'True'
                else:
                    return 'El casillero ya se encuentra ocupado'
            else:
                return 'El casillero seleccionado no es válido'
        except:
                return 'El casillero seleccionado no es válido'

    def Dibujar(self):
        total = self.player1+self.player2
        t = '\n ___  ___  ___  \n'
        tablero = ['' for x in range(12)]
        for i in range(10):
            if (str(i) in self.player1):
                tablero[i-1] = '|_X_|'
            elif (str(i) in self.player2):
                tablero[i-1] = '|_0_|'
            else:
                tablero[i-1] = '|___|'
        rd = t+''.join(tablero[6:9])+'\n'+''.join(tablero[3:6])+'\n'+''.join(tablero[0:3])+'\n'
        return rd

    def VerificaGanador(self, player):
        soluciones = ['123','456','789','147','258','369','159','357']
        gana = ''
        if(player==1):
            gana = self.player1
        else:
            gana = self.player2

        for s in soluciones:
            if((s[0] in gana) and (s[1] in gana) and (s[2] in gana)):
                return 1
        if(len(self.player1+self.player2) == 9):
            return 0
        return -1

Tr = TresRaya()
s = socket.socket()
s.bind(('localhost',19911))
s.listen(2)
socket_c1,addr1 = s.accept()
print(time.strftime("%d/%m/%y %H:%M:%S:",time.localtime()),'Conexion desde',addr1)
socket_c2,addr2 = s.accept()
print(time.strftime("%d/%m/%y %H:%M:%S:",time.localtime()),'Conexion desde',addr2)

f = random.randrange(1,3)
p = 1

if (f == 2):
    p = 2

while(True):
    if(p == 1):
        socket_c1.send(Tr.Dibujar().encode()+'\n-- PLAYER ONE [X]--\n'.encode())
        time.sleep(1)
        socket_c1.send('Juega'.encode())
        play = socket_c1.recv(100).decode()
    else:
        socket_c2.send(Tr.Dibujar().encode()+'\n-- PLAYER TWO [0]--\n'.encode())
        time.sleep(1)
        socket_c2.send('Juega'.encode())
        play = socket_c2.recv(100).decode()

    if(play=='exit'):
        if(p == 1):
            socket_c2.send('Juego Terminado por el otro jugador'.encode())
        else:
            socket_c1.send('Juego Terminado por el otro jugador'.encode())
        time.sleep(2)
        socket_c2.close()
        socket_c1.close()
        break
   
    Agrego = Tr.Agregar(play,p)
    if(Agrego == 'True'):
        win = ''
        whowin = Tr.VerificaGanador(p)
        if(whowin == 1):
            win = '\n\n\n-- Gana PLAYER' + str(p) + ' --'
        elif(whowin == 0):
            win = '\n\n\n-- EMPATE --'
        if(whowin == 1 or whowin == 0):
            socket_c1.send(win.encode())
            time.sleep(2)
            socket_c1.send('Juego Terminado'.encode())
            socket_c2.send(win.encode())
            time.sleep(2)
            socket_c2.send('Juego Terminado'.encode())
            time.sleep(2)
            socket_c2.close()
            socket_c1.close()
            break
        if(p == 1):
            p = 2
        else:
            p = 1
    else:
        if(p == 1):
            socket_c1.send(Agrego.encode())
            time.sleep(1)
        else:
            socket_c2.send(Agrego.encode())
            time.sleep(1)

print(time.strftime("%d/%m/%y %H:%M:%S:",time.localtime()), 'Juego Terminado')
s.close()


Cliente:
Código (python) [Seleccionar]
import socket

s = socket.socket()
s.connect(('localhost',19911))

while(True):
    data = s.recv(100).decode()
    if(data == 'Juego Terminado' or data == 'Juego Terminado por el otro jugador'):
        break
    elif(data == 'Juega'):
        casillero = input('\nIngresa numero de casillero [1-9]: ')
        s.send(casillero.encode())
        if(casillero == 'exit'):
            s.close()
            break
    elif(data != '' and data != 'Juega'):
        print(data)


Seguro que no es para nada la mejor manera, pero quería terminarlo ya! XD
#3464
No puedes :-\
Aprovecha las ventajas del vbs, para que moverte así por directorios si puedes apuntar al directorio que prefieras con una variable por ejemplo? :-\

Saludos
#3465
Si estas en vbs para que vas a hacer uso de la consola, además de que la carpeta de temporales tiene su propia variable :-\

Código (vb) [Seleccionar]
Set objshell = createobject("wscript.shell")
temp=objshell.expandenvironmentstrings("%TEMP%")
objshell.run temp & "\archivo.exe", vbhide, false


Saludos
#3466
Ejercicios / Re: Juego ejercicios [Python]
11 Enero 2010, 18:46 PM
Jaaaaaaaaaa! Nada nada! pequeño desliz :-X

Nunca has hecho una pregunta que pueda decirse tonta (estupida)?
El valor que se le pasa al listen() pa' que es entonces? XD

En ocasiones hay que plantearse lo rápido que se es frente al teclado, al punto de que las neuronas no razonan tan rápido como se mueven los dedos. XDD

Lo dicho, olvidalo ;D
#3467
Ejercicios / Re: Juego ejercicios [Python]
11 Enero 2010, 18:06 PM
Mira la última parte de mi post anterior .. el de "[...]decidido...", es lo que he dicho, hay que conectar y desconectar de un cliente y otro intercambiando clientes (para no "complicarse" con más code), o hablas de tener conectados en simultaneo dos clientes en el mismo puerto del servidor :huh:
#3468
Que no entiendes de la respuesta de seba123neo?

Basicamente te da el link al código php de algo como lo que pides, solo devuelve la cantidad de años, pero sería lo mismo.

Saludos
#3469
Ejercicios / Re: Juego ejercicios [Python]
11 Enero 2010, 15:49 PM
Threading/Hilos :P

Saludos
#3470
Cita de: Carloswaldo en 11 Enero 2010, 13:46 PM
Nov, se te fue uno de más xD

:-X Donde?  :silbar: