Programming

Membuat Aplikasi Game Sederhana di Android Studio

Halo semuanya, selamat datang di blog helmi irfansah. Kali ini saya ingin membagikan ke kalian semua mengenai cara membuat aplikasi game sederhana di android studio.

Saya membuat aplikasi game ini berdasarkan soal latihan yang saya ikuti dari VSGA Junior Mobile Programmer dengan rincian soal seperti dibawah ini:

Tugas: Membuat aplikasi sederhana yang berisi tombol dan menu seperti program game tictac atau puzzle ABC

Tugas tersebut memungkinkan para peserta yang mengikuti VSGA dapat mencapai

  1. Dapat menyesuaikan desain ukuran tombol atau menu dengan ukuran form aplikasi.
  2. Mampu menyesuaikan ukuran tombol atau menu dengan ukuran form aplikasi sesuai dengan kebutuhan aplikasi
  3. Dapat menjelaskan desain ukuran tombol atau menu disesuaikan dengan ukuran form aplikasi dibuat sesuai dengan kebutuhan aplikasi.

Dengan tugas seperti itu tentu saja saya sebagai junior pasti pusing membuatnya hehe.

Langsung aja gaes untuk mengerjakan tugas tersebut akhirnya saya mencari referensi di youtube dan akhirnya ketemu juga caranya, berikut caranya:

Source Code Aplikasi Game Sederhana

Kode dibawah ini bersumber dari youtube donaboyev dan sudah saya modifikasi dikit… sedikit cuma nambahin activity baru yang berisi nama saya sendiri dan tombol play haha.

  1. Pertama, kalian buka dahulu aplikasi android studio dan buat project baru terlebih dahulu dengan bahasa Java.
  2. Kedua, buat activity baru bernama GameActiviy

Code di activity_game.xml

Kemudian edit layout activity_game.xml dengan kode dibawah ini:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".GameActivity">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:id="@+id/group">

        <Button
            android:id="@+id/button1"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            style="@style/ButtonStyle"
            android:tag="00"
            android:onClick="buttonClick"
            android:text="@string/_1"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button2"
            android:layout_toEndOf="@id/button1"
            android:layout_alignParentTop="true"
            style="@style/ButtonStyle"
            android:tag="01"
            android:text="@string/_2"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button3"
            android:layout_toEndOf="@id/button2"
            android:layout_alignParentTop="true"
            style="@style/ButtonStyle"
            android:tag="02"
            android:text="@string/_3"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button4"
            android:layout_toEndOf="@id/button3"
            android:layout_alignParentTop="true"
            style="@style/ButtonStyle"
            android:tag="03"
            android:text="@string/_4"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button5"
            android:layout_alignParentStart="true"
            android:layout_below="@id/button1"
            style="@style/ButtonStyle"
            android:tag="10"
            android:text="@string/_5"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button6"
            android:layout_toEndOf="@id/button1"
            android:layout_below="@id/button1"
            style="@style/ButtonStyle"
            android:tag="11"
            android:text="@string/_6"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button7"
            android:layout_toEndOf="@id/button2"
            android:layout_below="@id/button1"
            style="@style/ButtonStyle"
            android:tag="12"
            android:text="@string/_7"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button8"
            android:layout_toEndOf="@id/button3"
            android:layout_below="@id/button1"
            style="@style/ButtonStyle"
            android:tag="13"
            android:text="@string/_8"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button9"
            android:layout_alignParentStart="true"
            android:layout_below="@id/button5"
            style="@style/ButtonStyle"
            android:tag="20"
            android:text="@string/_9"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button10"
            android:layout_toEndOf="@id/button1"
            android:layout_below="@id/button5"
            style="@style/ButtonStyle"
            android:tag="21"
            android:text="@string/_10"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button11"
            android:layout_toEndOf="@id/button2"
            android:layout_below="@id/button5"
            style="@style/ButtonStyle"
            android:tag="22"
            android:text="@string/_11"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button12"
            android:layout_toEndOf="@id/button3"
            android:layout_below="@id/button5"
            style="@style/ButtonStyle"
            android:tag="23"
            android:text="@string/_12"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button13"
            android:layout_alignParentStart="true"
            android:layout_below="@id/button9"
            style="@style/ButtonStyle"
            android:tag="30"
            android:text="@string/_13"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button14"
            android:layout_toEndOf="@id/button1"
            android:layout_below="@id/button9"
            style="@style/ButtonStyle"
            android:tag="31"
            android:text="@string/_14"/>

        <Button
            android:onClick="buttonClick"
            android:id="@+id/button15"
            android:layout_toEndOf="@id/button2"
            android:layout_below="@id/button9"
            style="@style/ButtonStyle"
            android:tag="32"
            android:text="@string/_15"/>

        <Button
            android:id="@+id/button16"
            android:layout_toEndOf="@id/button3"
            android:layout_below="@id/button9"
            style="@style/ButtonStyle"
            android:tag="33"
            android:background="@color/colorFreeButton"
            android:text="@string/__"/>

    </RelativeLayout>

