Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2020 20:51:01

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Привет!
Пол года назад я написал игровую программу на Python (копия игры “Lines”).
Я выкладывал её здесь на форуме для получения советов и тестирования.
В феврале я решил сравнить языки программирования: Python и какой-нибудь компилируемый современный язык. Выбрал Java. Пришлось почитать книжки для ознакомления с этим языком.
В результате я написал такую же программу “Lines” на Java.
Выкладываю обе программы (Python и Java) для того, чтобы вы попробовали, сравнили и высказали своё мнение.
1) чувствуется ли отличие из-за разных языков или нет?
2) где меньше возни с установкой?
3) обнаружены ли какие-нибудь ошибки?
4) просто советы
Спасибо

Офлайн

#2 Июнь 3, 2020 20:51:37

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Это версия для Python

Прикреплённый файлы:
attachment Lines2All.zip (336,2 KБ)

Офлайн

#3 Июнь 3, 2020 20:52:13

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Это версия для Java 1.8

Прикреплённый файлы:
attachment Lines1_jar9.zip (127,3 KБ)

Офлайн

#4 Июнь 4, 2020 09:59:23

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Питоновская версия у меня запустилась (я аж удивился, оказывается у меня pygame уже присутствовал). Вроде, играть получается, но долго не пытался играть (меня в этих Lines всегда быстро убивали).

Вот что выдало при попытке запуска java-версии:

 >java -jar Lines1.jar
Exception in thread "main" java.awt.HeadlessException
	at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
	at java.awt.Window.<init>(Window.java:536)
	at java.awt.Frame.<init>(Frame.java:420)
	at java.awt.Frame.<init>(Frame.java:385)
	at javax.swing.JFrame.<init>(JFrame.java:189)
	at com.pumaex.GameField.<init>(GameField.java:54)
	at com.pumaex.LinesLauncher.main(LinesLauncher.java:5)
так что тут требуется пояснить, как нужно правильно запускать.

вот что у меня выдаёт на запрос версии явы, если это важно:
 >java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)



Отредактировано Striver (Июнь 4, 2020 10:02:36)

Офлайн

#5 Июнь 4, 2020 12:28:31

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Привет!
Версия подходящая.
Объясняю как нужно запускать:
1)раскрыть архив
2)jar-файл и dat-файл скопировать в одну любую папку.
3)выполнить jar-файл (двойной клик)
Если вы всё сделали так и у вас не запускается, то нужно разбираться.

Отредактировано panama555 (Июнь 4, 2020 12:29:19)

Офлайн

#6 Июнь 4, 2020 13:09:01

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Конечно, в в теме “Python для новичков” обсуждать явапроблемы как-то нехорошо, ну да пусть…

Заяндексил ошибку, которая у меня вылазит, выяснилось, что в OpenJDK нужной библиотеки просто нету.
Запустил через Java SE.
Играть получается, но выглядит так, как будто все надписи-шрифты внизу разъехались, в питоновской версии всё аккуратнее смотрится. Если что, у меня Fedora Linux.



Прикреплённый файлы:
attachment java-screen.png (99,9 KБ)

Офлайн

#7 Июнь 4, 2020 14:20:05

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Первое, что бросилось в глаза:
видимо у вас не установлен шрифт “Arial Narrow” и поэтому цифры не вмещаются.
Первый раз пишу такую программу - не ожидал, что шрифты нужно устанавливать вместе с программой.
Сделаю и исправлю.
Второе:
оказалось, что в linux другая толщина рамки окна. Из-за этого картинка заднего фона справа и внизу не влезает в окно. Вот как с этим бороться я пока что не знаю. Нужно будет разбираться.

Офлайн

#8 Июнь 4, 2020 20:30:51

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Striver
Если что, у меня Fedora Linux.

Просьба. Запустите на Linux вот эту версию. В ней вы можете использовать стрелки ВПРАВО и ВНИЗ для расширения окна. Посчитайте на сколько пикселей нужно сдвинуть границу вправо и на сколько вниз - пока не появится белый фон. Я не могу это сделать - линукса нет!

Прикреплённый файлы:
attachment Lines1_jar10.zip (127,6 KБ)

Офлайн

#9 Июнь 5, 2020 06:15:20

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

Striver
, выяснилось, что в OpenJDK нужной библиотеки просто нету
если стоят разные версии java вы можете выбрать версию по умолчанию в системе
командой (ну на ubuntu по крайней мере и да из под root -а конечшна)
 update-alternatives --config java



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#10 Июнь 5, 2020 13:03:56

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Сравните программу на Python и Java.

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

- Вправо: нужно добавить 4, с пятого появляется белое
- Вниз: нужно добавить 5, с шестого появляется белое

Бардак со шрифтами никуда не делся.

Что такое большой ноль внизу? Если это “выстрелы”, то это совсем неочевидно, да и мне это число кажется менее важным, чем собственно набранное количество в этой игре очков. Хотя я это уже не свою епархию лезу…



Отредактировано Striver (Июнь 5, 2020 13:05:12)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version