Saturday, March 21, 2020

[ANDROID] Brain Trainer App

Leave a Comment
package com.example.cw.braintrainerapp;

import android.os.CountDownTimer;
import android.support.constraint.ConstraintLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Random;

public class MainActivity extends AppCompatActivity {

    ConstraintLayout gameLayout;
    Button goButton;
    int a,b;
    Random rand;
    TextView questionTextView;
    String question;
    Button option1;
    Button option2;
    Button option3;
    Button option4;
    ArrayList <Integer> options;
    Button playAgainButton;
    TextView answerTextView;
    int score,total;
    TextView scoreTextView;
    int correctOption;
    TextView timerTextView;
    CountDownTimer cnt;
    GridLayout gl;


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

        gameLayout = (ConstraintLayout) findViewById(R.id.gameLayout);
        goButton = (Button) findViewById(R.id.goButton);
        goButton.setVisibility(View.VISIBLE);
        gameLayout.setVisibility(View.INVISIBLE);

        rand = new Random();

        questionTextView = (TextView) findViewById(R.id.questionTextView);
        question = "";

        option1 = (Button) findViewById(R.id.option1);
        option2 = (Button) findViewById(R.id.option2);
        option3 = (Button) findViewById(R.id.option3);
        option4 = (Button) findViewById(R.id.option4);

        playAgainButton = (Button)findViewById(R.id.playAgainButton);
        answerTextView = (TextView)findViewById(R.id.answerTextView);
        scoreTextView = (TextView)findViewById(R.id.scoreTextView);
        timerTextView = (TextView)findViewById(R.id.timerTextView);

        gl = (GridLayout)findViewById(R.id.gridLayout);
    }

    public void optionClicked(View view)
    {
        Button bt = (Button)view;
        int i=Integer.parseInt(bt.getTag().toString());
        if(i==correctOption)
        {
            answerTextView.setText("Correct!");
            score++;
        }
        else        {
            answerTextView.setText("Incorrect");
        }
        total++;
        answerTextView.setVisibility(View.VISIBLE);
        String sc = score+"/"+total;
        scoreTextView.setText(sc);
        generateQuestion();
    }

    public void start(View view)
    {
        generateQuestion();
        goButton.setVisibility(View.INVISIBLE);
        gameLayout.setVisibility(View.VISIBLE);
        playAgainButton.setVisibility(View.INVISIBLE);
        answerTextView.setVisibility(View.INVISIBLE);

        cnt = new CountDownTimer(30000,1000) {
            @Override            public void onTick(long millisUntilFinished) {
                timerTextView.setText((millisUntilFinished/1000)+"");
            }

            @Override            public void onFinish() {
                playAgainButton.setVisibility(View.VISIBLE);
                gl.setVisibility(View.INVISIBLE);
            }
        }.start();
    }

    public void playAgain(View view)
    {
        start(view);
        score=0;
        total=0;
        scoreTextView.setText(score+"/"+total);
        gl.setVisibility(View.VISIBLE);
    }

    public void generateQuestion()
    {
            options = new ArrayList<>();

            a = rand.nextInt(21);
            b = rand.nextInt(21);

            question = a+"+"+b;
            questionTextView.setText(question);

            int j = rand.nextInt(4);
            correctOption=j;
            for (int i=0;i<4;i++)
            {
                int wrongAnswer = rand.nextInt(41);
                if(i!=j)
                {
                    while(wrongAnswer==a+b)wrongAnswer = rand.nextInt(41);
                    options.add(wrongAnswer);
                }
                else                {
                    options.add(a+b);
                }
            }
            option1.setText(Integer.toString(options.get(0)));
            option2.setText(Integer.toString(options.get(1)));
            option3.setText(Integer.toString(options.get(2)));
            option4.setText(Integer.toString(options.get(3)));
    }
}


