Advertisement
jsbsan

parttida doommiino

Jun 10th, 2013
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.58 KB | None | 0 0
  1. def partida(jugadorA,jugadorB):
  2.     #generar fichas....
  3.     #tipo de torneo: 2, 4, o 100 puntos'
  4.     Ficha_Prototipo=Ficha()
  5.     GrupoFicha=[]
  6.     contador=0
  7.     posibles=[0,1,2,3,4,5,6,7]
  8.     for a in posibles:
  9.         for b in posibles[a:7]:
  10.             contador = contador + 1
  11.             #print a,b," - ",contador
  12.             Ficha_Prototipo=Ficha()
  13.             Ficha_Prototipo.new(a,b)
  14.             #Ficha_Prototipo.ver()
  15.             GrupoFicha.append(Ficha_Prototipo)
  16.  
  17.  
  18.  
  19.  
  20.     ListaJugadores=[]
  21.     ListaJugadores=[jugadorA,jugadorB]
  22.  
  23.     #repartir fichas a los jugadores
  24.     aleatorio=0
  25.     listaOrdenadaAleatoriamente=random.shuffle(GrupoFicha) #random.shuffle: desordena de modo aleatorio una lista
  26.     #asigno la mitad de la lista de fichas a un jugador y la otra mitad al otro jugador
  27.     #ref web: http://docs.python.org/2/library/random.html
  28.     ListaJugadores[0].ArrayFichas=GrupoFicha[:14]
  29.     ListaJugadores[1].ArrayFichas=GrupoFicha[14:28]
  30.  
  31.     #escribo en pantalla como ha sido el reparto de las fichas y los puntos que tienen cada jugador...
  32.     print "Fichas Repartidas:"
  33.     print "--------------------"
  34.     print "Jugador A:"
  35.     print ListaJugadores[0].escribe()
  36.     print ListaJugadores[0].cuenta()
  37.     print "--------------------"
  38.     print "Jugador B:"
  39.     print ListaJugadores[1].escribe()
  40.     print ListaJugadores[1].cuenta()
  41.  
  42. #Inicio el juego
  43.     #averiguar cual tiene el 6:6, ser? el que primero mueva
  44.     FichaBuscar=Ficha()
  45.     FichaBuscar.valorA=6
  46.     FichaBuscar.valorB=6
  47.  
  48.     jug=Jugador()
  49.     jug,numero = AveriguaJugadorConFicha(FichaBuscar,ListaJugadores[0],ListaJugadores[1])
  50.  
  51.     print "El jugador que tiene la ficha buscada es.."
  52.     #empieza a jugar con el jugador que tenga la ficha buscada...
  53.     if numero==1: #jug==jugadorA:
  54.         print "jugador A"
  55.     else:
  56.         print "jugador B"
  57.  
  58. #El jugador pone la ficha en la serpierte y eliminandose de la lista de fichas que tiene)
  59.     jug.elimina(FichaBuscar)
  60.  
  61.     Serp=Serpiente()
  62.     Serp.cola=FichaBuscar.valorA
  63.     Serp.cabeza= FichaBuscar.valorB
  64. #rellena el tablero  o serpiente con la primera  pieza
  65.     Serp.inicia(FichaBuscar)
  66.  
  67.     jug.escribe()
  68.  
  69. #cambia de turno de jugador...
  70.     print "el otro jugador..."
  71.     ListaJugadores[numero-1].escribe()
  72.  
  73. #Inicia las variables del bucle principal....
  74.     FichaColocada=Ficha()
  75.     Lugar=""
  76.     respuesta=""
  77.     print "Numero:",numero
  78.     valorAnterior=""
  79.     bucle=True
  80. #Bucle Principal del Juego...
  81.     while bucle:
  82.         if numero==1:
  83.             print "Esta jugando....Jugador: A"
  84.             respuesta,FichaColocada, lugar  = ListaJugadores[0].coloca(Serp)
  85.             nombrejugador="A"
  86.         else:
  87.             print "Esta jugando....Jugdor B"
  88.             respuesta, FichaColocada, lugar  = ListaJugadores[1].coloca(Serp)
  89.             nombrejugador="B"
  90.         #la repuesta puede ser:
  91.         #    "UltimaFicha"-> ya no tiene mas piezas y es el ganador...
  92.         #    "Pasa"-> no tiene ficha para poner... y aun le quedan fichas por poner...
  93.         #    "Coloca" -> tiene una ficha para poner... o en la cola o en la cabeza de la serpiente...
  94.         # print "Respuesta:", respuesta, " el jugador ", nombrejugador
  95.  
  96.  
  97.         if respuesta=="UltimaFicha":
  98.             Serp.Coloca(FichaColocada,lugar)
  99.             if numero==1:
  100.                 ListaJugadores[0].marcador +=  ListaJugadores[1].cuenta()
  101.             else:
  102.                 ListaJugadores[1].marcador +=  ListaJugadores[0].cuenta()
  103.             print "Coloca:", FichaColocada.ver(),"Lugar:", lugar
  104.             print "Y es la ultima pieza!!"
  105.             break #sale del bucle porque hay uno que ha ganado...!!
  106.         elif respuesta=="Coloca":
  107.             print "Coloca:", FichaColocada.ver(), "Lugar:", lugar
  108.             Serp.Coloca(FichaColocada,lugar)
  109.             valorAnterior="" #no pasa porque ha colocado una ficha
  110.             #http://www.tutorialspoint.com/python/python_if_else.htm
  111.         elif respuesta=="Pasa":
  112.             #comprobar que el anterior jugador paso.. si es asi, los dos pasan... y hay que recalcular quien tiene menos puntos para saber el ganador.
  113.             if numero==1:
  114.                 ListaJugadores[0].CuentaVecesQueNoPuedePoner =ListaJugadores[0].CuentaVecesQueNoPuedePoner + 1
  115.             else:
  116.                 ListaJugadores[1].CuentaVecesQueNoPuedePoner =ListaJugadores[1].CuentaVecesQueNoPuedePoner + 1
  117.  
  118.  
  119.             if valorAnterior=="Pasa":
  120.  
  121.                 if ListaJugadores[0].cuenta() == ListaJugadores[1].cuenta():
  122.                     #empate,
  123.                     print "empate, tienen los mismos puntos"
  124.  
  125.                 elif ListaJugadores[0].cuenta()< ListaJugadores[1].cuenta():
  126.                      #gana el jugador 0
  127.                      print "Ganador jugador A (tenia ",ListaJugadores[0].cuenta()," puntos)"
  128.                      print "    B (tenia ",ListaJugadores[1].cuenta()," puntos)"
  129.                      ListaJugadores[0].marcador += ListaJugadores[0].cuenta() + ListaJugadores[1].cuenta()
  130.                 else:
  131.                     #gana el jugador 1
  132.                     print "Ganador jugador B (tenia ",ListaJugadores[1].cuenta(),"puntos)"
  133.                     print  "      A (tenia ",ListaJugadores[0].cuenta()," puntos)"
  134.                     ListaJugadores[1].marcador += ListaJugadores[0].cuenta() + ListaJugadores[1].cuenta()
  135.                 break
  136.             else:
  137.                 #el jugador anterior no paso entonces solo "pasa" el jugador actual... asigno a la variable bandera el valor de "Pasa"
  138.                 valorAnterior="Pasa"
  139.                 #en la anteior jugada no paso el jugador anterior
  140.         #corro turno al siguiente jugador
  141.         if numero== 0:
  142.             numero=1
  143.         else:
  144.             numero=0
  145.         #muestro estado del tablero
  146.         print "Estado de la Serpiente: ",Serp.cola,Serp.cabeza
  147.         bucle=True #no se ha terminado el juego,sigo jugando,
  148. #.....................................................................................................
  149. # he llegado al final del juego (porque alguien coloc? su ultima ficha o pasaron los dos jugadores
  150. #.....................................................................................................
  151.     print "============================================================================="
  152.     print "=                            Informacion de la partida                      ="
  153.     print "============================================================================="
  154.     print "Resultado:"
  155.     Serp.ver()
  156.     print "El jugador A, suma un total de "
  157.     print "   PUNTOS:",ListaJugadores[0].marcador
  158.     print "   Numero de veces que no ha podido poner ficha: ",ListaJugadores[0].CuentaVecesQueNoPuedePoner
  159.     print ListaJugadores[0].escribe()
  160.     print "El jugador B, suma un total de "
  161.     print "   PUNTOS:",ListaJugadores[1].marcador
  162.     print "   Numero de veces que no ha podido poner ficha: ",ListaJugadores[1].CuentaVecesQueNoPuedePoner
  163.     print ListaJugadores[1].escribe()
  164.     if ListaJugadores[0].marcador>ListaJugadores[1].marcador:
  165.         print "----------------------------------"
  166.         print "EL GANADOR ES: Jugador A"
  167.         print "----------------------------------"
  168.     elif ListaJugadores[0].marcador<ListaJugadores[1].marcador:
  169.         print "----------------------------------"
  170.         print"EL GANADOR ES: Jugador B"
  171.         print "----------------------------------"
  172.     else:
  173.         print "----------------------------------"
  174.         print "EMPATE!!!!"
  175.         print "----------------------------------"
  176.  
  177.     return  ListaJugadores[0],ListaJugadores[1] #devuelve los juadores
  178.  
  179.  
  180.     pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement