Всем привет.
Решил побаловаться с Java и попробовать сделать подобие викторины, а заодно проверить себя)
И столкнулся с таким вопросом.
Есть 2 метода.
Как во втором методе использовать полученные данные первым методом?
Заранее спасибо)
Zelen353535
23 уровень
Немного не по теме)
Решен
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Zelen353535
7 октября 2022, 12:48
Всем конечно же спасибо)
Я понимаю, что это можно сделать более качественно и компактно.
Но все же я пытался сделать в рамках своих знаний, которые есть на данный момент)
Понятно, что нормальный человек вопросы для викторины в классе хранить не будет, а это будет в какой-то БД.
Ну и ArrayList я еще не изучал)
0
Денис Enterprise Java Developer
7 октября 2022, 12:59
Я вам так скажу - учитесь. Пока вы не наберете нужных инструментов в голову, даже примитивные задачки будут решаться через одно место. Стремление применить навык на практике безусловно похвально, но какой-то базис быть должен как мне кажется :)
Общая идея здесь в следующем. Вам нужна сущность вопроса, которая будет содержать в себе сам вопрос, варианты ответов, будет знать какой из вариантов верный ну и можно накинуть методов чтобы вопрос выводился в консоль вместе с вариантами и ответ валидировался. Опционально можно добавить флаг что вопрос уже отвечен, что бы он не выпадал повторно.
Второй класс непосредственно викторина - в этом классе нужен список вопросов (лучше всего наполнение реализовать через чтение внешнего файла, база данных тут ни к чему). А так же нужен main метод который эти вопросы будет перебирать и задавать пользователю. Опционально можно добавить счетчик очков и механизм рандомизации, что бы вопросы выпадали в произвольном порядке.
Список вопросов можно хранить не в ArrayList, хотя и менее удобно, но достаточно будет обычного массива. Типа Question[] questions = new Question[20]; где 20 это заданная длинна массива.
0
Zelen353535
7 октября 2022, 13:12
Спасибо большое за ответ.
Ну так и учусь)
Без методов "start()" и "play()" заработало)))
Я так понял, что один метод, не может обращаться к данным другого метода, если метод ничего не возвращает?)
0
Денис Enterprise Java Developer
7 октября 2022, 13:49
Да, ну или если они оба не работают с каким-то третьим хранилищем данных. Например массивом объектов.
+1
Денис Enterprise Java Developer
7 октября 2022, 12:36
Это вообще на каком языке написано?)
Но в целом посмотри на что-то такое:
Можно достаточно просто переделать под варианты ответов по типу игры "первый миллион".
0
Денис Enterprise Java Developer
7 октября 2022, 12:38
Ну и наполнение вопросами я бы советовал сделать через какой ни будь внешний файл типа CSV, что бы код его просто вычитывал при старте и наполнялся вопросами. Так их и модифицировать просто будет.
0
Zelen353535
7 октября 2022, 12:43
язык "java-zelen353535"))))
0
Денис Enterprise Java Developer
7 октября 2022, 12:50
Вот подправленные классы под варианты ответов:
0
Денис Enterprise Java Developer
7 октября 2022, 12:51
Ну это я так... на коленке набросал минут за 20 :) конечно же все это можно нормально упаковать.
0
Zelen353535
7 октября 2022, 11:54
Может не очень красиво), но я просто хотел проверить как это все работает.
Да, и остальные классы есть, я их просто не вставлял сюда.
0
Zelen353535
7 октября 2022, 11:53
Вот код класса Main.
0
Михаил
7 октября 2022, 12:34
введи промежуточную точку хранения. Допустим private static ArrayList<String> list в классе Main
Один метод будет заполнять данный массив, а другой читать.
Попробуй структуру программы проработать, чтобы каждый метод выполнял только одно действие.
0