«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2018/09/28 03:05:02  №1271249 1
>>1265163

> Задача на проверку телефонов.
> https://ideone.com/5GYxQY
То же замечание - форматируй код, так как его невозможно читать.

Идея решения правильная, но код нечитаемый.

>>1264529

> Цель: написать клон Героев 3 только лишь на пхп.

PHP не самый лучший выбор тут. PHP обычно используется для генерации страниц в ответ на HTTP-запрос.То есть ты кликнул в браузере по ссылке - отправился запрос - PHP-скрипт запустился, сгенерировал страницу, отправил ее тебе, браузер отобразил. Этот сценарий не очень стыкуется с игрой, где код постоянно работает, принимает команды пользователя, обновляет изображение.

Конечно, PHP можно заставить работать в долгоживущем режиме, но это будет тяжело, и он не предназначен для создания десктопных игр. Я предлагаю взять другую платформу, а именно что-то из этого:

- HTML5 + JS. В браузер загружается страница, на этой странице загружается JS-программа и выполняется в браузере. Она рисует изображение для игры и реагирует на действия пользователя. В теории, будет работать и на планшетах, но медленнее.
- Electron + HTML5 + JS. То же самое, только HTML-страница, JS-код и браузер упакованы в приложение. Пользователь запускает приложение, внутри него запускается встроенный браузер, отображает страницу, но для пользователя это выглядит как "настоящее" приложение.
- Pygame. Приложение-игра на Питоне, в помощь тебе дается библиотека для работы с графикой. Вроде как поддерживает десктопные ОС и Андроид.

С классами в JS не очень, потому ты можешь захотеть использовать TypeScript - надстройку над JS, которая добавляет синтаксис для классов и проверку типов. В Питоне классы есть.

Если ты не знаешь ни JS, ни Питона, то у меня есть 2 новости. Хорошая: в обоих этих языках есть многое из того, что есть в PHP - массивы, переменные, циклы, классы. Со знанием PHP учить их будет проще. Плохая: у них все же другой синтаксис и есть свои особенности.

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

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

>>1264400

> $arr1=explode('',$text);
Это неразбивает текст на буквы, а разбивает на байты. То есть, в случае кириллицы, на половинки букв.

Замену пробелов проще сделать через str_replace или strtr и без цикла.

> if ($arr1[$i]!=$arr2[$j]){
Та же проблема, ты берешь не буквы, а байты. Прочитай урок https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md

> echo "" . $result;
Тут "" не нужно.

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