Сообщество - Задачки для изучающих Java

Задачки для изучающих Java

43 поста 1 756 подписчиков

Популярные теги в сообществе:

Простейшие задачи

Тут будут представлены простейшие задачи для набивания руки:

1) Написать простейшую программу, выводящую текст: Быть котом - круто, можно гадить по углам и лизать яйца. Любой дополнительный функционал приветcтвуется ;-)

2) Написать простейшую программу, считывающую кличку кота и выводящую фразу: "Меня зовут кот "ваше имя" мой хозяин - форменное ЧМО, думает, что он в доме главный. Однако мы - то знаем кто убирает мои какашки. Любой дополнительный функционал приветcтвуется ;-)

3) Написать простейшую программу:

Убери комментарии с части кода, чтобы на экран вывелось сообщение "Salem wants a little petting".

public class Solution {

public static void main(String[] args) {

// String s = "Salem";

// System.out.println("Vaska");

// System.out.println("little");

// System.out.print("petting");

// System.out.println("Salem" + "wants" + "a" + "little" + "petting");

// System.out.println(s);

// System.out.println(" ");

// System.out.print("wants ");

// System.out.print(" ");

// System.out.println("a");

//System.out.print("a");

//System.out.print("little ");
//System.out.print(" " + "little ");

//System.out.print(" " + "petting");

//System.out.println("petting ");

//System.out.print("petting");

}

}

Показать полностью

Решение XML-задачи

Всем привет! :)


Предыдущая задача: https://pikabu.ru/story/javazadacha_s_xml_5623623


Возможное решение с использованием JAXB и Stream API: https://gist.github.com/Generalus/716cc96c39cf7bfb7a83a9c52d...


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

Вопросы по коду задавайте в комментариях!

Java-задача с XML

Всем привет!

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


Задание: реализовать функцию со следующей сигнатурой:

Collection<String> folderNames(String xml, char startingLetter)

Она должна принимать на вход строку xml, содержащую XML-структуру, подобную этой:


<?xml version="1.0" encoding="UTF-8"?>

<folder name="c">

<folder name="program files">

<folder name="uninstall information" />

</folder>

<folder name="users" />

</folder>


а также букву startingLetter


В качестве возвращаемого значения должна быть коллекция значений всех аттрибутов name, каждая из которых начинается с буквы startingLetter.


Например, для XML выше, функция должна вернуть коллекцию с "uninstall information" и "users" (порядок не важен).


Решения добавляйте в комментариях (желательно, ссылки на github/pastebin), постараюсь првоести их код-ревью, а через некоторое время выложу свое решение.


Ну и по традиции, кот, из одного известного стикерпака ^_^

Java-задача с XML Java, Xml, Задача
Показать полностью 1
29

Создаем программу Hello World в JavaFX в IntelliJ IDEA

Пост вольный перевод статьи:

https://www.jetbrains.com/help/idea/developing-a-javafx-hell...


Для начала создаем проект JavaFX

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Выбираем JavaFX и жмем Next

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Даем имя проекту и жмем Finish.

информация с сайта http://ru.java.wikia.com/wiki/Контроллер

Контроллер - это класс, предназначенный для непосредственной обработки запросов от клиента и возвращения результатов.

Чаще всего, в самом контроллере не описывается логика обработки данных. Создаются дополнительные, сервисные классы, которые выполняют все основные задачи по обработке данных. Задача методов в контроллере - вызов сервисных методов в нужном порядке и возвращение результатов клиенту.

Основная задача методов контроллера - определить требуемое действие, корректно принять данные, корректно возвратить результат. При тестировании методов клиента рекомендуется проверять не фактическую обработку данных, а корректный вызов всех команд в методе - предполагая, что алгоритм работы этих методов продуман верно.

Файл sample.fxml отвечает за интерфейс пользователя.

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Переименовываем Controller в файле Controller.java

1. Наводим на имя класса-контроллера (Controller), выбираем Refractor->Rename и меняем имя класса-контроллера:

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Жмем enter и завершаем рефракторинг. В файле sample.fxml должно было измениться имя класса контроллера: fx:controller="sample.SampleController"

Важный момент, конструкция fx:id будет использоваться часто, она означает, что мы работаем с объектом класса Controller.

Создадим кнопку в интерфейсе пользователя, для этого в файл  sample.fxml добавим следующие сточки:

