كيفاش تصوب لعبة Brain Train بالاندرويد

كيفاش تصوب لعبة Brain Train بالاندرويد


فهاد الدرس من سلسلة الأندرويد غادي نشوفو كيفاش نصاوبو واحد اللعبة بسيطة سميتها Brain Train لعبة بسيطة المستخدم كيجاوب على عمليات حسابية وفالآخر يتم عرض النتيجة لي حصل عليها الهدف من هاد الدرس هو تعلم كيفاش تستخدم بعض الأدوات المهمة فلغة الجافا.

نظرة سريعة بالفيديو

- الملف activity_main.xml

أول حاجة غادي نفتح Android Studio وغادي نزيد مشروع جديد نسميه BrainTrainer من بعد غادي نمشي ل res/layout/activity_main.xml وغادي نزيد فيه الكود لي غادي يمكني من عرض الأسئلة للمستخدم و غادي يمكن المستخدم من الإجابة عليها غادي نقسم الكود لقسمين القسم الأول لي فيه واحد ل bouton لي غادي تمكن من بدأ اللعب وغادي تختفي أول ما يضغط المستخدم على إبدأ والباقي هو ل textviews لي غادي يعرضو التوقيت المتبقي والسؤال بالإضافة للإجابات الصحيحة الكود ديالو هو :

                                <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <Button
        android:id="@+id/startButton"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Go"
        android:textSize="80sp"
        android:padding="10dp"
        android:background="#48ff00"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="start"
        android:visibility="invisible" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="30s"
        android:id="@+id/timerText"
        android:textSize="50sp"
        android:background="#ff6f00"
        android:padding="10dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="19dp"
        android:layout_marginStart="9dp"
        android:layout_marginTop="15dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="12 + 24"
        android:id="@+id/operationText"
        android:textSize="30dp"
        android:textColor="#000"
        android:layout_alignBottom="@+id/timerText"
        android:layout_toRightOf="@+id/timerText"
        android:layout_toEndOf="@+id/timerText"
        android:layout_marginLeft="29dp"
        android:layout_marginStart="29dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0/0"
        android:id="@+id/score"
        android:textSize="50dp"
        android:background="#ffe100"
        android:padding="10dp"
        android:layout_marginRight="10dp"
        android:layout_alignTop="@+id/timerText"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

                            

- تتمة الملف activity_main.xml

فالجزء الثاني فهاد الملف غادي نزيدو الكود لي عبارة عن 4 ديال لBoutons لي كل وحدة غادي يكون فيها الجواب الصحيح وغادي تنفد واحد لfonction ملي يضغط عليها المستخدم باش تتحقق من الإجابة واش صحيحة او خاطئة و TextView لي غادي تمكن من عرض النتيجة المحصل عليها بالإضافة ل Bouton لي غادي تنفد واحد لfonction تمكن المستخدم من إعادة اللعب مرة أخرى الكود النهائي هو :

                                 <GridLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:columnCount="2"
        android:rowCount="2"
        android:layout_margin="10dp"
        android:layout_below="@+id/timerText"
        android:layout_alignLeft="@+id/timerText"
        android:layout_alignStart="@+id/timerText"
        android:layout_marginTop="52dp">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="3"
            android:background="#00d0ff"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:layout_gravity="fill"
            android:textSize="80sp"
            android:id="@+id/button"
            android:tag="0"
            android:onClick="chooseAnswer"
            android:layout_row="0"
            android:layout_column="0" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="4"
            android:background="#00ff00"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:layout_gravity="fill"
            android:textSize="80sp"
            android:id="@+id/button1"
            android:tag="1"
            android:onClick="chooseAnswer"
            android:layout_row="0"
            android:layout_column="1" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="5"
            android:background="#e100ff"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:layout_gravity="fill"
            android:textSize="80sp"
            android:id="@+id/button2"
            android:tag="2"
            android:onClick="chooseAnswer"
            android:layout_row="1"
            android:layout_column="0" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="6"
            android:background="#ff0004"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:layout_gravity="fill"
            android:textSize="80sp"
            android:id="@+id/button3"
            android:tag="3"
            android:onClick="chooseAnswer"
            android:layout_row="1"
            android:layout_column="1" />
    </GridLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/correct"
        android:textSize="50sp"
        android:layout_below="@+id/startButton"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="57dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Rejouer"
        android:id="@+id/playAgain"
        android:onClick="playAgain"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>
                            

