Java Ready | Программирование
8.73K subscribers
1.26K photos
65 videos
1 file
628 links
Авторский канал по разработке на Java.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
Морской бой — делаем консольную игру!

Сделаем рабочую версию: поле 5×5, корабли расставлены, игрок стреляет по координатам. Игра сообщает “попал/мимо” и заканчивается, когда все корабли уничтожены.

Создаём поле и размещаем корабли:
int[][] field = {
{0,1,0,0,0},
{0,1,0,1,0},
{0,0,0,1,0},
{1,0,0,0,0},
{0,0,1,0,0}
};
boolean[][] shots = new boolean[5][5];
int ships = 5;


Функция вывода поля:
void print() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (shots[i][j])
System.out.print(field[i][j] == 1 ? " X " : " * ");
else
System.out.print(" . ");
}
System.out.println();
}
}


Запускаем игровой цикл:
var sc = new java.util.Scanner(System.in);

while (ships > 0) {
print();
System.out.print("Введите координаты (строка и столбец 1-5): ");
int r = sc.nextInt() - 1;
int c = sc.nextInt() - 1;


Проверяем выстрел:
    if (r < 0 || r >= 5 || c < 0 || c >= 5 || shots[r][c]) {
System.out.println("Ошибка ввода!");
continue;
}

shots[r][c] = true;


Логика попадания:
    if (field[r][c] == 1) {
System.out.println("Попал!");
ships--;
} else {
System.out.println("Мимо!");
}
}


Финал игры:
System.out.println("Все корабли уничтожены! Победа!");
sc.close();


Дальше можно прокачать игру добавив случайную генерацию кораблей и подсчёт ходов.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4🔥4
📂 Что такое Agent Skills и как устроен агентный пайплайн!

Схема иллюстрирует типовую архитектуру AI-агента: от обработки пользовательского запроса до формирования финального ответа через механизм выбора и подключения инструментов (skills).

На картинке — полный пайплайн работы AI-агента. По сути, это схема того, как LLM превращается в управляемого агента с инструментами.

Сохрани, чтобы не забыть!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥96👍5
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ Java Guide — краткий и концентрированный гайд по Java!

Основное внимание уделено современным фичам: модулям, var, pattern matching, records, sealed classes и др. Материал подаётся в компактном формате с примерами кода, что позволяет быстро разобраться в обновлениях языка и понять, как применять их на практике.

Оставляю ссылочку: GitHub 📱


👉 Java Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥98
👩‍💻 String.indent — быстрый способ привести текст к аккуратному виду!

Работа с многострочными строками часто превращается в хаос из пробелов и переносов. Метод indent позволяет централизованно управлять отступами и форматировать вывод без лишнего кода.

В сочетании с другими методами обработки строк можно легко привести текст к нужному виду: выровнять, очистить или подготовить для логов и отображения.


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥124👍4
📂 Напоминалка по Java Collections Framework!

Например, ArrayList даёт быстрый доступ по индексу, но медленно вставляет элементы в середину, а HashMap обеспечивает почти мгновенный поиск по ключу.

На картинке — основные структуры данных из Java Collections: списки, очереди, множества и мапы, а также их особенности.

Сохрани, чтобы не потерять!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥98
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Java Tutorial for Beginners — системное изучение Java с нуля!

Это полноценный учебный курс по Java, где материал подаётся последовательно и с упором на практику. Внутри разобраны основные темы: синтаксис, ООП, коллекции, работа с файлами, обработка исключений и базовые принципы разработки. Теория сопровождается примерами и заданиями, поэтому можно закреплять знания на практике.

Оставляю ссылочку: GitHub 📱


👉 Java Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🔥5
Будильник со звуком

Можно сделать простой будильник, который ждёт нужное время и включает звук.

Задаём время будильника:
LocalTime alarm = LocalTime.of(7, 30);


Проверяем текущее время в цикле:
while (true) {
LocalTime now = LocalTime.now();


Сравниваем время:
if (now.getHour() == alarm.getHour()
&& now.getMinute() == alarm.getMinute()) {


Проигрываем звук (системный):
Toolkit.getDefaultToolkit().beep();


Или свой звук:
AudioInputStream audio = AudioSystem.getAudioInputStream(new File("alarm.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audio);
clip.start();


Сообщение о срабатывании:
System.out.println("Будильник сработал!");
break;
}
Thread.sleep(1000);
}


Дальше можно развивать эту тему, добавлять GUI, и другие функции что бы превратить этот код в полноценный проект

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥5
👩‍💻 Разберем Optional API — безопасная работа!

Это заменяет проверки if (obj != null) и даёт богатую декларативную обёртку. Создавай через .of(), проверяй через .isPresent(), обрабатывай с .map(), и забудь про NullPointerException.

👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥3🤝3
👩‍💻 Напоминалка по ключевым словам Java!

Ключевые слова это зарезервированные слова языка, которые используются для описания логики программы: if, class, return, try, static и другие.

На картинке собраны все основные keywords, включая const и goto, которые зарезервированы, но не используются.

Сохрани, чтобы не путаться в синтаксисе!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍86🔥5
Подсчёт количества дней между двумя датами!

Java умеет работать с датами без ручной арифметики. Можно вычислить разницу между любыми двумя датами.

Создаём две даты через LocalDate:
var start = java.time.LocalDate.of(2025, 1, 10);
var end = java.time.LocalDate.of(2025, 3, 2);


Считаем разницу в днях через ChronoUnit:
long days = java.time.temporal.ChronoUnit.DAYS.between(start, end);
System.out.println("Дней прошло: " + days);


Можно вывести разницу в неделях и месяцах:
long weeks  = java.time.temporal.ChronoUnit.WEEKS.between(start, end);
long months = java.time.temporal.ChronoUnit.MONTHS.between(start, end);

System.out.println("Недель: " + weeks);
System.out.println("Месяцев: " + months);


🔥 Такой подход даёт точные результаты, учитывая високосные годы и длину месяцев.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥5
🏧 Создаём программу для банкомата

Это хороший пример маленького, но уже живого приложения:
пользователь вводит PIN-код, смотрит баланс, снимает деньги или пополняет счёт.

Проверяем PIN-код:
String pin = "1234";
System.out.print("Введите PIN: ");
String input = sc.nextLine();


Если PIN неверный, доступ закрыт:
if (!pin.equals(input)) {
System.out.println("Неверный PIN ");
return;
}


Стартовый баланс:
double balance = 5000;


Показываем меню действий:
System.out.println("1 - Баланс");
System.out.println("2 - Снять деньги");
System.out.println("3 - Пополнить счёт");
System.out.println("4 - Выход");


Снятие денег:
double amount = sc.nextDouble();
if (amount <= balance) {
balance -= amount;
System.out.println("Выдано: " + amount);
}


Пополнение счёта:
double amount = sc.nextDouble();
balance += amount;
System.out.println("Баланс пополнен");


Проверка остатка:
System.out.println("Ваш баланс: " + balance);


Такой пример уже очень похож на реальную логику терминала:
есть авторизация, меню, изменение состояния и обработка действий пользователя.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3🔥3👎1