<Button text="Say 'Hello World'" onAction="#sayHelloWorld"/>

<Label GridPane.rowIndex="1" fx:id="helloWorld"/>


Возможно, понадобиться руками добавить:


<?import javafx.scene.control.Button?>

<?import javafx.scene.control.Label?>

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Как видите sayHelloWorld отмечен красным цветом, а helloWorld выделен.

Введем исправления:

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Используя встроенные функции IDEA создадим поле helloWorld в файле SampleController.java

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Жмем  enter, завершаем рефракторинг.

Далее создаем функцию sayHelloWorld встроенными способами IDEA:

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Жмем enter и завершаем рефракторинг.

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Добавляем действие в функцию sayHelloWorld:

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Результат работы программы:

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост
Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Добавим стили в нашу программу.

В файл sample.fxml добавим следующий текст:

stylesheets="/sample/sample.css"

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Встроенными методами IDEA создадим файл sample.css

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

В файл sample.css добавляем текст:

.root {

-fx-background-color: gold; //Цвет заднего фона окна

}


.label {

-fx-font-size: 20; //Высота текста Hello World

}

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост

Результат работы программы:

Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост
Создаем программу Hello World в JavaFX в IntelliJ IDEA Java, Javafx, Программирование, Графика, Длиннопост
Показать полностью 17
17

Помогите начинающему программисту JAVA

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


Буду благодарен

Интересная статья для тех, кто программирует в IntelliJ IDEA

http://info.javarush.ru/idea_help/2013/10/29/%D0%A0%D1%83%D0...


http://info.javarush.ru/idea_help/2013/08/07/IntelliJ-IDEA-%...


http://stackoverflow.com/questions/3320764/how-to-make-syste...

9

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения.

О да, я вернулся..)

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

Проект находится по адресу: https://github.com/Norfin85/TankBattle

Вся графика реализована в файле: Graphics.java.

Открытие окна происходит через стандартную для Swing процедуру:

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

С помощью SwingUtilities.invokeLater мы помещаем создание окна в очередь событий - event dispatch thread.

Основное окно использует компоновщик BoxLayout:

frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS)

и размещает панели сверху-вниз.

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


Примерная структура любого окна в Swing:

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

Структура нашего окна:

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

Параметры нашего окна определяются следующими командами:

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

Структура MainPanel:

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

На первый взгляд мудрено....

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

Рассмотрим более детально.

Внутрь MainPanel помещаются три панели - LeftPanel, CenterPanel, RightPanel, для них задаются конкретные размеры с помощью функции setPreferredSize(new Dimension(X, Y)).  Дальше простая арифметика - сумма параметров по X и Y должна равняться параметрам

X и Y MainPanel.

Внутри MainPanel используется тоже компоновщик BoxLayout, но уже по оси X, размещающий панели слева-направо.

Внутрь панелей вносятся элементы. Для позиционирования элементов я выбрал способ - создание EmptyBorder(int top, int left, int bottom, int right) и задание конкретных размеров элементов через функцию setPreferredSize(new Dimension(X, Y)).


В BottomPanel помещаются две кнопки и разносятся по сторонам через:

setAlignmentX(Component.RIGHT_ALIGNMENT)

setAlignmentX(Component.LEFT_ALIGNMENT)


Внутри элементов TextPanel размещаются элементы JTextPane. Использование данных элементов позволило стилизовать текст через следующую конструкцию:

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

StyleConstants.setAlignment(simpleAttributeSet, StyleConstants.ALIGN_LEFT)- выравнивание по левому краю.

StyleConstants.setFontSize(simpleAttributeSet, 12) - размер шрифта.

StyleConstants.setFontFamily(simpleAttributeSet, "Times New Roman, cursive") - семейство шрифта.

simpleAttributeSet.addAttribute(StyleConstants.CharacterConstants.Foreground, new Color(112, 126, 173)) - цвет шрифта.


Дляотражения имеющихся танков использованы JProgressBar-ы, в дальнейшем они будут отражать промежуточные показатели здоровья танком, а не только жив-мертв.

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост

setMinimum(0) - минимальное значение в прогресс баре.

setMaximum(100) - максимальное значение.

setValue(100) - текущее значение.

setString("Легкий танк СССР " + (i + 1)) - аннотация.


BattleList (JTextPane) мы помещаем внутрь JScrollBar и назначаем параметр jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)  - чтобы всегда отражался скролл.