///////////////////////////////////////////////////////////////////////////////////////
Style File 
////////////////////////////////////////////////////////////////////////////////////////

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/mainLayout"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">

    <Button        android:id="@+id/goButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@android:color/holo_green_light"        android:onClick="start"        android:padding="40dp"        android:text="GO!"        android:textSize="100sp"        android:visibility="invisible"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" />

    <android.support.constraint.ConstraintLayout        android:id="@+id/gameLayout"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent">

        <TextView            android:id="@+id/timerTextView"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="20dp"            android:layout_marginStart="20dp"            android:layout_marginTop="20dp"            android:background="@android:color/holo_orange_light"            android:padding="10dp"            android:text="30s"            android:textSize="50sp"            app:layout_constraintStart_toStartOf="parent"            app:layout_constraintTop_toTopOf="parent" />

        <TextView            android:id="@+id/scoreTextView"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginEnd="20dp"            android:layout_marginRight="20dp"            android:layout_marginTop="20dp"            android:background="@android:color/holo_blue_light"            android:padding="10dp"            android:text="0/0"            android:textSize="50sp"            app:layout_constraintEnd_toEndOf="parent"            app:layout_constraintTop_toTopOf="parent" />

        <TextView            android:id="@+id/questionTextView"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginTop="30dp"            android:text="20+30?"            android:textSize="40sp"            app:layout_constraintEnd_toEndOf="parent"            app:layout_constraintHorizontal_bias="0.5"            app:layout_constraintStart_toStartOf="parent"            app:layout_constraintTop_toTopOf="parent" />

        <GridLayout            android:id="@+id/gridLayout"            android:layout_width="match_parent"            android:layout_height="285dp"            android:layout_marginBottom="5dp"            android:layout_marginEnd="5dp"            android:layout_marginLeft="5dp"            android:layout_marginRight="5dp"            android:layout_marginStart="5dp"            android:layout_marginTop="140dp"            android:columnCount="2"            android:rowCount="2"            app:layout_constraintBottom_toTopOf="@+id/answerTextView"            app:layout_constraintEnd_toEndOf="parent"            app:layout_constraintHorizontal_bias="0.0"            app:layout_constraintStart_toStartOf="parent"            app:layout_constraintTop_toTopOf="parent">

            <Button                android:id="@+id/option1"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_column="0"                android:layout_columnWeight="1"                android:layout_gravity="fill"                android:layout_row="0"                android:layout_rowWeight="1"                android:background="@android:color/holo_red_light"                android:gravity="center"                android:onClick="optionClicked"                android:padding="20dp"                android:tag="0"                android:text="14"                android:textSize="50sp" />

            <Button                android:id="@+id/option2"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_column="1"                android:layout_columnWeight="1"                android:layout_gravity="fill"                android:layout_row="0"                android:layout_rowWeight="1"                android:background="@android:color/holo_purple"                android:gravity="center"                android:onClick="optionClicked"                android:padding="20dp"                android:tag="1"                android:text="14"                android:textSize="50sp" />

            <Button                android:id="@+id/option3"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_column="0"                android:layout_columnWeight="1"                android:layout_gravity="fill"                android:layout_row="1"                android:layout_rowWeight="1"                android:background="@android:color/darker_gray"                android:gravity="center"                android:onClick="optionClicked"                android:padding="20dp"                android:tag="2"                android:text="14"                android:textSize="50sp" />

            <Button                android:id="@+id/option4"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_column="1"                android:layout_columnWeight="1"                android:layout_gravity="fill"                android:layout_row="1"                android:layout_rowWeight="1"                android:background="@android:color/holo_green_light"                android:gravity="center"                android:onClick="optionClicked"                android:padding="20dp"                android:tag="3"                android:text="14"                android:textSize="50sp" />

        </GridLayout>

        <TextView            android:id="@+id/answerTextView"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginTop="430dp"            android:text="Correct!"            android:textSize="40sp"            app:layout_constraintEnd_toEndOf="parent"            app:layout_constraintHorizontal_bias="0.5"            app:layout_constraintStart_toStartOf="parent"            app:layout_constraintTop_toTopOf="parent" />

        <Button            android:id="@+id/playAgainButton"            android:layout_width="wrap_content"            android:layout_height="43dp"            android:layout_marginBottom="19dp"            android:layout_marginTop="4dp"            android:onClick="playAgain"            android:padding="10dp"            android:text="Play Again"            android:textSize="20sp"            app:layout_constraintBottom_toBottomOf="parent"            app:layout_constraintEnd_toEndOf="parent"            app:layout_constraintHorizontal_bias="0.5"            app:layout_constraintStart_toStartOf="parent"            app:layout_constraintTop_toBottomOf="@+id/answerTextView" />
    </android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment