#Gato#
Autor: Javier Araneda
Competencia: Tecnologías de la información (Nivel 2)
Asignatura: Desarrollo de aplicaciones cliente servidor.
Y al final el código de fuente termino siendo esto:
Cliente:
import socket ,os
def Jugada():
while True:
tablero()
f = raw_input("fila : ")
try:
f=int(f)
except ValueError:
tablero()
f = raw_input("fila : ")
if f<=3:
break
while True:
tablero()
c = raw_input("Colmna : ")
try:
c=int(c)
except ValueError:
tablero()
print "fila :",f
c = raw_input("Columna : ")
if c<=3:
break
return 3*(int(f)-1) + (int(c)-1)
def tablero():
os.system("cls")
print " "
print " 1 2 3 "
print " +---+---+---+ "
print "1 | %c | %c | %c | " % (M[0], M[1], M[2])
print " +---+---+---+ "
print "2 | %c | %c | %c | " % (M[3], M[4], M[5])
print " +---+---+---+ "
print "3 | %c | %c | %c | " % (M[6], M[7], M[8])
print " +---+---+---+ "
print " "
M = ['#','#','#','#','#','#','#','#','#']
end=False
#Crear un socket para la conexion con el servidor. Puede dejarlse sin parametros
#o se puede escribir server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = socket.socket()
#los parametros de metodo connect son el numero IP del servidor y el numero del puerto
s.connect(("localhost", 9999))
s.send("juguemos")
#Creamos un bucle para mantener la conexion
while True:
p=Jugada()
while True:
if M[p]!='X' and M[p]!='O':
break
else:
tablero()
p=Jugada()
M[p] = 'X'
tablero()
s.send(str(p))
while True:
if (M[0]=="X" and M[1]=="X" and M[2]=="X"):
print "\n\nGane"
end=True
break
elif (M[3]=="X" and M[4]=="X" and M[5]=="X"):
print "\nGane"
end=True
break
elif (M[6]=="X" and M[7]=="X" and M[8]=="X"):
print "\nGane"
end=True
break
elif (M[0]=="X" and M[3]=="X" and M[6]=="X"):
print "\nGane"
end=True
break
elif (M[1]=="X" and M[4]=="X" and M[7]=="X"):
print "\nGane"
end=True
break
elif (M[2]=="X" and M[5]=="X" and M[8]=="X"):
print "\nGane"
end=True
break
elif (M[0]=="X" and M[4]=="X" and M[8]=="X"):
print "\nGane"
end=True
break
elif (M[2]=="X" and M[4]=="X" and M[6]=="X"):
print "\nGane"
end=True
break
else:
break
if end==True:
break
p = int(s.recv(2))
print "indice recibido = ", p, "\n"
M[p] = 'O'
while True:
if (M[0]=="O" and M[1]=="O" and M[2]=="O"):
print "\n\nPerdi"
break
elif (M[3]=="O" and M[4]=="O" and M[5]=="O"):
print "\nPerdi"
break
elif (M[6]=="O" and M[7]=="O" and M[8]=="O"):
print "\nPerdi"
break
elif (M[0]=="O" and M[3]=="O" and M[6]=="O"):
print "\nPerdi"
break
elif (M[1]=="O" and M[4]=="O" and M[7]=="O"):
print "\nPerdi"
break
elif (M[2]=="O" and M[5]=="O" and M[8]=="O"):
print "\nPerdi"
break
elif (M[0]=="O" and M[4]=="O" and M[8]=="O"):
print "\nPerdi"
break
elif (M[2]=="O" and M[4]=="O" and M[6]=="O"):
print "\nPerdi"
break
else:
break
print "\nel juego ha terminado"
#s.close()
----------------
Servidor:
import socket
from random import randrange
M = ['#','#','#','#','#','#','#','#','#']
# Crear un socket para que el servidor acepte conexiones de clientes
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# El metodo bind() identifica el puerto de escucha y la IP desde donde el servidor
# aceptara conexiones (dejamos esa IP en blanco para que acepte de cualquiera)
s.bind(("", 9999))
print "\n\nservidor esperando un contendor\n\n"
# el metodo listen() acepta tantas conexiones como el valor que le pasemos (1 en este caso)
s.listen(1)
# Crear un socket para escuchar al cliente. Al aceptar una conexion se obtiene la tupla add
# que contiene IP:puerto que identifica la IP del cliente y su puierto
sc, addr = s.accept()
mensaje = sc.recv(10)
if mensaje=="juguemos":
print "jugando con cliente ", addr[0]
apagar = False
while True:
# El metodo recv recibe tantos bytes como le indiquemos
p = int(sc.recv(2))
print "indice recibido = ", p
if p==9:
break
M[p] = 'X'
while True:
if (M[0]=="X" and M[1]=="X" and M[2]=="X"):
print "\n\nPerdi"
apagar=True
break
elif (M[3]=="X" and M[4]=="X" and M[5]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[6]=="X" and M[7]=="X" and M[8]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[0]=="X" and M[3]=="X" and M[6]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[1]=="X" and M[4]=="X" and M[7]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[2]=="X" and M[5]=="X" and M[8]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[0]=="X" and M[4]=="X" and M[8]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[2]=="X" and M[4]=="X" and M[6]=="X"):
print "\nPerdi"
apagar=True
break
else:
break
if apagar==True:
break
while True:
k = randrange(0, 9)
if M[k] == '#':
M[k] = 'O'
break
print "indice enviado = ", k, "\n"
# El servidor le responde al cliente
sc.send(str(k))
while True:
if (M[0]=="O" and M[1]=="O" and M[2]=="O"):
print "\n\nGane"
apagar=True
break
elif (M[3]=="O" and M[4]=="O" and M[5]=="O"):
print "\nGane"
apagar=True
break
elif (M[6]=="O" and M[7]=="O" and M[8]=="O"):
print "\nGane"
apagar=True
break
elif (M[0]=="O" and M[3]=="O" and M[6]=="O"):
print "\nGane"
apagar=True
break
elif (M[1]=="O" and M[4]=="O" and M[7]=="O"):
print "\nGane"
apagar=True
break
elif (M[2]=="O" and M[5]=="O" and M[8]=="O"):
print "\nGane"
apagar=True
break
elif (M[0]=="O" and M[4]=="O" and M[8]=="O"):
print "\nGane"
apagar=True
break
elif (M[2]=="O" and M[4]=="O" and M[6]=="O"):
print "\nGane"
apagar=True
break
else:
break
if apagar==True:
break
print "\n\nel juego ha terminado"
#Cerramos la instancia del socket cliente y servidor
sc.close()
s.close()
Conclusión:
Los sockets brindan la posibilidad de conectarse entre 2 computadores a distancia, Solo con la dirección IP y un puerto de conexión. Esto permite hacer varios tipos de trabajo a distancia, también facilita un montón el envió de información atravesar de los programas.
Palabras clave: python, programación, ip, juego,gato,puertos,port.
Descripción de la actividad:
Este trabajo fue un trabajo de en python, no recuerdo exactamente que trabajo fue, El punto es que teníamos que hacer un gato. python. El profe nos dio de "esqueleto" con la estructura del gato:
print " "
print " 1 2 3 "
print " +---+---+---+ "
print "1 | %c | %c | %c | " % (M[0], M[1], M[2])
print " +---+---+---+ "
print "2 | %c | %c | %c | " % (M[3], M[4], M[5])
print " +---+---+---+ "
print "3 | %c | %c | %c | " % (M[6], M[7], M[8])
print " +---+---+---+ "
print " "
El objetivo es mediante sockets establecer la conexión desde el "cliente" al servidor" y poder jugar gato. El cliente envía las coordenadas donde quiere colocar su marca, y luego el servidor envía una respuesta. Toda la información "grafica" se muestra en el lado del cliente mientras que . Cuando se cumple el criterio de "Ganar" o "Empatar" el servidor lo analiza y envía un mensaje saludando al ganador y termina la conexión
Este trabajo fue un trabajo de en python, no recuerdo exactamente que trabajo fue, El punto es que teníamos que hacer un gato. python. El profe nos dio de "esqueleto" con la estructura del gato:
print " "
print " 1 2 3 "
print " +---+---+---+ "
print "1 | %c | %c | %c | " % (M[0], M[1], M[2])
print " +---+---+---+ "
print "2 | %c | %c | %c | " % (M[3], M[4], M[5])
print " +---+---+---+ "
print "3 | %c | %c | %c | " % (M[6], M[7], M[8])
print " +---+---+---+ "
print " "
El objetivo es mediante sockets establecer la conexión desde el "cliente" al servidor" y poder jugar gato. El cliente envía las coordenadas donde quiere colocar su marca, y luego el servidor envía una respuesta. Toda la información "grafica" se muestra en el lado del cliente mientras que . Cuando se cumple el criterio de "Ganar" o "Empatar" el servidor lo analiza y envía un mensaje saludando al ganador y termina la conexión
Y al final el código de fuente termino siendo esto:
Cliente:
import socket ,os
def Jugada():
while True:
tablero()
f = raw_input("fila : ")
try:
f=int(f)
except ValueError:
tablero()
f = raw_input("fila : ")
if f<=3:
break
while True:
tablero()
c = raw_input("Colmna : ")
try:
c=int(c)
except ValueError:
tablero()
print "fila :",f
c = raw_input("Columna : ")
if c<=3:
break
return 3*(int(f)-1) + (int(c)-1)
def tablero():
os.system("cls")
print " "
print " 1 2 3 "
print " +---+---+---+ "
print "1 | %c | %c | %c | " % (M[0], M[1], M[2])
print " +---+---+---+ "
print "2 | %c | %c | %c | " % (M[3], M[4], M[5])
print " +---+---+---+ "
print "3 | %c | %c | %c | " % (M[6], M[7], M[8])
print " +---+---+---+ "
print " "
M = ['#','#','#','#','#','#','#','#','#']
end=False
#Crear un socket para la conexion con el servidor. Puede dejarlse sin parametros
#o se puede escribir server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = socket.socket()
#los parametros de metodo connect son el numero IP del servidor y el numero del puerto
s.connect(("localhost", 9999))
s.send("juguemos")
#Creamos un bucle para mantener la conexion
while True:
p=Jugada()
while True:
if M[p]!='X' and M[p]!='O':
break
else:
tablero()
p=Jugada()
M[p] = 'X'
tablero()
s.send(str(p))
while True:
if (M[0]=="X" and M[1]=="X" and M[2]=="X"):
print "\n\nGane"
end=True
break
elif (M[3]=="X" and M[4]=="X" and M[5]=="X"):
print "\nGane"
end=True
break
elif (M[6]=="X" and M[7]=="X" and M[8]=="X"):
print "\nGane"
end=True
break
elif (M[0]=="X" and M[3]=="X" and M[6]=="X"):
print "\nGane"
end=True
break
elif (M[1]=="X" and M[4]=="X" and M[7]=="X"):
print "\nGane"
end=True
break
elif (M[2]=="X" and M[5]=="X" and M[8]=="X"):
print "\nGane"
end=True
break
elif (M[0]=="X" and M[4]=="X" and M[8]=="X"):
print "\nGane"
end=True
break
elif (M[2]=="X" and M[4]=="X" and M[6]=="X"):
print "\nGane"
end=True
break
else:
break
if end==True:
break
p = int(s.recv(2))
print "indice recibido = ", p, "\n"
M[p] = 'O'
while True:
if (M[0]=="O" and M[1]=="O" and M[2]=="O"):
print "\n\nPerdi"
break
elif (M[3]=="O" and M[4]=="O" and M[5]=="O"):
print "\nPerdi"
break
elif (M[6]=="O" and M[7]=="O" and M[8]=="O"):
print "\nPerdi"
break
elif (M[0]=="O" and M[3]=="O" and M[6]=="O"):
print "\nPerdi"
break
elif (M[1]=="O" and M[4]=="O" and M[7]=="O"):
print "\nPerdi"
break
elif (M[2]=="O" and M[5]=="O" and M[8]=="O"):
print "\nPerdi"
break
elif (M[0]=="O" and M[4]=="O" and M[8]=="O"):
print "\nPerdi"
break
elif (M[2]=="O" and M[4]=="O" and M[6]=="O"):
print "\nPerdi"
break
else:
break
print "\nel juego ha terminado"
#s.close()
----------------
Servidor:
import socket
from random import randrange
M = ['#','#','#','#','#','#','#','#','#']
# Crear un socket para que el servidor acepte conexiones de clientes
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# El metodo bind() identifica el puerto de escucha y la IP desde donde el servidor
# aceptara conexiones (dejamos esa IP en blanco para que acepte de cualquiera)
s.bind(("", 9999))
print "\n\nservidor esperando un contendor\n\n"
# el metodo listen() acepta tantas conexiones como el valor que le pasemos (1 en este caso)
s.listen(1)
# Crear un socket para escuchar al cliente. Al aceptar una conexion se obtiene la tupla add
# que contiene IP:puerto que identifica la IP del cliente y su puierto
sc, addr = s.accept()
mensaje = sc.recv(10)
if mensaje=="juguemos":
print "jugando con cliente ", addr[0]
apagar = False
while True:
# El metodo recv recibe tantos bytes como le indiquemos
p = int(sc.recv(2))
print "indice recibido = ", p
if p==9:
break
M[p] = 'X'
while True:
if (M[0]=="X" and M[1]=="X" and M[2]=="X"):
print "\n\nPerdi"
apagar=True
break
elif (M[3]=="X" and M[4]=="X" and M[5]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[6]=="X" and M[7]=="X" and M[8]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[0]=="X" and M[3]=="X" and M[6]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[1]=="X" and M[4]=="X" and M[7]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[2]=="X" and M[5]=="X" and M[8]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[0]=="X" and M[4]=="X" and M[8]=="X"):
print "\nPerdi"
apagar=True
break
elif (M[2]=="X" and M[4]=="X" and M[6]=="X"):
print "\nPerdi"
apagar=True
break
else:
break
if apagar==True:
break
while True:
k = randrange(0, 9)
if M[k] == '#':
M[k] = 'O'
break
print "indice enviado = ", k, "\n"
# El servidor le responde al cliente
sc.send(str(k))
while True:
if (M[0]=="O" and M[1]=="O" and M[2]=="O"):
print "\n\nGane"
apagar=True
break
elif (M[3]=="O" and M[4]=="O" and M[5]=="O"):
print "\nGane"
apagar=True
break
elif (M[6]=="O" and M[7]=="O" and M[8]=="O"):
print "\nGane"
apagar=True
break
elif (M[0]=="O" and M[3]=="O" and M[6]=="O"):
print "\nGane"
apagar=True
break
elif (M[1]=="O" and M[4]=="O" and M[7]=="O"):
print "\nGane"
apagar=True
break
elif (M[2]=="O" and M[5]=="O" and M[8]=="O"):
print "\nGane"
apagar=True
break
elif (M[0]=="O" and M[4]=="O" and M[8]=="O"):
print "\nGane"
apagar=True
break
elif (M[2]=="O" and M[4]=="O" and M[6]=="O"):
print "\nGane"
apagar=True
break
else:
break
if apagar==True:
break
print "\n\nel juego ha terminado"
#Cerramos la instancia del socket cliente y servidor
sc.close()
s.close()
.
Conclusión:
Los sockets brindan la posibilidad de conectarse entre 2 computadores a distancia, Solo con la dirección IP y un puerto de conexión. Esto permite hacer varios tipos de trabajo a distancia, también facilita un montón el envió de información atravesar de los programas.
No hay comentarios.:
Publicar un comentario