Commit 88f1ccf7 by Julio Hermosa

se entrega la tarea 3 (poker2)

parent 11e01ed6
File added
......@@ -11,21 +11,38 @@ import UIKit
class ViewController: UIViewController {
//var carta:Carta = Carta.init()
var baraja:Baraja = Baraja()
var mano1:Manos = Manos()
var mano2:Manos = Manos()
var resultado1: (Jugada, [Int], Int)? = nil
var resultado2: (Jugada, [Int], Int)? = nil
var ganador = String()
@IBOutlet weak var resultadoObtenido: UILabel!
@IBOutlet weak var resultadoObtenido1: UILabel!
@IBOutlet weak var resultadoObtenido2: UILabel!
@IBOutlet weak var valorCarta1: UILabel!
@IBOutlet weak var valorCarta2: UILabel!
@IBOutlet weak var valorCarta3: UILabel!
@IBOutlet weak var valorCarta4: UILabel!
@IBOutlet weak var valorCarta5: UILabel!
@IBOutlet weak var valorCarta6: UILabel!
@IBOutlet weak var valorCarta7: UILabel!
@IBOutlet weak var valorCarta8: UILabel!
@IBOutlet weak var valorCarta9: UILabel!
@IBOutlet weak var valorCarta10: UILabel!
@IBOutlet weak var imagenCarta1: UIImageView!
@IBOutlet weak var imagenCarta2: UIImageView!
@IBOutlet weak var imagenCarta3: UIImageView!
@IBOutlet weak var imagenCarta4: UIImageView!
@IBOutlet weak var imagenCarta5: UIImageView!
@IBOutlet weak var imagenCarta6: UIImageView!
@IBOutlet weak var imagenCarta7: UIImageView!
@IBOutlet weak var imagenCarta8: UIImageView!
@IBOutlet weak var imagenCarta9: UIImageView!
@IBOutlet weak var imagenCarta10: UIImageView!
@IBOutlet weak var jugarBtn: UIButton!
......@@ -33,29 +50,132 @@ class ViewController: UIViewController {
jugar()
}
//llamamos a las funciones relativas al juego de la clase baraja (extraer cartas, obtener la jugada y volver a barajar las cartas)
//llamamos a las funciones relativas al juego de la clase Manos (extraer cartas, obtener la jugada y volver a barajar las cartas)
func jugar(){
baraja.extraerCartas()
resultadoObtenido.text = baraja.jugadas()
baraja.crearBaraja()//creamos un mazo completo de 52 cartas
mano1.extraerCartas(cartasDisponibles: baraja)
//se envia el array con las cartas aún disponibles
mano2.extraerCartas(cartasDisponibles: baraja)
resultado1 = mano1.jugadas()
//se guardan los resultados obtenidos en variables resultadoN
resultado2 = mano2.jugadas()
resultadoObtenido1.text = "\(mano1.jugadas().0)"
//se imprime en los labels el nombre de las jugadas para cada jugador
resultadoObtenido2.text = "\(mano2.jugadas().0)"
//cargamos los valores del array en los labels de las cartas
valorCarta1.text = baraja.nombreCarta[0]
valorCarta2.text = baraja.nombreCarta[1]
valorCarta3.text = baraja.nombreCarta[2]
valorCarta4.text = baraja.nombreCarta[3]
valorCarta5.text = baraja.nombreCarta[4]
valorCarta1.text = mano1.nombreCarta[0]
valorCarta2.text = mano1.nombreCarta[1]
valorCarta3.text = mano1.nombreCarta[2]
valorCarta4.text = mano1.nombreCarta[3]
valorCarta5.text = mano1.nombreCarta[4]
valorCarta6.text = mano2.nombreCarta[0]
valorCarta7.text = mano2.nombreCarta[1]
valorCarta8.text = mano2.nombreCarta[2]
valorCarta9.text = mano2.nombreCarta[3]
valorCarta10.text = mano2.nombreCarta[4]
//segun el nombre de la imagen mostramos su palo
imagenCarta1.image = UIImage(named: "poker-\(baraja.palo[0])")
imagenCarta2.image = UIImage(named: "poker-\(baraja.palo[1])")
imagenCarta3.image = UIImage(named: "poker-\(baraja.palo[2])")
imagenCarta4.image = UIImage(named: "poker-\(baraja.palo[3])")
imagenCarta5.image = UIImage(named: "poker-\(baraja.palo[4])")
imagenCarta1.image = UIImage(named: "poker-\(mano1.palo[0])")
imagenCarta2.image = UIImage(named: "poker-\(mano1.palo[1])")
imagenCarta3.image = UIImage(named: "poker-\(mano1.palo[2])")
imagenCarta4.image = UIImage(named: "poker-\(mano1.palo[3])")
imagenCarta5.image = UIImage(named: "poker-\(mano1.palo[4])")
imagenCarta6.image = UIImage(named: "poker-\(mano2.palo[0])")
imagenCarta7.image = UIImage(named: "poker-\(mano2.palo[1])")
imagenCarta8.image = UIImage(named: "poker-\(mano2.palo[2])")
imagenCarta9.image = UIImage(named: "poker-\(mano2.palo[3])")
imagenCarta10.image = UIImage(named: "poker-\(mano2.palo[4])")
//llamamos a la función que se encarga de elegir al ganador
elegirGanador()
mano1.barajarCartas()
//devolvemos las cartas al mazo
mano2.barajarCartas()
}
func elegirGanador(){
var valores1 = resultado1!.1
var valores2 = resultado2!.1
//comparamos las jugadas segun su ranking para elegir al ganador
if resultado1!.0.rawValue > resultado2!.0.rawValue {
ganador = "Jugador1"
}
if resultado2!.0.rawValue > resultado1!.0.rawValue{
ganador = "Jugador2"
}
//si ambas jugadas son iguales, se procede al desempate
if resultado1!.0 == resultado2!.0 {
//como se aplican métodos de desempate similares para las escaleras, color y carta alta, se procede a comparar los valores de mayor a menor
if resultado1!.0 == .CartaAlta || resultado1!.0 == .Escalera || resultado1!.0 == .EscaleraColor || resultado1!.0 == .EscaleraReal || resultado1!.0 == .Color {
while valores1.last! == valores2.last!{
valores1.removeLast()
valores2.removeLast()
}
if valores1.count > 0{
if valores1.last! > valores2.last!{
ganador = "Jugador1"
} else
if valores2.last! > valores1.last!{
ganador = "Jugador2"
}
else{
ganador = "Empate"
}
}
}
//para desempatar se elige la combinación mayor, en caso de haber empate se comparan con las cartas que no forman parte de la combinación
if resultado1!.0 == .Par || resultado1!.0 == .ParDoble || resultado1!.0 == .Trio || resultado1!.0 == .Full || resultado1!.0 == .Poker{
if resultado1!.2 > resultado2!.2{
ganador = "Jugador1"
}
if resultado2!.2 > resultado1!.2{
ganador = "Jugador2"
}
if resultado2!.2 == resultado1!.2{
while valores1.last! == valores2.last!{
valores1.removeLast()
valores2.removeLast()
}
if valores1.count > 0{
if valores1.last! > valores2.last!{
ganador = "Jugador1"
} else
if valores2.last! > valores1.last!{
ganador = "Jugador2"
}
else{
ganador = "Empate"
}
}
}
}
}
baraja.barajarCartas()
//se muestra en una alerta quien ganó o si es empate
if ganador == "Empate" {
mostrarGanador(mensaje: "\(ganador)")
}else{
mostrarGanador(mensaje: "El ganador es: \(ganador)")
}
}
//se crea la alerta, que muestra quien ganó o si es empate
private func mostrarGanador(mensaje: String){
let alerta = UIAlertController(title: "Resultado Final", message:mensaje, preferredStyle: .alert)
alerta.addAction(UIAlertAction(title: "Aceptar", style: .default, handler: nil))
present(alerta, animated:true, completion:nil)
}
override func viewDidLoad() {
super.viewDidLoad()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment