Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement