Autor
|
Tema: Juego ejercicios [Python] (Leído 110,476 veces)
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
Me pasa mas de lo que debería
|
|
|
En línea
|
|
|
|
Masita
Desconectado
Mensajes: 120
pythoneando
|
Ya estoy de vuelta. Veo que la cosa ha avanzado bastante, esta misma noche me pongo con ello!!!
|
|
|
En línea
|
En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
La verdad que el crear juegos no me gusta nada, pero bueno, para que haya otro ejercicio más rápido XD Servidor: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: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
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Y así se ve en el servidor y uno de los clientes (con errores de ingreso) 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() Supongo que con esto esta ok, así que voy pensando en un nuevo ejercicio Saludos
|
|
« Última modificación: 12 Enero 2010, 15:17 pm por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
Vale, lo espero.
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
El siguiente es sencillo "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
|
|
« Última modificación: 13 Enero 2010, 20:06 pm por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Masita
Desconectado
Mensajes: 120
pythoneando
|
Supongo que lo que pides es eliminar los caracteres extraños. def filtro(x): f = open(x) cadena = f.read() for i in range(len(cadena)): x = False for j in range(65,91): if cadena[i] == chr(j): x = True for j in range(97,123): if cadena[i] == chr(j): x = True for j in range(48,58): if cadena[i] == chr(j): x = True if x == False: cadena = cadena.replace(cadena[i]," ") return cadena binario = raw_input("Ingrese el nombre del archivo: ") try: cadena = filtro(binario) cadena = cadena.split() cadena = " ".join(cadena) print cadena.upper() except: print "Archivo no encontrado"
Supongo que es eso lo que pedias dejo mi ejercicio por si es aceptado (me voy ya a la cama...) El siguiente ejercicio consiste en un programa que al ejecutarlo con este formato: Nombre_del_programa -Accion -Archivo. Ejemplo: python miprograma.py -B foto.jpg -El programa tiene que permitir: Crear, Borrar, Abrir el archivo que le demos como segundo parametro. Este tambien es sencillito.
|
|
|
En línea
|
En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Si pero no, la idea es esa más o menos ...pero eso falla OPEN por defecto abre un archivo en modo texto, y estamos hablando de un binario, intenta por ejemplo abrir el notepad.exe con eso Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Masita
Desconectado
Mensajes: 120
pythoneando
|
Es que yo lo habia intentado con un gif y un archivo en c compilado, No tengo ningun archivo .exe a mano, uso linux y el wine no me funciona. Mañana me bajo cualquier .exe y lo intento!
|
|
« Última modificación: 14 Enero 2010, 02:18 am por Masita »
|
En línea
|
En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Igual deberías de haber tenido problemas con el GIF, te dejo trabajar bien?
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Reto/Juego Ejercicios en Python
« 1 2 3 4 5 »
Ejercicios
|
Novlucker
|
47
|
35,547
|
20 Diciembre 2010, 06:47 am
por [L]ord [R]NA
|
|
|
ejercicios en python
Scripting
|
ramontxu
|
2
|
3,683
|
15 Diciembre 2011, 21:56 pm
por ramontxu
|
|
|
Ejercicios python con solucion
Programación General
|
bichotg
|
0
|
2,903
|
17 Febrero 2012, 00:33 am
por bichotg
|
|
|
ejercicios con while y for en python
Scripting
|
jasson94
|
3
|
10,571
|
26 Octubre 2012, 22:52 pm
por jasson94
|
|
|
Ayuda ejercicios de python
Scripting
|
jasson94
|
2
|
3,860
|
30 Octubre 2012, 01:39 am
por jasson94
|
|