Minggu, 09 Juni 2024

Tugas 8: Membuat Game Unscramble

 Nama    : Dilla Wahdana

NRP       : 5025211060

Kelas     : PPB B


Game Unscramble

    Aplikasi Unscramble adalah game pengacak ejaan kata untuk satu pemain. Aplikasi menampilkan kata acak, dan pemain harus menebak kata tersebut menggunakan semua huruf yang ditampilkan. Pemain akan mendapatkan poin jika kata tersebut benar. Jika tidak, pemain dapat mencoba menebak kata sebanyak-banyaknya. Aplikasi ini juga memiliki opsi untuk melewati kata saat ini. Di pojok kanan atas, aplikasi menampilkan jumlah kata, yaitu jumlah kata acak yang dimainkan dalam game saat ini. Ada 10 kata acak per game.


Untuk memahami kode awal, selesaikan langkah-langkah berikut:
  1. Buka project dengan kode awal di Android Studio.
  2. Jalankan aplikasi di perangkat Android atau di emulator.
  3. Ketuk tombol Submit dan Skip untuk menguji aplikasi.
Penjelasan Code:
  1. WordsData.kt
    File ini berisi daftar kata yang digunakan dalam game, konstanta untuk jumlah maksimum kata per game, dan jumlah poin skor pemain untuk setiap kata yang benar.
    package com.example.android.unscramble.data

    const val MAX_NO_OF_WORDS = 10
    const val SCORE_INCREASE = 20

    // Set with all the words for the Game
    val allWords
    : Set<String> =
       setOf
    (
           
    "animal",
           
    "auto",
           
    "anecdote",
           
    "alphabet",
           
    "all",
           
    "awesome",
           
    "arise",
           
    "balloon",
           
    "basket",
           
    "bench",
         
    // ...
           
    "zoology",
           
    "zone",
           
    "zeal"
    )
  2. MainActivity.kt
    File ini sebagian besar berisi kode yang dihasilkan oleh template. Anda menampilkan composable GameScreen di blok setContent{}.
  3. GameScreen.kt
    Semua composable UI ditentukan dalam file GameScreen.kt. Bagian berikut memberikan panduan tentang beberapa fungsi composable.
  4. GameStatus
    GameStatus adalah fungsi composable yang menampilkan skor game di bagian bawah layar. Fungsi composable berisi composable teks di Card. Untuk saat ini, skor di-hardcode menjadi 0.
    // No need to copy, this is included in the starter code.

    @Composable
    fun
    GameStatus(score: Int, modifier: Modifier = Modifier) {
       
    Card(
            modifier
    = modifier
       
    ) {
           
    Text(
                text
    = stringResource(R.string.score, score),
                style
    = typography.headlineMedium,
                modifier
    = Modifier.padding(8.dp)
           
    )
       
    }
    }
  5. GameLayout
    GameLayout adalah fungsi composable yang menampilkan fungsi game utama, yang mencakup kata acak, petunjuk game, dan kolom teks yang menerima tebakan pengguna.
    // No need to copy, this is included in the starter code.

    @Composable
    fun
    GameLayout(modifier: Modifier = Modifier) {
       val mediumPadding
    = dimensionResource(R.dimen.padding_medium)
       
    Card(
           modifier
    = modifier,
           elevation
    = CardDefaults.cardElevation(defaultElevation = 5.dp)
       
    ) {
           
    Column(
               verticalArrangement
    = Arrangement.spacedBy(mediumPadding),
               horizontalAlignment
    = Alignment.CenterHorizontally,
               modifier
    = Modifier.padding(mediumPadding)
           
    ) {
               
    Text(
                   modifier
    = Modifier
                       
    .clip(shapes.medium)
                       
    .background(colorScheme.surfaceTint)
                       
    .padding(horizontal = 10.dp, vertical = 4.dp)
                       
    .align(alignment = Alignment.End),
                   text
    = stringResource(R.string.word_count, 0),
                   style
    = typography.titleMedium,
                   color
    = colorScheme.onPrimary
               
    )
               
    Text(
                   text
    = "scrambleun",
                   style
    = typography.displayMedium
               
    )
               
    Text(
                   text
    = stringResource(R.string.instructions),
                   textAlign
    = TextAlign.Center,
                   style
    = typography.titleMedium
               
    )
               
    OutlinedTextField(
                   value
    = "",
                   singleLine
    = true,
                   shape
    = shapes.large,
                   modifier
    = Modifier.fillMaxWidth(),
                   colors
    = TextFieldDefaults.textFieldColors(containerColor = colorScheme.surface),
                   onValueChange
    = { },
                   label
    = { Text(stringResource(R.string.enter_your_word)) },
                   isError
    = false,
                   keyboardOptions
    = KeyboardOptions.Default.copy(
                       imeAction
    = ImeAction.Done
                   
    ),
                   keyboardActions
    = KeyboardActions(
                       onDone
    = { }
                   
    )
               
    )
           
    }
       
    }
    }
  6. GameScreen
  7. Composable GameScreen berisi fungsi composable GameStatus dan GameLayout, judul game, jumlah kata, dan composable untuk tombol Submit dan Skip.
    @Composable
    fun
    GameScreen() {
        val mediumPadding
    = dimensionResource(R.dimen.padding_medium)

       
    Column(
            modifier
    = Modifier
               
    .verticalScroll(rememberScrollState())
               
    .padding(mediumPadding),
            verticalArrangement
    = Arrangement.Center,
            horizontalAlignment
    = Alignment.CenterHorizontally
       
    ) {

           
    Text(
                text
    = stringResource(R.string.app_name),
                style
    = typography.titleLarge,
           
    )

           
    GameLayout(
                modifier
    = Modifier
                   
    .fillMaxWidth()
                   
    .wrapContentHeight()
                   
    .padding(mediumPadding)
           
    )
           
    Column(
                modifier
    = Modifier
                   
    .fillMaxWidth()
                   
    .padding(mediumPadding),
                verticalArrangement
    = Arrangement.spacedBy(mediumPadding),
                horizontalAlignment
    = Alignment.CenterHorizontally
           
    ) {

               
    Button(
                    modifier
    = Modifier.fillMaxWidth(),
                    onClick
    = { }
               
    ) {
                   
    Text(
                        text
    = stringResource(R.string.submit),
                        fontSize
    = 16.sp
                   
    )
               
    }

               
    OutlinedButton(
                    onClick
    = { },
                    modifier
    = Modifier.fillMaxWidth()
               
    ) {
                   
    Text(
                        text
    = stringResource(R.string.skip),
                        fontSize
    = 16.sp
                   
    )
               
    }
           
    }

           
    GameStatus(score = 0, modifier = Modifier.padding(20.dp))
       
    }
    }




Tidak ada komentar:

Posting Komentar

EAS PPB B

 Nama     : Dilla Wahdana NRP         : 5025211060 Kelas       : PPB B EAS PPB B Buat use case dan user flow dari aplikasi ?  i.saku adalah ...