Zgadnij liczbe
Transkrypt
Zgadnij liczbe
package com.example.rita.zgadnijliczbe; import android.content.DialogInterface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.widget.Toast; import java.util.Random; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ int x, y; Random r; Button bplus, bminus; EditText wynik; int proby = 0; // x - liczba wylosowana, y - liczba gracza // r jest generatorem liczb losowych // przyciski // pole tekstowe // licznik prób @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); r = new Random(); bplus = (Button)findViewById(R.id.button); bminus = (Button)findViewById(R.id.button2); wynik = (EditText)findViewById(R.id.editText); bplus.setOnClickListener(this); bminus.setOnClickListener(this); init(); } @Override public void onClick(View view) { // klasa MainActivity implementuje interfejs View.OnClickListener // więc „ma obowiązek” posiadać funkcję o nazwie onClick(View v) proby++; int roznica = Math.abs(x-y); if (view.getId() == R.id.button) { // źródłem zdarzenia jest przycisk bplus y += r.nextInt(2*roznica)+1 ; } else { // źródłem zdarzenia jest przycisk bminus y -= r.nextInt(2*roznica)+1 ; } wynik.setText("Twoja = "+y+", moja = "+x); if (y<x) { bplus.setEnabled(true); bminus.setEnabled(false); } // daj więcej else if (y>x) { bplus.setEnabled(false); bminus.setEnabled(true); } // daj mniej else { bplus.setEnabled(false); // zgadza się, y == x bminus.setEnabled(false); // komunikat o odgadnięciu liczby - w oknie dialogowym Builder builder = new AlertDialog.Builder(this); builder.setMessage("Zgadza się po "+proby+" probach\nJeszcze raz?"); builder.setCancelable(false); // utworzenie i obsługa kliknięcia przyciskiu OK. w oknie dialogowym builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { init(); // zacznij grę od nowa } }); // utworzenie i obsługa kliknięcia przyciskiu NIE. w oknie dialogowym builder.setNegativeButton("Nie", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { finish(); // pozamykaj co trzeba, posprzątaj w pamięci System.exit(0); // zamknij aplikację } }); // pokaż okno dialogowe AlertDialog dialog = builder.create(); dialog.show(); // koniec kodowania okna dialogowego // zamiast AlertDialog można użyć Toast: komunikat bez przycisków, który sam znika po chwili // Toast.makeText(getApplicationContext(), " Zgadza się po "+proby+" probach", Toast.LENGTH_LONG ).show(); // init(); } // koniec obsługi przypadku gdy y==x } // koniec funkcji onClick public void init() { x = r.nextInt(100)+1; y = 0; proby = 0; bplus.setEnabled(true); bminus.setEnabled(false); wynik.setText("Twoja = "+y+", moja = "+x); } }