Все блоки графики имеют статус private, т.е. изменения возможны только через специальный интерфейс - обычные правила хорошего тона в программировании (если судить по книжкам).


public static void setButton(String text, Boolean setActive) - меняет нашу кнопку buttom (меняет текст и делает активно/неактивной).


public static void setHealthes(Tank ussrTank, Tank germanTank) - меняет параметры здоровья в текстовых блоках слева и справа.


public static void setCurrentBattle(Tank ussrTank, Tank germanTank) - устанавливает текст текущей битвы в текстовом блоке CurrentBattle.


public static void updateFrame() - обновляем окно.


public static void updateBattleList() - обновляем battleList.


public static void startBattle() - запускает бой.


public static void setTankHealth(int id, int percent)  - устанавливает значение здоровья танка в соответствующем JProgressBar.


public static void showLog() - отображает окно лога битвы.


Лог битвы выведен на отдельную кнопку, открывающую окно лога, состоящего из JFrame и помещенного в него JScrollBar с вложенным в него JTextPane.


За сим на сегодня все..) Продолжение следует...)

Реализация программы TankBattle с использованием Swing. Часть первая - создание окна приложения. Java, Задача, Обучение, Программирование, Длиннопост
Показать полностью 9

Попробовать мобильный офис

Перейти

Мобильный офис до 100 тысяч рублей

Ноутбуки используют не только для работы: на них смотрят сериалы, редактируют фото, запускают игры и монтируют ролики. Поэтому теперь требования к устройству такие: быть легким для дороги, надежным для горящих дедлайнов и стильным, чтобы не прятать в переговорке. А еще — легко работать в связке с другими гаджетами.

Протестировали TECNO MEGABOOK K15S вместе со смартфоном TECNO CAMON 40 и наушниками TECNO в рабочих и бытовых сценариях от Zoom-звонков до перелета, а теперь рассказываем, как себя показала техника.

Первое впечатление от дизайна ноутбука

Первое, что заметно — это вес. При диагонали 15,6 дюйма и полностью металлическом корпусе K15S весит всего 1,7 кг. Это примерно на 15% меньше, чем аналоги. Устройство не обременяет ни в офисе, ни в такси. Ноутбук поместился в стандартный городской рюкзак, было удобно достать его в кафе за завтраком и по дороге в такси, чтобы быстро отработать клиентские правки.

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

Шарнир работает мягко: чтобы открыть крышку даже одной рукой, не нужно придерживать корпус. Чтобы показать коллеге или клиенту презентацию, достаточно раскрыть экран на 180°. Это удобно и для работы лежа, и для подставок, которые требуют определенного угла обзора.

Также отметим 9 портов: USB-A, USB-C, HDMI, слот для карты памяти — можно забыть о переходниках.

В TECNO MEGABOOK K15S предустановлен Windows 11. Ноутбук готов к работе сразу после включения. Никаких лишних установок и обновлений. Все настроено и оптимизировано для вашей многозадачности.

Экран: яркая картинка и комфорт ночью

Экран — 15,6 дюйма, IPS-матрица с разрешением Full HD. Углы обзора отличные: изображение остается четким, даже если смотреть сбоку, цвета не искажаются. Есть антибликовое покрытие. Тестировали ноутбук при разном освещении: можно спокойно работать у окна. Когда солнце бьет прямо в экран, текст по-прежнему остается читаемым, картинки не искажаются. Это редкость в бюджетных моделях.

Неважно, работаете вы ночью или играете, выручит клавиатура с регулируемой четырехуровневой подсветкой. При среднем уровне в темноте все видно, глаза не устают. Из плюсов для тревожных людей: включали ноутбук в самолете и электричке, никто вокруг не жаловался на яркость. Все регулируется кнопками, не нужно лишний раз заходить в настройки.

Стеклокерамический крупный тачпад — 15 см. Он не залипает, не промахивается, срабатывает с первого касания. Не возникает дискомфорта, даже если несколько часов редактировать документы без мышки. После перехода с других устройств немного непривычно, что тачпад работает в двух направлениях: нижняя часть отзывается нажатием, верхняя — касанием.

В кнопку питания встроен сканер отпечатка пальцев. К нему можно быстро привыкнуть, особенно если сидишь в опенспейсе или работаешь в дороге. Один легкий тап пускает в систему даже с мокрыми руками. Безопасно, удобно и не нужно постоянно вводить пароли.

