diff --git a/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt b/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt
index 81630ab7c46f8dbb0d6f9989f63944c7c1c52876..154b78b8fddb14f362ab340de13e377dae2d931f 100644
--- a/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt
@@ -27,6 +27,8 @@ class ListaMinijuegos : AppCompatActivity(){
         val minijuego2Layout = findViewById<FrameLayout>(R.id.minijuego2)
         minijuego2Layout.setOnClickListener {
             val intent = Intent(this, Minijuego2::class.java)
+            val flag = true
+            intent.putExtra("FLAG_KEY", flag)
             startActivity(intent)
         }
 
diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt b/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt
index d2ed23e353a2beb7e8549b890a04beb711709c17..bc7ee872507d7c9dd3ace11b1c7aa9ef2b55fe17 100644
--- a/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt
@@ -65,6 +65,7 @@ class Minijuego2 : AppCompatActivity() {
         nube = findViewById(R.id.nube)
         fondo1 = findViewById(R.id.fondo1)
         fondo2 = findViewById(R.id.fondo2)
+
     }
 
     private fun configurarAnimaciones() {
@@ -82,8 +83,8 @@ class Minijuego2 : AppCompatActivity() {
             iniciarJuego()
             protagonista.y = (layout.height / 2).toFloat()
             fondo2.x = fondo1.x + fondo1.width * 4
-            protagonista.x = protagonista.x + 40
-            nube.x = protagonista.x + 30
+            protagonista.x = protagonista.x + (layout.width*0.1).toInt()
+            nube.x = protagonista.x + (layout.width*0.03).toInt()
         }
     }
 
@@ -176,32 +177,33 @@ class Minijuego2 : AppCompatActivity() {
             velocidad = 0f
         } else if (nuevaPosicionY + protagonista.height < techoPantalla) {
             protagonista.y = nuevaPosicionY
-            nube.y = protagonista.y  + 100
+            nube.y = protagonista.y  + (layout.height*0.05).toInt()
         }
     }
 
     private fun generarObstaculo() {
+        val anchuraPantalla = layout.width
+        val alturaPantalla = layout.height
         val muroInferior = ImageView(this)
         muroInferior.setBackgroundResource(R.drawable.asi_minijuego_2_muro)
-        val screenHeight = findViewById<View>(android.R.id.content).height
-        val altualturaMuro = Random.nextInt(500, 1500)
+        val altualturaMuro = (alturaPantalla *(0.2f + Random.nextFloat() * (0.4f))).toInt()
 
         // Configurar posición y tamaño de la tubería inferior
-        val layoutParams = RelativeLayout.LayoutParams(300, altualturaMuro)
+        val layoutParams = RelativeLayout.LayoutParams((anchuraPantalla*0.3f).toInt(), altualturaMuro)
         layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
         muroInferior.layoutParams = layoutParams
         muroInferior.x = layout.width.toFloat()
-        muroInferior.y = (screenHeight - altualturaMuro).toFloat()
+        muroInferior.y = (alturaPantalla - altualturaMuro).toFloat()
         layout.addView(muroInferior)
         obstaculos.add(muroInferior)
 
         // Generar la tubería superior
         val muroSuperior = ImageView(this)
         muroSuperior.setBackgroundResource(R.drawable.asi_minijuego_2_muro)
-        val alturaMuroSuperior = screenHeight - altualturaMuro - 500
+        val alturaMuroSuperior = (alturaPantalla - altualturaMuro - alturaPantalla*0.2).toInt()
         muroSuperior.rotation = 180f
         // Configurar posición y tamaño de la tubería superior
-        val layoutParamsSuperior = RelativeLayout.LayoutParams(300, alturaMuroSuperior)
+        val layoutParamsSuperior = RelativeLayout.LayoutParams((anchuraPantalla*0.3f).toInt(), alturaMuroSuperior)
         layoutParamsSuperior.addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
         muroSuperior.layoutParams = layoutParamsSuperior
         muroSuperior.x = layout.width.toFloat()
@@ -214,15 +216,13 @@ class Minijuego2 : AppCompatActivity() {
         val obstaculosAEliminar = mutableListOf<ImageView>()
 
         for (obstaculo in obstaculos) {
-            obstaculo.x -= velObs // Mover obstáculo a la izquierda
-            // Verificar si el protagonista pasa el obstáculo
-            if (obstaculo.x + obstaculo.width == protagonista.x && obstaculo.y < protagonista.y) {
-                puntuacion++
-                puntuacionTextView.text = "Puntuación: $puntuacion"
-
-            }
+            obstaculo.x -= velObs   // Mover obstáculo a la izquierda
             // Verificar si el obstáculo sale de la pantalla
             if (obstaculo.x + obstaculo.width < 0) {
+                if(obstaculo.rotation ==180f){
+                    puntuacion++
+                }
+                puntuacionTextView.text = "Puntuación: $puntuacion"
                 obstaculosAEliminar.add(obstaculo) // Agregar a la lista de eliminación
             }
         }
@@ -247,6 +247,7 @@ class Minijuego2 : AppCompatActivity() {
     }
 
     private fun detenerJuego() {
+        val flag = intent.getBooleanExtra("FLAG_KEY", false)
         jugando = false
         soundManager.stopSound()
         soundManager.playSound(R.raw.sound_over, 100)
@@ -260,8 +261,11 @@ class Minijuego2 : AppCompatActivity() {
         val animacion = AnimationUtils.loadAnimation(this, R.anim.animatitu)
         botonReinicio.startAnimation(animacion)
 
-        // Configurar el comportamiento del botón de reinicio
-        botonReinicio.setOnClickListener {
+        if(flag){
+            botonReinicio.setOnClickListener {
+                reiniciarJuego()
+            }
+        }else{
             // Devuelve la puntuación actual y finaliza la actividad
             val resultadoIntent = Intent()
             resultadoIntent.putExtra("PUNTUACION", puntuacion.toString())
@@ -270,8 +274,6 @@ class Minijuego2 : AppCompatActivity() {
         }
     }
 
-
-    /*
     private fun reiniciarJuego() {
         // Reiniciar variables del juego
         puntuacion = 0
@@ -282,9 +284,10 @@ class Minijuego2 : AppCompatActivity() {
         for (obstaculo in obstaculos) {
             layout.removeView(obstaculo) // Eliminar cada obstáculo del layout
         }
+        botonReinicio.clearAnimation()
         botonReinicio.visibility = View.GONE // Ocultar botón de reinicio
         iniciarJuego() // Reiniciar el juego
-    }*/
+    }
 
     private fun moverFondo() {
         // Mueve ambos fondos hacia la izquierda