Android : Catch this Rabbit

Créer un Jeux catch rabbit

1.Layout

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFEB3B"
android:orientation="vertical"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="12"
android:orientation="horizontal"
android:background="#CDDC39">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:text="Start"
android:backgroundTint="#FF5722"
android:textSize="18dp"
android:id="@+id/rabbitStart"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:text="-"
android:backgroundTint="#E91E63"
android:textSize="20dp"
android:layout_marginLeft="5dp"
android:id="@+id/rabbitNiveauMoins"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:text="+"
android:backgroundTint="#9C27B0"
android:textSize="20dp"
android:layout_marginLeft="5dp"
android:id="@+id/rabbitNiveauPlus"/>

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:text="0"
android:textStyle="bold"
android:backgroundTint="#FF5722"
android:textSize="18dp"
android:gravity="center"
android:id="@+id/rabbitScore"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"
android:background="#FF9800">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit0"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit1"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:backgroundTint="#fff"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit2"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:backgroundTint="#fff"
android:layout_margin="2dp"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit3"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit4"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit5"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
</TableRow>


<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit6"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit7"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit8"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit9"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit10"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit11"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
</TableRow>

</TableLayout>
</LinearLayout>
</LinearLayout>


2.Java


public class CatchRabbit extends AppCompatActivity implements View.OnClickListener {
    //1.les objets java
        TextView rabbitScore;
        Button rabbitStart;
        Button rabbitNiveauPlus,rabbitNiveauMoins;
        ImageButton[] mescases=new ImageButton[12];
        int caseRabit=-1;
        CountDownTimer timer;
        int points=0;
        int dureeGame=1000000;//10 000 seconds
        int vitesse=1000;//seconds
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_catch_rabbit);
        //2.laision entres les objest java et les objet graphiques
            rabbitScore=findViewById(R.id.rabbitScore);
            rabbitStart=findViewById(R.id.rabbitStart);
            rabbitNiveauPlus=findViewById(R.id.rabbitNiveauPlus);
            rabbitNiveauMoins=findViewById(R.id.rabbitNiveauMoins);
   
   
            for(int i=0;i<12;i++)
            {
                int id=getResources().getIdentifier("imageRabbit"+i,"id",getPackageName());
                mescases[i]=findViewById(id);
                mescases[i].setOnClickListener(this);
   
            }
   
         //3.Ecoutez les objets cliquable
            rabbitStart.setOnClickListener(this);
            rabbitNiveauPlus.setOnClickListener(this);
            rabbitNiveauMoins.setOnClickListener(this);
   
            //permet de faire setInerval de javascript
   
            timer=new CountDownTimer(dureeGame,vitesse) {
                @Override
                public void onTick(long l) {
                //onTick s'éxécute chaque vitesse seconds
                    moveRabbit();
                }
   
                @Override
                public void onFinish() {
                //s'exécute lorsque le game is over => dureeGame est dépassé
                }
            };
        }
   
        @Override
        public void onClick(View view) {
    if(rabbitStart.getId()==view.getId())
    {
        timer.start();
    }
    if(caseRabit!=-1) {
        if (rabbitNiveauPlus.getId() == view.getId()) {
                vitesse -= 10;
   
   
   
        }
   
        if (rabbitNiveauMoins.getId() == view.getId()) {
   
                vitesse += 10;
   
   
   
        }
        rabbitScore.setText(""+vitesse);
        //arreter le compteur
        timer.cancel();
   
        //relancer le compteur
        timer=new CountDownTimer(dureeGame,vitesse) {
            @Override
            public void onTick(long l) {
                //onTick s'éxécute chaque vitesse seconds
                moveRabbit();
            }
   
            @Override
            public void onFinish() {
                //s'exécute lorsque le game is over => dureeGame est dépassé
            }
        }.start();
    }
   
   
    //lorsque on clique sur une rabbit
    for(int i=0;i<12;i++)
    {
        if(mescases[i].getId()==view.getId())
        {
            if(caseRabit==i)
            {
              points++;
            }
            else
            {
                points--;
            }
   
            rabbitScore.setText(""+points);
        }
    }
     }
   
   
   
   
   
        void moveRabbit()
        {
           //vider la case rabbit s'elle existe
            if(caseRabit!=-1)
            {
                mescases[caseRabit].setImageResource(R.drawable.viderabit);
            }
   
            //Afficher une rabit dans une case
            caseRabit=(int)Math.floor(Math.random()*11);
            mescases[caseRabit].setImageResource(R.drawable.rabit3);
   
        }
    }