From 72ba22461a06ce6e241ce5f9c5c9dd58402de317 Mon Sep 17 00:00:00 2001 From: SalatielGenol Date: Thu, 15 Dec 2022 11:18:57 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20ejemplo=20buscaminas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ejemplosCodigo/Buscaminas.kt | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 app/src/main/java/es/genol/genol_salatiel_ex1tdist/ejemplosCodigo/Buscaminas.kt diff --git a/app/src/main/java/es/genol/genol_salatiel_ex1tdist/ejemplosCodigo/Buscaminas.kt b/app/src/main/java/es/genol/genol_salatiel_ex1tdist/ejemplosCodigo/Buscaminas.kt new file mode 100644 index 0000000..a67be44 --- /dev/null +++ b/app/src/main/java/es/genol/genol_salatiel_ex1tdist/ejemplosCodigo/Buscaminas.kt @@ -0,0 +1,62 @@ +package es.genol.genol_salatiel_ex1tdist.ejemplosCodigo + +import androidx.compose.foundation.layout.* +import androidx.compose.material.Button +import androidx.compose.material.Icon +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Face +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +val spacedByDefault = 5.dp +const val boardSize = 8 + +@Preview +@Composable +fun Buscaminas() { + Column( + Modifier.fillMaxSize().padding(10.dp), + verticalArrangement = Arrangement.spacedBy( // (1) + space = spacedByDefault, + alignment = Alignment.CenterVertically + ), + horizontalAlignment = Alignment.CenterHorizontally + ) { + repeat(boardSize) { + Row(horizontalArrangement = Arrangement.spacedBy(spacedByDefault)) { + repeat(boardSize) { + Button( + onClick = { /*TODO*/ }, + Modifier + .weight(1f) + .aspectRatio(1f) // (2) + ) { + Icon( + Icons.Default.Face, + contentDescription = null, + ) + } + } + } + } + } +} + + +/* + (1) + Para poder hacer al mismo tiempo el arrangement de centrar la column pero separar con el spaceBy + + (2) + aspectRatio fuerza la relación entre el ancho y el alto de un elemento. Si la relación es 1 (1f) + el alto y el ancho serán iguales, o sea: botones cuadrados (dejando de lado el borde redondeado). + En este caso. Adaptamos el número de botones que estipula el bucle a la pantalla al ponerles el + mismo peso, de ese modo el ancho del botón es función del tamaño de la pantalla y el número de + botones. Al forzar que sean cuadrados, ese ancho determina su alto, y por tanto el alto total del + cuadro en vertical. + + + */ \ No newline at end of file