Hej, pracowałem sobie w ramach praktyki nad programem do rozgrzewki mózgu przed nauką kodowania.
Program działa na zasadzie generowania prostych działań matematycznych, które użytkownik może wybrać : dodawanie, odejmowanie, mnożenie i dzielenie(do pełnej wartości). Za każdym razem użytkownik ma 3 próby.
Byłbym wdzięczny, jeśli ktoś mógłby rzucić na to okiem i wytknąć mi złe praktyki. Chciałbym od samego początku złapać dobre nawyki.
public interface IDziałania {
public int dodawanie();
public int odejmowanie();
public int mnożenie();
public int dzielenie();
}
public class Procedura extends Losowanie implements IDziałania{
public int dodawanie() {
int dod = super.getL1() + super.getL2();
return dod;
}
public int odejmowanie() {
int ode = super.getL1() - super.getL2();
return ode;
}
public int mnożenie() {
int mno = super.getL1() * super.getL2();
return mno;
}
public int dzielenie() {
int dzie = super.getL1() / super.getL2();
return dzie;
}
import java.util.Random;
public class Losowanie{
Random x = new Random();
Random y = new Random();
private int l1 = x.nextInt(99);
private int l2 = y.nextInt(99);
public int getL1() {
if (l1 > 0) {
return l1;
} else {
return l1++;
}
}
public int getL2() {
if (l2 > 0) {
return l2;
} else {
return l2++;
}
}
}
import java.util.InputMismatchException;
import java.util.Scanner;
public class Sprawdzanie {
public static final int LICZBA_PROB = 3;
private int zycia = LICZBA_PROB;
Procedura procedura = new Procedura();
public void dzialania() {
System.out.println("Wybierz numer operacji: Dodawanie[1], Odejmowanie[2], Mnożenie[3], Dzielenie[4]");
Scanner scanner1 = new Scanner(System.in);
String wybor = scanner1.nextLine();
int wynik1;
Scanner wynik = new Scanner(System.in);
switch (wybor) {
// DODAWANIE
case "1":
try {
do {
System.out.println("Podaj wynik dodawania\t" + procedura.getL1() + "+" + procedura.getL2()
+ "\tPozostała ilość prób: " + zycia);
wynik1 = wynik.nextInt();
--zycia;
if (zycia == 0) {
System.out.println("Pozostało " + zycia + " prób. " + "PRZEGRAŁEŚ :(");
System.exit(0);
}
} while (wynik1 != procedura.dodawanie());
System.out.println("BRAWO!!! :) :) :) ");
} catch (InputMismatchException ime) {
System.out.println("Żarty sobie robisz? Podaj LICZBĘ");
}
wynik.close();
break;
// ODEJMOWANIE
case "2":
try {
do {
System.out.println("Podaj wynik odejmowania\t" + procedura.getL1() + "-" + procedura.getL2()
+ "\tPozostała ilość prób: " + zycia);
wynik1 = wynik.nextInt();
--zycia;
if (zycia == 0) {
System.out.println("Pozostało " + zycia + " prób. " + "PRZEGRAŁEŚ :(");
System.exit(0);
}
} while (wynik1 != procedura.odejmowanie());
System.out.println("BRAWO!!! :) :) :) ");
} catch (InputMismatchException ime) {
System.out.println("Podaj LICZBĘ");
}
wynik.close();
break;
// MNOŻENIE
case "3":
try {
do {
System.out.println("Podaj wynik mnożenia\t" + procedura.getL1() + "*" + procedura.getL2()
+ "\tPozostała ilość prób: " + zycia);
wynik1 = wynik.nextInt();
--zycia;
if (zycia == 0) {
System.out.println("Pozostało " + zycia + " prób. " + "PRZEGRAŁEŚ :(");
System.exit(0);
}
} while (wynik1 != procedura.mnożenie());
System.out.println("BRAWO!!! :) :) :) ");
} catch (InputMismatchException ime) {
System.out.println("Podaj LICZBĘ");
}
wynik.close();
break;
// DZIELENIE
case "4":
try {
do {
System.out.println("Podaj wynik dzielenia\t" + procedura.getL1() + ":" + procedura.getL2()
+ "\tPozostała ilość prób: " + zycia);
wynik1 = wynik.nextInt();
--zycia;
if (zycia == 0) {
System.out.println("Pozostało " + zycia + " prób. " + "PRZEGRAŁEŚ :(");
System.exit(0);
}
} while (wynik1 != procedura.dzielenie());
System.out.println("BRAWO!!! :) :) :) ");
} catch (InputMismatchException ime) {
System.out.println("Podaj LICZBĘ");
}
wynik.close();
break;
default:
System.out.println("Nieznana komenda");
}
scanner1.close();
}
}
public class Gra {
public static void main(String[] args) {
Sprawdzanie sprawdzanie = new Sprawdzanie();
sprawdzanie.dzialania();
}
}
Za wszelką krytykę z góry serdecznie dziękuję :)