Logo Studenta

Juego de cartas UNO en python

¡Estudia con miles de materiales!

Vista previa del material en texto

REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD JOSÉ ANTONIO PAEZ
ESCUELA DE INGENIERÍA EN COMPUTACIÓN
Juego de Cartas “UNO”, Conteo y probabilidad
Sección: 305C1
Danny Godos C.I. 22.728.244
Jhoselyn Mercado C.I. 21.153.518
Romina Betancourt CI: 16.052.570
Cátedra: Estructuras Discretas I
Prof. MSc. Jetro López
San Diego, junio, 2017
Informe Proyecto Final Estructuras Discretas I Página 2
JUEGO DE CARTAS “UNO” BASADOS EN LA TEORÍA DE CONTEO Y PROBABILIDAD.
En el presente informe se presenta el código de conteo para el juego de cartas “UNO”, en este documento se da una breve explicación del juego y sus reglas.
Descripción n de los tipos de cartas existentes el juego: 108 es el total de cartas distribuidas de la siguiente manera:
	19 cartas azules 
	
	Del 0 al 9
	19 cartas verdes 
	
	Del 0 al 9
	19 cartas rojas 
	
	Del 0 al 9
	19 cartas amarillas 
	
	Del 0 al 9
	8 cartas especiales 
	ROBA DOS
	2 de cada color
	8 cartas especiales 
	CAMBIO DE SENTIDO
	2 de cada color
	8 cartas especiales 
	PIERDE EL TURNO
	2 de cada color
	4 cartas especiales 
	COMODIN
	
	4 cartas especiales 
	COMODIN ROBA CUATRO
	
MECÁNICA DE JUEGO:
Se mezcla la baraja y se reparten 7 cartas a cada jugador. Las cartas sobrantes se colocan en el centro de la mesa formando el montón. Se da la vuelta a la carta superior del montón, colocándola boca arriba al lado del mismo, esta será la pila de descarte. Si dicha carta es una carta especial, se debe tener en cuenta su efecto.
Empieza la partida el jugador que se encuentra situado a la derecha del que ha repartido, jugando una carta de su mano de coincida en número, color o símbolo, con la carta que se giró para formar la pila de descarte. Por ejemplo, si dicha carta es un 7 rojo, el jugador debe jugar una carta roja o un 7 de cualquier color. También puede descartarse de un COMODÍN (ver la sección “Cartas especiales”).
Si en algún momento de la partida, un jugador no puede jugar ninguna de las cartas de su mano por no coincidir con la última de la pila de descarte, está obligado a robar una carta del montón, pudiéndola jugar inmediatamente. Si esta carta tampoco coincide en número, color o símbolo con la última de la pila de descarte, se quedará con la carta y el tumo pasará al siguiente jugador.
Un jugador en su turno podrá decidir no jugar una de las cartas de su mano, aunque esta coincida en número, color o símbolo con la última de la pila de descarte. En este caso, debe robar una carta del montón, pudiéndola jugar inmediatamente. Después de robar, sólo puede jugar la carta que ha robado, le está prohibido descartarse de unas de las cartas que ya tenía en la mano.
CÓDIGO EN PYTHON.
import os
crtms4 = 4 # Identifica la carta de tipo +4
crtsrep = 7 # Cantidad de cartas a repartir por jugador
ct = 108 # Cantidad de cartas totales del juego
crest = 0 # Cantidad de cartas restantes en el juego
za=1
zb=1
z=1
zm=1
colores = 4
print (" Juego de cartas UNO")
pj= input('comprobar teoría de conteo (s/n): ')
os.system('cls')
while pj == 's':
 nj=int(input('Indicar la cantidad de jugadores a validar (de 2 a 10): '))
 if (nj>=2) and (nj<=10):
 cnj = int( nj / 2)
 print ("\n Menú de Opciones del 1 al 5\n") 
 print ("1)Numero de formas distintas de distribución de las (2) cartas (+2) Azul, (2) pierde el turno amarilla o 2 cambio de sentido de cada color ") 
 print ("2)Numero de formas diferentes de salir las (4) cartas (+4) durante el juego solo a:",cnj ,"jugadores de", nj )
 print ("3)posibles distintas formas de posiciones de ganadores para ", nj ,"jugadores ")
 print ("4)Numero de Variaciones de los 3 primeros puestos de ganadores (Solo cuando hay más de 3 jugadores) ")
		
 preg = int(input('indique el número de su opción : '))
 if preg == 1 :
 ca = 2*2
 cb= 2 * colores
 c = ca + cb
 print (" EL Numero de combinaciones posibles de las (2) cartas (+2) Azul, (2) pierde el turno amarilla o 2 cambio de sentido de cada color es : ", c ) 
 if preg == 2 :
 pfs = crtms4 * cnj
 print ("la Probabilidad de que ha ",cnj , "jugadores le salgan las (4) cartas (+4) es: ", pfs)
 if preg == 3:
 ##zb=1
 while z <= nj:
 zb = zb * z
 z = z + 1
 print ("posibles distintas formas de posiciones de ganadores según #jugador : ", zb)
 if preg == 4 :
 k = nj - 3
 if nj >= 3:
 if nj == 3:
 while z <= nj:
 za = za * z
 z = z + 1
 elif nj == 4:
 za = 4*3
 elif nj > 4:
 while nj > k:
 za= za * nj
 nj = nj - 1
 
 print ("el Número de Variaciones de los 3 primeros es de: ", za) 
 else :
 print ("el Número de jugadores es menor a 3 (debe ser min 3 jugadores): ") 
				
 else:
 print ("La cantidad de jugadores debe ser de 2 a 10")
		
 pj= input('comprobar teoría de conteo (s/n): ')
 za=1
## Fin de código.
VIDEO EN YOUTUBE.
Una vez implementado el código en Python se procede a crear y editar un video educativo en donde se explica el alcance del código desde las reglas básicas del juego, su implementación en el programa mencionado y finalmente su funcionamiento en tiempo real. 
Para ello se utilizó el programa de gestor de videos Camtasia Studio 6.0.3, el cual permite crear fotogramas de video, agregar caption de texto, efectos especiales, destacar información mediante Callouts, además lo más importante: grabar desde la pantalla (Record Screen) todo el funcionamiento del programa desde Phyton con el objeto de ser comprobado en forma digital.
1) Primero se Pide crear nuevo proyecto en New Project para generar un editable, luego Save Project para guardarlo
2) Se visualiza el proyecto en tiempo de creación y edición.
3) Se pueden configurar las dimensiones del proyecto en formato listo para YouTube, automáticamente programa el formato digital listo para subirse a la plataforma conocida.
4) Luego se configuran los detalles finales: se crea el video en un formato digital que pueda soportar cualquier máquina, de hecho se puede subir a YouTube en formato mp4, recomendado por su poco peso en tiempo de ejecución.
5) Luego se localiza el formato del video generado en mp4 y se procede a subirlo a YouTube. Se puede visualizar mediante éste enlace directo: https://youtu.be/l0CCwV1_JLI

Continuar navegando