def partida(jugadorA,jugadorB):
#generar fichas....
#tipo de torneo: 2, 4, o 100 puntos'
Ficha_Prototipo=Ficha()
GrupoFicha=[]
contador=0
posibles=[0,1,2,3,4,5,6,7]
for a in posibles:
for b in posibles[a:7]:
contador = contador + 1
#print a,b," - ",contador
Ficha_Prototipo=Ficha()
Ficha_Prototipo.new(a,b)
#Ficha_Prototipo.ver()
GrupoFicha.append(Ficha_Prototipo)
ListaJugadores=[]
ListaJugadores=[jugadorA,jugadorB]
#repartir fichas a los jugadores
aleatorio=0
listaOrdenadaAleatoriamente=random.shuffle(GrupoFicha) #random.shuffle: desordena de modo aleatorio una lista
#asigno la mitad de la lista de fichas a un jugador y la otra mitad al otro jugador
#ref web: http://docs.python.org/2/library/random.html
ListaJugadores[0].ArrayFichas=GrupoFicha[:14]
ListaJugadores[1].ArrayFichas=GrupoFicha[14:28]
#escribo en pantalla como ha sido el reparto de las fichas y los puntos que tienen cada jugador...
print "Fichas Repartidas:"
print "--------------------"
print "Jugador A:"
print ListaJugadores[0].escribe()
print ListaJugadores[0].cuenta()
print "--------------------"
print "Jugador B:"
print ListaJugadores[1].escribe()
print ListaJugadores[1].cuenta()
#Inicio el juego
#averiguar cual tiene el 6:6, ser? el que primero mueva
FichaBuscar=Ficha()
FichaBuscar.valorA=6
FichaBuscar.valorB=6
jug=Jugador()
jug,numero = AveriguaJugadorConFicha(FichaBuscar,ListaJugadores[0],ListaJugadores[1])
print "El jugador que tiene la ficha buscada es.."
#empieza a jugar con el jugador que tenga la ficha buscada...
if numero==1: #jug==jugadorA:
print "jugador A"
else:
print "jugador B"
#El jugador pone la ficha en la serpierte y eliminandose de la lista de fichas que tiene)
jug.elimina(FichaBuscar)
Serp=Serpiente()
Serp.cola=FichaBuscar.valorA
Serp.cabeza= FichaBuscar.valorB
#rellena el tablero o serpiente con la primera pieza
Serp.inicia(FichaBuscar)
jug.escribe()
#cambia de turno de jugador...
print "el otro jugador..."
ListaJugadores[numero-1].escribe()
#Inicia las variables del bucle principal....
FichaColocada=Ficha()
Lugar=""
respuesta=""
print "Numero:",numero
valorAnterior=""
bucle=True
#Bucle Principal del Juego...
while bucle:
if numero==1:
print "Esta jugando....Jugador: A"
respuesta,FichaColocada, lugar = ListaJugadores[0].coloca(Serp)
nombrejugador="A"
else:
print "Esta jugando....Jugdor B"
respuesta, FichaColocada, lugar = ListaJugadores[1].coloca(Serp)
nombrejugador="B"
#la repuesta puede ser:
# "UltimaFicha"-> ya no tiene mas piezas y es el ganador...
# "Pasa"-> no tiene ficha para poner... y aun le quedan fichas por poner...
# "Coloca" -> tiene una ficha para poner... o en la cola o en la cabeza de la serpiente...
# print "Respuesta:", respuesta, " el jugador ", nombrejugador
if respuesta=="UltimaFicha":
Serp.Coloca(FichaColocada,lugar)
if numero==1:
ListaJugadores[0].marcador += ListaJugadores[1].cuenta()
else:
ListaJugadores[1].marcador += ListaJugadores[0].cuenta()
print "Coloca:", FichaColocada.ver(),"Lugar:", lugar
print "Y es la ultima pieza!!"
break #sale del bucle porque hay uno que ha ganado...!!
elif respuesta=="Coloca":
print "Coloca:", FichaColocada.ver(), "Lugar:", lugar
Serp.Coloca(FichaColocada,lugar)
valorAnterior="" #no pasa porque ha colocado una ficha
#http://www.tutorialspoint.com/python/python_if_else.htm
elif respuesta=="Pasa":
#comprobar que el anterior jugador paso.. si es asi, los dos pasan... y hay que recalcular quien tiene menos puntos para saber el ganador.
if numero==1:
ListaJugadores[0].CuentaVecesQueNoPuedePoner =ListaJugadores[0].CuentaVecesQueNoPuedePoner + 1
else:
ListaJugadores[1].CuentaVecesQueNoPuedePoner =ListaJugadores[1].CuentaVecesQueNoPuedePoner + 1
if valorAnterior=="Pasa":
if ListaJugadores[0].cuenta() == ListaJugadores[1].cuenta():
#empate,
print "empate, tienen los mismos puntos"
elif ListaJugadores[0].cuenta()< ListaJugadores[1].cuenta():
#gana el jugador 0
print "Ganador jugador A (tenia ",ListaJugadores[0].cuenta()," puntos)"
print " B (tenia ",ListaJugadores[1].cuenta()," puntos)"
ListaJugadores[0].marcador += ListaJugadores[0].cuenta() + ListaJugadores[1].cuenta()
else:
#gana el jugador 1
print "Ganador jugador B (tenia ",ListaJugadores[1].cuenta(),"puntos)"
print " A (tenia ",ListaJugadores[0].cuenta()," puntos)"
ListaJugadores[1].marcador += ListaJugadores[0].cuenta() + ListaJugadores[1].cuenta()
break
else:
#el jugador anterior no paso entonces solo "pasa" el jugador actual... asigno a la variable bandera el valor de "Pasa"
valorAnterior="Pasa"
#en la anteior jugada no paso el jugador anterior
#corro turno al siguiente jugador
if numero== 0:
numero=1
else:
numero=0
#muestro estado del tablero
print "Estado de la Serpiente: ",Serp.cola,Serp.cabeza
bucle=True #no se ha terminado el juego,sigo jugando,
#.....................................................................................................
# he llegado al final del juego (porque alguien coloc? su ultima ficha o pasaron los dos jugadores
#.....................................................................................................
print "============================================================================="
print "= Informacion de la partida ="
print "============================================================================="
print "Resultado:"
Serp.ver()
print "El jugador A, suma un total de "
print " PUNTOS:",ListaJugadores[0].marcador
print " Numero de veces que no ha podido poner ficha: ",ListaJugadores[0].CuentaVecesQueNoPuedePoner
print ListaJugadores[0].escribe()
print "El jugador B, suma un total de "
print " PUNTOS:",ListaJugadores[1].marcador
print " Numero de veces que no ha podido poner ficha: ",ListaJugadores[1].CuentaVecesQueNoPuedePoner
print ListaJugadores[1].escribe()
if ListaJugadores[0].marcador>ListaJugadores[1].marcador:
print "----------------------------------"
print "EL GANADOR ES: Jugador A"
print "----------------------------------"
elif ListaJugadores[0].marcador<ListaJugadores[1].marcador:
print "----------------------------------"
print"EL GANADOR ES: Jugador B"
print "----------------------------------"
else:
print "----------------------------------"
print "EMPATE!!!!"
print "----------------------------------"
return ListaJugadores[0],ListaJugadores[1] #devuelve los juadores
pass