Когда я был только только начинающим программистом, эту игру я писал на том языке, который изучал. При создании проекта в NetBeans получился следующий код: Code package babgame;
import java.io.BufferedReader; import java.io.InputStreamReader;
public class Main { protected static byte yourAge=0; protected static byte babAge=0; protected static byte iterator=0; Main() //Конструктор { System.out.println("Конструктор Main сработал."); do {babAge= (byte)(Math.random()*120);} while (babAge < 50); }
public boolean setAge () { String str = ""; System.out.print ("Введите ваш возраст: "); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try {str = in.readLine();} catch (Exception ex) {System.out.println("Ошибка чтения в буфер." + ex.getMessage());} try {yourAge = (byte)(Integer.parseInt(str));} catch (Exception ex) { System.out.println("Ошибка ввода, вводите 2-х значное число." + ex.getMessage()); }
if ((yourAge < 7) || (yourAge > 40)) { System.out.println ("Ваш возраст не подходит для этой игры! :)"); return (false); } else { return (true); } }
public void showAge() { System.out.println("Возраст бабки от 50 до 120 лет."); System.out.println("Вам " + yourAge + " лет."); }
public boolean compareAge (byte inputAge, byte babAge) { if (inputAge == babAge) { System.out.println("Вы угадали возраст с " + iterator + " попытки."); iterator=1; return (true); } else if (inputAge > babAge) System.out.println("Бабка младше."); else System.out.println("Бабка старше."); return (false); }
public static byte inputAge () { byte retRes=0; String str=""; iterator++; System.out.print ("(Попытка "+iterator+") "); System.out.print ("введите возраст бабки: "); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try {str = in.readLine();} catch (Exception ex) {System.out.println("Ошибка чтения в буфер." + ex.getMessage());} try {retRes=(byte)(Integer.parseInt(str));} catch (Exception ex) {System.out.println("Ошибка перевода Integer в Byte." + ex.getMessage());iterator--;} return retRes; }
public static void main(String[] args) { Main game = new Main(); boolean flag=false;
do {flag=game.setAge();} while (!flag);
if (flag) { game.showAge(); boolean result=false; do {result=game.compareAge(inputAge(), babAge);} while (!result); } else { System.out.println("Игра остановлена."); } } } Такой вот супер код. Есть 3 статических переменных отмеченных модификатором protected. Чтобы не дать пользователю работать с ними на прямую, создаём методы. setAge - Вводим возраст игрока и проверка для разрешения играть, возвращает True или False; showAge - Выводим информацию о возрасте. В принципе ненужный метод, ну да пусть будет. compareAge - Практически главный метод в программе. Сравнивает введёный предположительный возраст бабки и фактический её возраст, выводит подсказку про возраст. inputAge - Ввод возраста, вводим возраст в виде строки, метод возвращает значение с типом BYTE. Применяется в методе compareAge. Немного опишу логику. В начале создаём объект, даём ему имя game. При создании объекта выполняется конструктор, в котором задаётся возраст бабки по рандому и выводится сообщение, что конструктор сработал. Сбрасываем флаг flag и начинаем вводить свой возраст в цикле. Цикл не закончим пока возраст не будет введён в промежутке от 7 до 40. Затем выводим информацию по возрастам, далее вводим предположение и получаем подсказку или сообщение о выигрыше. Данную простенькую программку выложу в SWT. Удачи !
|