- الملف MainActivity.java

فالجزء الاول من الملف لي عبارة عن الكود لي غادي يربط ما بين المتغيرات لي ف MainActivity.java والادوات لي ف activity_main.xml من بعد غادي ننفدو واحد لfonction لي غادي تمكن المستخدم من إعادة اللعب ولي كترد جميع الأدوات لوضع البدأ الكود هو :

                                package com.jbarli.contact.braintrainerapp;

import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.annotation.IntegerRes;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

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

public class MainActivity extends ActionBarActivity {
    public Button goButton,button1,button2,button3,button4,playAgain;
    public ArrayList<Integer> answers = new ArrayList<>();
    int correctAnswer;
    int incorrectAnswer;
    int score;
    int questions;
    public TextView resultTextView,scoreTextView,sumText,timerText ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        goButton = (Button) findViewById(R.id.startButton);
        button1 = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button1);
        button3 = (Button) findViewById(R.id.button2);
        button4 = (Button) findViewById(R.id.button3);
        playAgain = (Button) findViewById(R.id.playAgain);
        sumText = (TextView) findViewById(R.id.operationText);
        resultTextView = (TextView) findViewById(R.id.correct);
        scoreTextView = (TextView) findViewById(R.id.score);
        timerText = (TextView) findViewById(R.id.timerText);
        playAgain.setVisibility(View.INVISIBLE);
        playAgain(playAgain);
    }
                            

- تتمة الملف MainActivity.java

فالجزء الثاني من الملف غادي نزيدو ل fonctions الأولى غادي تمكن من التحقق من الإجابة ديال المستخدم واش صحيحة أو خاطئة وتعرض النتيجة والإجابات لي جاوب عليها المستخدم صحيحة الثانية غادي تمكن المستخدم من إعادة اللعب ولي كترد جميع الأدوات لوضع البدأ والثالثة غادي تمكن من عرض عمليات حساب عشوائية الكود النهائي هو :

                                     public void chooseAnswer(View view){
        if(view.getTag().toString().equals(Integer.toString(correctAnswer))){
            score++;
            resultTextView.setText("Correct");
        }else{
            resultTextView.setText("Incorrect");
        }
        questions++;
        scoreTextView.setText(Integer.toString(score) + "/" + Integer.toString(questions));
        generateQuestions();
    }
    public void playAgain(View view){
        score = 0;
        questions = 0;
        timerText.setText("30s");
        scoreTextView.setText("0/0");
        resultTextView.setText("");
        playAgain.setVisibility(View.INVISIBLE);
        generateQuestions();
        new CountDownTimer(30000,1000){
            @Override
            public void onTick(long millisUntilFinished) {
                timerText.setText(String.valueOf(millisUntilFinished / 1000)+"s");
            }

            @Override
            public void onFinish() {
                timerText.setText("0s");
                resultTextView.setText("Votre score est:" + Integer.toString(score)+ "/" + Integer.toString(questions));
                playAgain.setVisibility(View.VISIBLE);
            }
        }.start();
    }
    private void generateQuestions() {
        Random rand = new Random();
        int a = rand.nextInt(21);
        int b = rand.nextInt(21);
        sumText.setText(Integer.toString(a)+ "+" +b);
        correctAnswer = rand.nextInt(4);
        answers.clear();
        for(int i=0 ;i<4;i++){
            if(i == correctAnswer){
                answers.add(a+b);
            }else{
                incorrectAnswer = rand.nextInt(41);
                while (incorrectAnswer == a+b){
                    incorrectAnswer = rand.nextInt(41);
                }
                answers.add(incorrectAnswer);
            }
        }
        button1.setText(Integer.toString(answers.get(0)));
        button2.setText(Integer.toString(answers.get(1)));
        button3.setText(Integer.toString(answers.get(2)));
        button4.setText(Integer.toString(answers.get(3)));
    }
    public void start(View view){
        goButton.setVisibility(View.INVISIBLE);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

                                


بحث في الموقع


إشترك للتوصل بالجديد