Производительность: рендерим видео, открываем вкладки

Ноутбук работает на AMD Ryzen 7 5825U (опционально можно выбрать версию техники Intel Core i5-13420H). Восьмиядерный AMD с поддержкой 16 потоков подходит для ресурсоемких операций вроде рендеринга или работы с большими массивами данных. Встроенная графика Radeon справляется с редактированием видео в Full HD или играми.

Во время монтажа 30-минутного ролика в DaVinci Resolve и параллельной работе в Photoshop с несколькими большими PSD-файлами система сохраняла стабильность. Не было ни зависаний, ни заметного падения производительности. Ноутбук уверенно держит в фоне 10 приложений одновременно. Если запущены браузер с 20 вкладками, видеозвонок в Telegram, Excel с объемной таблицей и софт для монтажа, система не тормозит и не перегревается. Переход между окнами остается плавным, ничего не «проседает», даже при одновременном скачивании файлов и редактировании видео.

Базовая комплектация включает 16 ГБ оперативной памяти в двух слотах. При необходимости можно легко увеличить этот показатель до 32 ГБ, заменив стандартные модули на более емкие. Помимо установленного SSD на 1 ТБ предусмотрен дополнительный слот, поддерживающий диски объемом до 2 ТБ.

Чтобы во время нагрузки системы охлаждения не выходили из строя, в ноутбук встроен эффективный вентилятор, способный рассеивать до 35 Вт тепла. Устройство не греется, его спокойно можно держать на коленях. Это решение дополнено тремя режимами работы, которые переключаются простой комбинацией клавиш Ctrl+Alt+T. Тихий режим идеален для работы ночью или в общественных местах, сбалансированный подходит для повседневных задач. Производительный, на котором запускали рендеринг видео и игры, практически не шумит.

Автономность: 15 часов без подзарядки

Протестили автономность MEGABOOK K15S в условиях, знакомых каждому деловому путешественнику. Утром перед вылетом зарядили ноутбук до 100% и взяли его в рейс Москва — Калининград. В зале ожидания провели созвон, потом три часа смотрели сериал и в дороге до отеля редактировали документы. К моменту приезда оставалось 40% заряда: хватило бы еще на пару часов продуктивной работы.

MEGABOOK K15S может автономно работать до 15 часов и позволяет не оглядываться на индикатор заряда. Заявленное время достигается при типичном офисном использовании: одновременная работа с документами в Word и Excel, ведение переписки, видеоконференции, веб-серфинг.

Если все же понадобится, за  час восполняется до 70% батареи. Компактный адаптер мощностью 65 Вт на базе нитрида галлия поместился даже в карман пиджака. Один блок питания заряжает и ноутбук, и смартфон, и наушники. Экономия места: не нужно никаких дополнительных проводов.

Звук, который реально слышно

В TECNO MEGABOOK K15S установлены два мощных динамика по 2.5 Вт. Звук с глубокими низами, без пластикового дребезжания, объемный. Благодаря DTS можно смотреть видео даже в шумном помещении. В тестах специально включали сцены с шагами и выстрелами: локализация настолько точная, что в наушниках нет необходимости.

Та же стабильность и в микрофоне. Благодаря AI-шумоподавлению голос передается чисто. Во время тестовых звонков из оживленного кафе собеседник не услышал ни разговоры за соседним столом, ни городской шум. И все это — на расстоянии до пяти метров.

Кстати, о созвонах. В ноутбуке встроена обновленная камера. Она отслеживает положение лица, а еще есть физическая шторка приватности. Например, можно закрыть шторку для комфортных видеоконференций.

Для тех, кто предпочитает гарнитуру, идеально подойдут беспроводные наушники TECNO FreeHear 1 из экосистемы бренда. Когда не хотелось делиться разговорами с окружающими, подключали их. Чистый звук с акцентом на средние частоты, 11-мм драйверы, которые выдают неожиданную детализацию. Музыку слушать приятно: и фоновый плейлист на телефоне, и вечерний сериал на ноутбуке. Автономно работают наушники 6 часов, с кейсом — до 30 часов. 

