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);
}
}

Podobne dokumenty