</FrameLayout>

Code di GameActivity.java

Selanjutnya edit pada GameActivity.java dengan kode dibawah ini:

package com.example.game;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;

import java.util.Random;

public class GameActivity extends AppCompatActivity {

    private int emptyX=3;
    private int emptyY=3;
    private RelativeLayout group;
    private Button[][] buttons;
    private int[] tiles;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);

        loadViews();
        loadNumbers();
        generateNumbers();
        loadDataToViews();

    }
    private void loadDataToViews(){
        emptyX=3;
        emptyY=3;
        for (int i = 0; i < group.getChildCount() - 1; i++) {
            buttons[i/4][i%4].setText(String.valueOf(tiles[i]));
            buttons[i/4][i%4].setBackgroundResource(android.R.drawable.btn_default);

        }
        buttons[emptyX][emptyY].setText("");
        buttons[emptyX][emptyY].setBackgroundColor(ContextCompat.getColor(this,R.color.colorFreeButton));
    }
    private void generateNumbers(){
        int n=15;
        Random random = new Random();
        while (n>1){
            int randomNum = random.nextInt(n--);
            int temp = tiles[randomNum];
            tiles[randomNum]=tiles[n];
            tiles[n] = temp;

        }
        if (!isSolvable())
            generateNumbers();
    }
    private boolean isSolvable(){
        int countInversions=0;
        for (int i = 0; i <15;i++){
            for (int j = 0; j < i; j++){
                if (tiles[j]>tiles[i])
                    countInversions++;
            }
        }
        return countInversions%2 == 0;
    }
    private void loadNumbers(){
        tiles = new int[16];
        for (int i = 0; i < group.getChildCount() - 1; i++) {
            tiles[i] = i + 1;
        }
    }
    private void loadViews(){
        group=findViewById(R.id.group);
        buttons = new Button[4][4];

        for (int i = 0; i < group.getChildCount(); i++){
            buttons[i/4][i%4] = (Button) group.getChildAt(i);
        }
    }
    public void buttonClick(View view){
        Button button = (Button) view;
        int x = button.getTag().toString().charAt(0)-'0';
        int y = button.getTag().toString().charAt(1)-'0';

        if ((Math.abs(emptyX-x)==1&&emptyY==y)||(Math.abs(emptyY-y)==1&&emptyX==x)){
            buttons[emptyX][emptyY].setText(button.getText().toString());
            buttons[emptyX][emptyY].setBackgroundResource(android.R.drawable.btn_default);
            button.setText("");
            button.setBackgroundColor(ContextCompat.getColor(this,R.color.colorFreeButton));
            emptyX=x;
            emptyY=y;
            checkWin();
        }
    }
    private void checkWin(){
        boolean isWin=false;
        if (emptyX==3&&emptyY==3){
            for (int i = 0; i < group.getChildCount() - 1; i++) {
                if (buttons[i/4][i%4].getText().toString().equals(String.valueOf(i+1))){
                    isWin=true;
                }else {
                    isWin=false;
                    break;
                }
            }
        }
        if (isWin){
            Toast.makeText(this, "WIN!!!", Toast.LENGTH_SHORT).show();
            for (int i = 0; i < group.getChildCount(); i++) {
                buttons[i/4][i%4].setClickable(false);
            }
        }
    }
}

Sudah jadi deh kalian bisa lihat hasil dari program diatas ialah seperti video dibawah ini:

Nah untuk penjelasan dari kode diatas sepertinya dipending dulu yaaa, saya juga rada gapaham nih yang penting jadi aja hahaha.

Pada layout activity_main.xml saya hanya menambahkan layout text dan button yang mengarahkan ke game tersebut.

Kemudian MainActivity dapat kalian cek sendiri di github saya deh https://github.com/helmirfansah/Game itu saja mungkin yang bisa saya share pada artikel kali ini.

Doakan saya bisa lanjut sertifikasi BNSP wkwk

Sekian artikel cara membuat game sederhana di android studio apabila ada yang kurang paham silahkan bisa menghubungi saya atau jika ada kesalahan pada artikel mohon untuk dimaafkan, Terima kasih sudah berkunjung :D.

Photo of admin

admin

Seorang penulis blog newbie, Terima kasih sudah berkunjung dan meluangkan waktunya untuk membaca tulisan saya :D

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button