Bluetooth 5.4 обеспечивает стабильное соединение на расстоянии до 10 метров. Удобная C-образная форма разработана специально для длительного ношения — после восьмичасового рабочего дня в ушах не возникает дискомфорта. Наушники поддерживают одновременное подключение к ноутбуку и смартфону. Переключение между устройствами происходит быстро и без заминок.

Через фирменное приложение Welife можно выбрать один из четырех эквалайзеров и отследить местоположение гарнитуры в случае утери. А еще кастомизировать виджет для управления наушниками. Функция настройки персонализированного дизайна доступна для устройств на Android и позволяет гибко изменить внешний вид окна подключения: вплоть до установки фоновой картинки или собственного фото.

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

Бесшовная синхронизация со смартфоном

Благодаря функции OneLeap ноутбук синхронизируется со смартфоном TECNO. Подключение происходит за пару секунд: достаточно один раз подтвердить сопряжение. После этого открывается доступ к бесшовному переключению между устройствами — объединенному буферу обмена, дублированию экранов и передаче файлов без кабелей и пересылок в мессенджерах.

Функция выручила, когда нужно было открыть приложение, у которого нет веб-версии. Удобно работает и буфер обмена: скопировал текст на одном устройстве — вставил на другом. Например, код, полученный в сообщении на телефоне, вводится в браузере на ноутбуке. Экономит минуты, а иногда и нервы. А когда в дороге пропал Wi-Fi, ноутбук сам подключился к мобильному интернету через смартфон.

TECNO CAMON 40 и сам по себе — мощный рабочий инструмент.  Смартфон выделяется камерой высокого качества 50 Мп, ярким AMOLED-экраном 120 Гц и множеством функций, которые упрощают процесс мобильной съёмки и использование искусственного интеллекта TECNO AI.

Телефон работает на HIOS 15.0.1 на базе Android 15.В фирменную оболочку встроен искусственный интеллект:

  • Голосовой помощник Ella. Отвечает на вопросы, помогает с задачами и управлением устройством.

  • Решение задач. Наводите камеру на задачу, ИИ решает ее.

  • AI Редактор фотографий. Интеллектуальная обработка в одно касание.

  • Быстрый поиск. Находит адрес на экране и запускает навигацию, распознает объекты и события, автоматически добавляет их в календарь.

Технические характеристики

  • Процессор и память. 8 ядер, 16 потоков, Кэш L3 16 МБ, частота до 4.5 ГГц Графический процессор AMD Radeon™ graphics SSD 512 ГБ или 1 ТБ, М.2, 2280, PCle 3.0 Nvme DDR4 16 ГБ, 3200 МГц.

  • Дисплей. 15.6", TFT, Full HD (1920×1080), 16:9, 280нит, 45% NTSC, 16.7 млн цветов, 60 Гц, 141 ррі.

  • Веб-камера. 1 Мп, шторка приватности.

  • Порты. 9 портов: 1*TF Card (microSD), 1*HDMI 1.4, 1*USB-A 3.1,

    1*USB-A 3.2, 1*3.5mm аудиовход, *Ethernet RJ45 до 1 Гбит, 2*Туре-С (Full Function), 1*слот для замка Kensington.

  • Другое. Сканер отпечатка пальца в кнопке питания. Клавиатура с подсветкой (4 уровня яркости). Тачпад с поддержкой одновременно 4 касаний.

  • Батарея. 70 Вт∙ч (6150 мА∙ч), Li-Pol, 11.55 B 65 Вт Type-C GaN, 20 В, 3.25 А, кабель 1.8 м (Туре-С-Type-C).

  • Габариты. 17.3 мм (высота), 359.5 мм (ширина), 236 мм (глубина).

  • Вес. 1,7 кг.


Если хотите создать собственную экосистему, в которой технологии подстроятся под ритм дня, попробуйте технику TECNO. Мощный ноутбук, быстрый смартфон и наушники соединяются в единое пространство. Быстрое переключение между устройствами, синхронизация файлов и стабильное соединение без лишних настроек.

КУПИТЬ НОУТБУК TECNO

Реклама TECNO Mobile Limited, Юридический адрес: Flat N, 16/F., Block B, Универсальный промышленный центр, 19-25 Shan MeiStreet, Fotan, New Territories, Гонконг

Показать полностью 17

Не получается решить проблему

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

https://github.com/Norfin85/TankBattle

Много чего нового - добавлена графика, изменена система боя и т.д.

Буду благодарен за помощь.)

Отличная работа, все прочитано!