Commit e412ec11 by Jllamas02

Poker2

parent 0f8535e5
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<project version="4"> <project version="4">
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/Poker.iml" filepath="$PROJECT_DIR$/Poker.iml" /> <module fileurl="file://$PROJECT_DIR$/Poker02.iml" filepath="$PROJECT_DIR$/Poker02.iml" />
</modules> </modules>
</component> </component>
</project> </project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="c7ed40e4-fa7b-4601-bb5a-769da39b1a54" name="Default Changelist" comment="" /> <list default="true" id="5ad6561e-2d80-4bef-ad9a-00e0142072dd" name="Default Changelist" comment="" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="ProjectId" id="1adtG7LRwdAqoV5BaqYloMQwMjW" /> <component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Kotlin File" />
</list>
</option>
</component>
<component name="ProjectId" id="1aufouGOkOWqaksUWIQY8vmeziR" />
<component name="ProjectViewState"> <component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" /> <option name="showExcludedFiles" value="true" />
...@@ -15,17 +22,17 @@ ...@@ -15,17 +22,17 @@
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="last_opened_file_path" value="$USER_HOME$/Escritorio/TP-Kotlin-miguel-kotlin-e004-poker01-4e714a8fbe33d5c6c273afd45c1417111fd1a949" /> <property name="last_opened_file_path" value="$USER_HOME$/Escritorio/TP-Kotlin-miguel-poker03-b0c4569ab3d5b0c82f418687e909bfe4cb9e9b29" />
</component> </component>
<component name="RunManager"> <component name="RunManager">
<configuration name="Poker.PokerKt" type="JetRunConfigurationType" factoryName="Kotlin" temporary="true" nameIsGenerated="true"> <configuration name="Poker02.Poker02Kt" type="JetRunConfigurationType" factoryName="Kotlin" temporary="true" nameIsGenerated="true">
<module name="Poker" /> <module name="Poker02" />
<option name="VM_PARAMETERS" /> <option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" /> <option name="PROGRAM_PARAMETERS" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" /> <option name="ALTERNATIVE_JRE_PATH" />
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
<option name="MAIN_CLASS_NAME" value="Poker.PokerKt" /> <option name="MAIN_CLASS_NAME" value="Poker02.Poker02Kt" />
<option name="WORKING_DIRECTORY" /> <option name="WORKING_DIRECTORY" />
<method v="2"> <method v="2">
<option name="Make" enabled="true" /> <option name="Make" enabled="true" />
...@@ -33,42 +40,30 @@ ...@@ -33,42 +40,30 @@
</configuration> </configuration>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Kotlin.Poker.PokerKt" /> <item itemvalue="Kotlin.Poker02.Poker02Kt" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
<component name="WindowStateProjectService"> <component name="WindowStateProjectService">
<state x="137" y="23" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1587088750440"> <state x="463" y="123" key="FileChooserDialogImpl" timestamp="1587596227550">
<screen x="0" y="0" width="1366" height="736" />
</state>
<state x="137" y="23" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1366.736@0.0.1366.736" timestamp="1587088750440" />
<state x="435" y="171" key="#com.intellij.fileTypes.FileTypeChooser" timestamp="1587091320868">
<screen x="0" y="0" width="1366" height="736" />
</state>
<state x="435" y="171" key="#com.intellij.fileTypes.FileTypeChooser/0.0.1366.736@0.0.1366.736" timestamp="1587091320868" />
<state x="412" y="152" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1587088749784">
<screen x="0" y="0" width="1366" height="736" />
</state>
<state x="412" y="152" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1366.736@0.0.1366.736" timestamp="1587088749784" />
<state x="463" y="123" key="FileChooserDialogImpl" timestamp="1587079912963">
<screen x="0" y="0" width="1366" height="736" /> <screen x="0" y="0" width="1366" height="736" />
</state> </state>
<state x="463" y="123" key="FileChooserDialogImpl/0.0.1366.736@0.0.1366.736" timestamp="1587079912963" /> <state x="463" y="123" key="FileChooserDialogImpl/0.0.1366.736@0.0.1366.736" timestamp="1587596227550" />
<state width="1345" height="181" key="GridCell.Tab.0.bottom" timestamp="1587092196900"> <state width="1345" height="181" key="GridCell.Tab.0.bottom" timestamp="1587603494276">
<screen x="0" y="0" width="1366" height="736" /> <screen x="0" y="0" width="1366" height="736" />
</state> </state>
<state width="1345" height="181" key="GridCell.Tab.0.bottom/0.0.1366.736@0.0.1366.736" timestamp="1587092196900" /> <state width="1345" height="181" key="GridCell.Tab.0.bottom/0.0.1366.736@0.0.1366.736" timestamp="1587603494276" />
<state width="1345" height="181" key="GridCell.Tab.0.center" timestamp="1587092196900"> <state width="1345" height="181" key="GridCell.Tab.0.center" timestamp="1587603494276">
<screen x="0" y="0" width="1366" height="736" /> <screen x="0" y="0" width="1366" height="736" />
</state> </state>
<state width="1345" height="181" key="GridCell.Tab.0.center/0.0.1366.736@0.0.1366.736" timestamp="1587092196900" /> <state width="1345" height="181" key="GridCell.Tab.0.center/0.0.1366.736@0.0.1366.736" timestamp="1587603494276" />
<state width="1345" height="181" key="GridCell.Tab.0.left" timestamp="1587092196900"> <state width="1345" height="181" key="GridCell.Tab.0.left" timestamp="1587603494273">
<screen x="0" y="0" width="1366" height="736" /> <screen x="0" y="0" width="1366" height="736" />
</state> </state>
<state width="1345" height="181" key="GridCell.Tab.0.left/0.0.1366.736@0.0.1366.736" timestamp="1587092196900" /> <state width="1345" height="181" key="GridCell.Tab.0.left/0.0.1366.736@0.0.1366.736" timestamp="1587603494273" />
<state width="1345" height="181" key="GridCell.Tab.0.right" timestamp="1587092196900"> <state width="1345" height="181" key="GridCell.Tab.0.right" timestamp="1587603494276">
<screen x="0" y="0" width="1366" height="736" /> <screen x="0" y="0" width="1366" height="736" />
</state> </state>
<state width="1345" height="181" key="GridCell.Tab.0.right/0.0.1366.736@0.0.1366.736" timestamp="1587092196900" /> <state width="1345" height="181" key="GridCell.Tab.0.right/0.0.1366.736@0.0.1366.736" timestamp="1587603494276" />
</component> </component>
</project> </project>
\ No newline at end of file
package Poker
import Poker.Paloss.palos
object Paloss {
val palos = arrayOf(
'S','D','H','C'
)
}
data class jugadas(val valor: Char, val palos: Char)
fun esjugada(resultado : List<jugadas>): String{
var sonpalos = arrayOf(0,0,0,0)
var vecesplay = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
var result: String = "NADA"
for (paloss in resultado){
when(paloss.palos){
'S' -> sonpalos[1] 'C' -> sonpalos[2] 'D' -> sonpalos[3] 'H' -> sonpalos[4]
}
}
for (valores in resultado){
when(valores.valor){
'A' -> vecesplay[1] '2' -> vecesplay[2] '3' -> vecesplay[3] '4' -> vecesplay[4] '5' -> vecesplay[5] '6' -> vecesplay[6] '7' -> vecesplay[7] '8' -> vecesplay[8] '9' -> vecesplay[9] 'T' -> vecesplay[10] 'J' -> vecesplay[11] 'Q' -> vecesplay[12] 'K' -> vecesplay[13]
}
}
for (palos in sonpalos){
if (palos == 5){
result = "COLOR"
for (position in vecesplay.indices){
result = if (position < 9){
if (1 == vecesplay[position] && 1 == vecesplay[position+1] && 1 == vecesplay[position+2] && 1 == vecesplay[position+3] && 1 == vecesplay[position+4]) "ESCALERA COLOR" else continue
}else if (position == 9){
if (1 == vecesplay[position] && 1 == vecesplay[position+1] && 1 == vecesplay[position+2] && 1 == vecesplay[position+3] && 1 == vecesplay[0]) "ESCALERA COLOR REAL" else break
}else break
}
}
}
var trio = false
var doble = 0
for (position in vecesplay.indices) {
if (vecesplay[position] == 5){
result = "POKER"
break
} else {
if (vecesplay[position] == 4) trio = true
if (vecesplay[position] == 3) doble++
result = if ((doble == 2) && trio) "FULL"
else if ((doble == 1) && trio) "TRIO"
else if (doble == 1) "PAREJA"
else if (doble == 2) "PAREJA DOBLE"
else "ESCALERA COLOR"
}
}
return result
}
fun main() {
val jugada = arrayListOf<jugadas>()
var mesa : String
mesa = readLine()!!.toString().toUpperCase()
jugada.add(jugadas(valor = mesa[0], palos = mesa[1])) || jugada.add(jugadas(valor = mesa[2], palos = mesa[3])) || jugada.add(jugadas(valor = mesa[4], palos = mesa[5])) || jugada.add(jugadas(valor = mesa[6], palos = mesa[7])) || jugada.add(jugadas(valor = mesa[8], palos = mesa[9]))
println("Ingrese su baraja: ")
val resultado = jugada.sortedWith(compareBy {it.valor})
println("${esjugada(resultado)}")
}
\ No newline at end of file
PREGUNTAS
2.1. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener una escalera de color?
La probabilidad de que salga una escalera de color es de 36 entre 2.598.960.
Porcentualmente es del 0.0015%.
2.2. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un poker?
La probabilidad de obtener poker de 624 entre 2.598.960.
Porcentualmente es del 0.024%.
2.3. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un full house?
La probabilidad de obtener full house es de 3.744 entre 2.598.960.
Porcentualmente es del 0.14%.
2.4. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener una escalera?
La probabilidad de obtener una escalera es de 10.200 entre 2.598.960.
Porcentualmente es del 0.39%.
2.5. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un trio?
La probabilidad de obtener un trio en una jugada es de 54.912 entre 2.598.960.
Porcentualmente es del 2.11%.
2.6. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un par doble?
La probabilidad de obtener un par doble es de 123.552 entre 2.598.960.
Porcentualmente es del 4.75%.
2.7. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un par?
La probabilidad de obtener un par simple es de 1.098.240 entre 2.598.960.
Porcentualmente es del 42.25%.
2.8. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de no obtener ninguna de las jugadas anteriores?
La probabilidad de no tener ninguna de las jugadas anteriores es de 1.302.540 entre 2.598.960.
Porcentualemente es del 50.3345%.
\ No newline at end of file
package Poker02
object paloss {
val palos = arrayOf(
'S','D','H','C'
)
}
data class mazojugado(val valor: Char, val palo: Char)
fun mejormazo(jugada1 : List<mazojugado>, jugada2 : List<mazojugado>, tipo1 :String, tipo2 : String) : String{
var ganador : String = ""
var palosusados = arrayOf(0,0,0,0)
var valordelmazovv1 = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
for (palos in jugada1){
when(palos.palo){
'S' -> palosusados[0]++ 'C' -> palosusados[1]++ 'D' -> palosusados[2]++ 'H' -> palosusados[3]++ }
}
for (valores in jugada1){
when(valores.valor){
'A' -> valordelmazovv1[0]++ '2' -> valordelmazovv1[1]++ '3' -> valordelmazovv1[2]++ '4' -> valordelmazovv1[3]++ '5' -> valordelmazovv1[4]++ '6' -> valordelmazovv1[5]++ '7' -> valordelmazovv1[6]++ '8' -> valordelmazovv1[7]++ '9' -> valordelmazovv1[8]++ 'T' -> valordelmazovv1[9]++ 'J' -> valordelmazovv1[10]++ 'Q' -> valordelmazovv1[11]++ 'K' -> valordelmazovv1[12]++ }
}
var palosusados2 = arrayOf(0,0,0,0)
var valordelmazo = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
for (palos in jugada2){
when(palos.palo){
'S' -> palosusados2[0]++ 'C' -> palosusados2[1]++ 'D' -> palosusados2[2]++ 'H' -> palosusados2[3]++
}
}
for (valores in jugada2){
when(valores.valor){
'A' -> valordelmazo[0]++ '2' -> valordelmazo[1]++ '3' -> valordelmazo[2]++ '4' -> valordelmazo[3]++ '5' -> valordelmazo[4]++ '6' -> valordelmazo[5]++ '7' -> valordelmazo[6]++ '8' -> valordelmazo[7]++ '9' -> valordelmazo[8]++ 'T' -> valordelmazo[9]++ 'J' -> valordelmazo[10]++ 'Q' -> valordelmazo[11]++ 'K' -> valordelmazo[12]++
}
}
val jugadas: ArrayList<Int> = arrayListOf(0,0,0,0,0,0,0,0,0,0)
when(tipo1){
"ESCALERA REAL" -> jugadas[0]++ "ESCALERA COLOR" -> jugadas[1]++ "POKER" -> jugadas[2]++ "FULL HOUSE" -> jugadas[3]++ "COLOR" -> jugadas[4]++ "ESCALERA" -> jugadas[5]++ "TRIO" -> jugadas[6]++ "DOBLE PAREJA" -> jugadas[7]++ "PAREJA" -> jugadas[8]++ "CARTA ALTA" -> jugadas[9]++
}
when(tipo2){
"ESCALERA REAL" -> jugadas[0]++ "ESCALERA COLOR" -> jugadas[1]++ "POKER" -> jugadas[2]++ "FULL HOUSE" -> jugadas[3]++ "COLOR" -> jugadas[4]++ "ESCALERA" -> jugadas[5]++ "TRIO" -> jugadas[6]++ "DOBLE PAREJA" -> jugadas[7]++ "PAREJA" -> jugadas[8]++ "CARTA ALTA" -> jugadas[9]++
}
var quiengano = -1
var segundo = 0
loop@ for(casos in jugadas.indices){
when(jugadas[casos]) {
1->{
quiengano = casos
ganador = when(quiengano){
0 -> "ESCALERA REAL" 1 -> "ESCALERA COLOR" 2 -> "POKER" 3 -> "FULL HOUSE" 4 -> "COLOR" 5 -> "ESCALERA" 6 -> "TRIO" 7 -> "DOBLE PAREJA" 8 -> "PAREJA" 9 -> "CARTA ALTA"
else -> "NADA"
}
break@loop
}
2->{
when(casos){
0 -> {
ganador = "Mazos iguales"
}
1 ->{
var ultimo = 1
var mazo1 = 0
var mazo2 = 0
loopjugado1@ for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 1) {
if (ultimo == 5) {
mazo1 = indice
break@loopjugado1
}
ultimo++
}
}
ultimo = 1
println()
loopjugado2@ for (indice in valordelmazo.indices){
if (valordelmazo[indice] == 1) {
if (ultimo == 5){
mazo2 = indice
break@loopjugado2
}
ultimo++
}
}
ganador = if (mazo1 == 0 && mazo2 != 0){
"Mazo 1"
}else if (mazo2 == 0 && mazo1 != 0) {
"Mazo 2"
}else if (mazo1 == mazo2){
"Mazos iguales"
}else if (mazo1 > mazo2) {
"Mazo 1"
} else "Mazo 2"
}
2 ->{
var ultimo = 0
var mazo1 = 0
var mazo2 = 0
for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 1) {
if (ultimo == 5) {
mazo1 = indice
}
ultimo++
}
}
ultimo = 0
for (indice in valordelmazo.indices){
if (valordelmazo[indice] == 1) {
if (ultimo == 5){
mazo2 = indice
}
ultimo++
}
}
ganador = if (mazo1 == 0 && mazo2 != 0){
"Mazo 1"
}else if (mazo2 == 0 && mazo1 != 0) {
"Mazo 2"
}else if (mazo1 == mazo2){
"Mazos iguales"
}else if (mazo1 > mazo2) {
"Mazo 1"
} else "Mazo 2"
}
3 -> {
var trio1 = -1
for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 3) {
trio1 = indice
}
}
var trio2 = -1
for (indice in valordelmazo.indices) {
if (valordelmazo[indice] == 3) {
trio2 = indice
}
}
ganador = if (trio1 == 0 && trio2 != 0) {
"Mazo 1"
} else if (trio2 == 0 && trio1 != 0) {
"Mazo 2"
} else if (trio1 == trio2) {
"Mazos iguales"
} else if (trio1 > trio2) {
"Mazo 1"
} else "Mazo 2"
}
4 ->{
var ultimo = 1
var mazo1 = 0
var mazo2 = 0
loopjugado1@ for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 1) {
if (ultimo == 5 || indice == 0) {
mazo1 = indice
break@loopjugado1
}
ultimo++
}
}
ultimo = 1
println()
loopjugado2@ for (indice in valordelmazo.indices){
if (valordelmazo[indice] == 1) {
if (ultimo == 5 || indice == 0){
mazo2 = indice
break@loopjugado2
}
ultimo++
}
}
println("mazo1 = $mazo1 mazo2 = $mazo2")
ganador = if (mazo1 == 0 && mazo2 != 0){
"Mazo 1"
}else if (mazo2 == 0 && mazo1 != 0) {
"Mazo 2"
}else if (mazo1 == mazo2){
"Mazos iguales"
}else if (mazo1 > mazo2) {
"Mazo 1"
} else "Mazo 2"
}
5 ->{
var ultimo = 1
var mazo1 = 0
var mazo2 = 0
loopjugado1@ for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 1) {
if (ultimo == 5 || (indice == 0 && valordelmazovv1[9] == 1 && valordelmazovv1[10] == 1 && valordelmazovv1[11] == 1 && valordelmazovv1[12] == 1)){
mazo1 = indice
break@loopjugado1
}
ultimo++
}
}
ultimo = 1
println()
loopjugado2@ for (indice in valordelmazo.indices){
if (valordelmazo[indice] == 1) {
if (ultimo == 5 || (indice == 0 && valordelmazovv1[9] == 1 && valordelmazovv1[10] == 1 && valordelmazovv1[11] == 1 && valordelmazovv1[12] == 1)){
mazo2 = indice
break@loopjugado2
}
ultimo++
}
}
println("mazo1 = $mazo1 mazo2 = $mazo2")
ganador = if (mazo1 == 0 && mazo2 != 0){
"Mazo 1"
}else if (mazo2 == 0 && mazo1 != 0) {
"Mazo 2"
}else if (mazo1 == mazo2){
"Mazos iguales"
}else if (mazo1 > mazo2) {
"Mazo 1"
} else "Mazo 2"
}
6 ->{
var trio1 = -1
for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 3) {
trio1 = indice
}
}
var trio2 = -1
for (indice in valordelmazo.indices) {
if (valordelmazo[indice] == 3) {
trio2 = indice
}
}
ganador = if (trio1 == 0 && trio2 != 0) {
"Mazo 1"
} else if (trio2 == 0 && trio1 != 0) {
"Mazo 2"
} else if (trio1 == trio2) {
"Mazos iguales"
} else if (trio1 > trio2) {
"Mazo 1"
} else "Mazo 2"
}
7 ->{
var duoone = -1
var duotwo = -1
loopintern@for (indice in valordelmazovv1.indices){
if (segundo == 1){
if (valordelmazovv1[indice] == 2){
duotwo = indice
segundo = 0
break@loopintern
}
}
if (valordelmazovv1[indice] == 2 && segundo == 0){
duoone = indice
segundo = 1
}
}
var duoone2 = -1
var duotwo2 = -1
segundo = 0
loopintern@for (indice in valordelmazo.indices){
if (segundo == 1){
if (valordelmazo[indice] == 2){
duotwo2 = indice
segundo = 0
break@loopintern
}
}
if (valordelmazo[indice] == 2 && segundo == 0){
duoone2 = indice
segundo = 1
}
}
ganador = if (duoone == 0 && duoone2 != 0) {
"Mazo 1"
} else if (duoone2 == 0 && duoone != 0) {
"Mazo 2"
} else if (duoone == duoone2) {
when {
duotwo == duotwo2 -> {
"Mazos iguales"
}
duotwo > duotwo2 -> {
"Mazo 1"
}
else -> {
"Mazo 2"
}
}
} else if (duoone > duoone2) {
"Mazo 1"
} else "Mazo 2"
}
8 ->{
var ultimo = 1
var mazo1 = 0
var mazo2 = 0
var duoone = -1
var segundo = false
for (indice in valordelmazovv1.indices){
if (valordelmazovv1[indice] == 2){
duoone = indice
ultimo = 2
}
}
loopjugado1@ for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 1) {
if (ultimo == 4 || (indice == 0)){
mazo1 = if (indice == 0) 14 else indice
break@loopjugado1
}
ultimo++
}
}
ultimo = 1
var duoone2 = -1
for (indice in valordelmazo.indices){
if (valordelmazo[indice] == 2){
duoone2 = indice
ultimo = 2
}
}
loopjugado2@ for (indice in valordelmazo.indices){
if (valordelmazo[indice] == 1) {
if (ultimo == 4 || (indice == 0)){
mazo2 = if (indice == 0) 14 else indice
break@loopjugado2
}
ultimo++
}
}
ganador = if (duoone == 0 && duoone2 != 0) {
"Mazo 1"
} else if (duoone2 == 0 && duoone != 0) {
"Mazo 2"
} else if (duoone == duoone2) {
when {
mazo1 > mazo2 -> "Mazo 1 "
mazo1 < mazo2 -> "Mazo 2 "
else -> "Mazos iguales"
}
} else if (duoone > duoone2) {
"Mazo 1"
} else "Mazo 2"
}
9 ->{
var ultimo = 1
var mazo1 = 0
var mazo2 = 0
loopjugado1@ for (indice in valordelmazovv1.indices) {
if (valordelmazovv1[indice] == 1) {
if (ultimo == 5 || (indice == 0)){
mazo1 = indice
break@loopjugado1
}
ultimo++
}
}
ultimo = 1
println()
loopjugado2@ for (indice in valordelmazo.indices){
if (valordelmazo[indice] == 1) {
if (ultimo == 5 || (indice == 0)){
mazo2 = indice
break@loopjugado2
}
ultimo++
}
}
println("mazo1 = $mazo1 mazo2 = $mazo2")
ganador = if (mazo1 == 0 && mazo2 != 0){
"Mazo 1"
}else if (mazo2 == 0 && mazo1 != 0) {
"Mazo 2"
}else if (mazo1 == mazo2){
"Mazos iguales"
}else if (mazo1 > mazo2) {
"Mazo 1"
} else "Mazo 2"
}
else ->{
"ERROR 5: JUGADA NO ENCONTRADA"
}
}
}
}
}
return ganador
}
fun reconocerjugada(jugadapa : List<mazojugado>): String{
var palosutilizados = arrayOf(0,0,0,0)
var mazosutilizados = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
var result = "NADA"
for (palos in jugadapa){
when(palos.palo){
'S' -> palosutilizados[0]++ 'C' -> palosutilizados[1]++ 'D' -> palosutilizados[2]++ 'H' -> palosutilizados[3]++
}
}
for (valores in jugadapa){
when(valores.valor){
'A' -> mazosutilizados[0]++ '2' -> mazosutilizados[1]++ '3' -> mazosutilizados[2]++ '4' -> mazosutilizados[3]++ '5' -> mazosutilizados[4]++ '6' -> mazosutilizados[5]++ '7' -> mazosutilizados[6]++ '8' -> mazosutilizados[7]++ '9' -> mazosutilizados[8]++ 'T' -> mazosutilizados[9]++ 'J' -> mazosutilizados[10]++ 'Q' -> mazosutilizados[11]++ 'K' -> mazosutilizados[12]++
}
}
var colornm =true
for (palo in palosutilizados){
if (palo == 5){
result = "COLOR"
colornm = false
for (position in mazosutilizados.indices){
result = if (position < 9){
if (1 == mazosutilizados[position] && 1 == mazosutilizados[position+1] && 1 == mazosutilizados[position+2] && 1 == mazosutilizados[position+3] && 1 == mazosutilizados[position+4]) "ESCALERA COLOR" else continue
}else if (position == 9){
if (1 == mazosutilizados[position] && 1 == mazosutilizados[position+1] && 1 == mazosutilizados[position+2] && 1 == mazosutilizados[position+3] && 1 == mazosutilizados[0]) "ESCALERA REAL" else break
}else break
}
}
}
if (colornm) {
var trio = false
var doblenms = 0
for (position in mazosutilizados.indices) {
if (mazosutilizados[position] == 4) {
result = "POKER"
break
} else if (mazosutilizados[position] == 1 && position <= 9) {
if (position < 9) {
if (1 == mazosutilizados[position] && 1 == mazosutilizados[position + 1] && 1 == mazosutilizados[position + 2] && 1 == mazosutilizados[position + 3] && 1 == mazosutilizados[position + 4]) {
result = "ESCALERA"
break
} else {
continue
}
} else if (position == 9) {
if (1 == mazosutilizados[position] && 1 == mazosutilizados[position + 1] && 1 == mazosutilizados[position + 2] && 1 == mazosutilizados[position + 3] && 1 == mazosutilizados[0]) {
result = "ESCALERA FIGURAS"
break
} else continue
} else continue
}
else {
if (mazosutilizados[position] == 3) trio = true
if (mazosutilizados[position] == 2) doblenms++
result = if ((doblenms == 1) && trio) "FULL HOUSE"
else if ((doblenms == 0) && trio) "TRIO"
else if (doblenms == 1) "PAREJA"
else if (doblenms == 2) "DOBLE PAREJA"
else "CARTA ALTA"
}
}
}
return result
}
fun escalerinha(mazoenmesanm: String) : Boolean{
var escorrecto = false
for (caracteres in 0..4 step 2){
for (caracteresRepite in caracteres+2..8 step 2){
if ((mazoenmesanm[caracteres] == mazoenmesanm[caracteresRepite]) && (mazoenmesanm[caracteres+1] == mazoenmesanm[caracteresRepite+1])){
escorrecto = true
}
}
}
return escorrecto
}
fun valido(cartasenlamesa : String) : Boolean{
var result = true
if (cartasenlamesa.length == 10 && !escalerinha(cartasenlamesa)) {
for (indice in 1..9 step 2) {
result = !( cartasenlamesa[indice] == paloss.palos[0] || cartasenlamesa[indice] == paloss.palos[1] || cartasenlamesa[indice] == paloss.palos[2] || cartasenlamesa[indice] == paloss.palos[3]) }
}else {
println("No forma ningun mazo, por favor, ingrese de nuevo: ")
}
return result
}
fun main() {
var cartasenlamesa : String
var leermesa : String
val jugada = arrayListOf<mazojugado>()
val jugada2 = arrayListOf<mazojugado>()
println("Mazo del primer jugador:")
do {
cartasenlamesa = readLine()!!.toString().toUpperCase()
}while (valido(cartasenlamesa))
println("Mazo del segundo jugador:")
do {
leermesa = readLine()!!.toString().toUpperCase()
}while (valido(leermesa))
jugada.add(mazojugado(valor = cartasenlamesa[0], palo = cartasenlamesa[1])) || jugada.add(mazojugado(valor = cartasenlamesa[2], palo = cartasenlamesa[3])) || jugada.add(mazojugado(valor = cartasenlamesa[4], palo = cartasenlamesa[5])) || jugada.add(mazojugado(valor = cartasenlamesa[6], palo = cartasenlamesa[7])) || jugada.add(mazojugado(valor = cartasenlamesa[8], palo = cartasenlamesa[9]))
jugada2.add(mazojugado(valor = leermesa[0], palo = leermesa[1])) || jugada2.add(mazojugado(valor = leermesa[2], palo = leermesa[3])) || jugada2.add(mazojugado(valor = leermesa[4], palo = leermesa[5])) || jugada2.add(mazojugado(valor = leermesa[6], palo = leermesa[7])) || jugada2.add(mazojugado(valor = leermesa[8], palo = leermesa[9]))
val jugadapa = jugada.sortedWith(compareBy {it.valor})
val segundaplay = jugada2.sortedWith(compareBy {it.valor})
println("Judada 1")
for (indice in jugadapa.indices)
{
print("${jugadapa[indice].valor}${jugadapa[indice].palo} ")
}
println("\nJudada 2")
for (indice in segundaplay.indices)
{
print("${segundaplay[indice].valor}${segundaplay[indice].palo} ")
}
val resultado1 = reconocerjugada(jugadapa)
val resultado2 = reconocerjugada(segundaplay)
println("\nMazo1 $cartasenlamesa es: $resultado1")
println("Mazo 2 $leermesa es: $resultado2")
println("El mejor mazo es: "+mejormazo(jugadapa, segundaplay, resultado1, resultado2))
}
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