Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Розмістіть свій проєкт безплатно та почніть отримувати пропозиції від фрилансерів-виконавців уже через хвилини після публікації!

Гра 2048


Додатки 7

Перегляд додатків доступний тільки зареєстрованим користувачам.
  1. 92  
    5 днів2000 UAH

    Здравствуйте. Готов сделать ваш проект на WPF(C#), также могу сделать и консольный вариант.

  2. 245    17  0
    3 дні1500 UAH

    Доброго дня!
    Виконаю швидко і якісно.
    Звертайтеся, буду радий допомогти.

  3. 623    13  0
    1 день2400 UAH

    Здравствуйте, Наталья.
    Могу сделать с текстовым интерфейсом (в консоли), в соответствии с предложенной в задании архитектурой.
    Там работы от силы на день, но сделать смогу только к 6-8 апреля (возможно и раньше, но маловероятно).
    Есть несколько уточняющих вопросов (см. Обсуждение), которые можно в личке обсудить. Там же (в личке) можно обсудить стоимость и способы оплаты (если предложенные в Ставке Вас не устраивают).

  4. Ще 2 ставки приховано
  • Сергей Назаренко
    30 березня 2019, 22:34 |

    Вопросы:
    1. Не понятно откуда будуть браться имена игроков? Что-то я об этом в описании не заметил никакой информации. Имя игрока будет задаваться при входе в игру? Или перед внесением его в "Зал славы" запрашивать (как обычно в играх делали раньше)?
    2. На третьем скрине не понятно почему комбинация BAA при ходе вправо дает BB, а не С? Ведь сначала правая А падает до упора. Затем следующая А падает на нее и дает B. Затем левая B падает на нее и должна получиться C. А в примере не так. Можно более подробно расписать алгоритм перемещения и схлопывания букв?

    3. Не понятно в какой момент должна вызываться функция add_random_tile()?

  • Наталія Лешко
    31 березня 2019, 10:04 |

    1.Ім'я гравця добавляємо перед додаванням до "Залу слави".

    2.Показано тільки на прикладі букв А, якби продовжити гру, дійсно б вийшло С.

    3.Функція визивається, коли на місці пустої плитки повинна з'явитися "А" або "Б" .


  • Сергей Назаренко
    31 березня 2019, 10:51 |

    1. Т.е. имя игрока запрашивается изнутри функции save()? Я правильно понимаю?
    Переспрашиваю, т.к. архитектура решения получается некрасивая. Красивее было бы отдельной функцией проверить заслуживает ли игрок попадания в "Зал славы", и если заслуживает, то уже тогда у него запрашивается имя и без всяких проверок функцией save() он туда заносится. А так получается, что функция save() нагружается не совсем нужной ей функциональностью.
    Но это уже тонкости архитектуры. Я так понимаю, что задачу нужно выполнять в рамках имеющейся архитектуры. Поэтому и уточняю, чтобы понимать, что Архитектор понимал, что он проектировал.


    2. Вы так ничего и не объяснили - просто отписку бессмысленную бросили.
    Я не понимаю механику хода.
    Допустим, что все так, как Вы говорите - первая буква схлопывается, а остальные ждут следующего хода.
    Т.е. в примере BAA, при ходе вправо, правая буква A падает на стенку, следующая буква A схлопывается с ней, давая B, а следующая B падает на уже схлопнутую B, но не схлопывается с ней, т.к. ждет следующего хода. В результате получается BB.
    Но ведь есть еще и другой пример. AAAA, при ходе вправо, правая буква A остается возле стеночки, следующая буква A падает на нее и схлопывается, давая букву B, следующая буква A, падает на схлопнутую букву B, но не схлопывается с ней, т.к. это разные буквы, а последняя буква A, падает на предыдущую букву A, но почему-то не ждет следующего хода, как в предыдущем примере, а схлопывается давая в результате комбинацию BB.
    Причем, почему ход заканчивается на BB, без дальнейшего схлопывания - понятно - потому что уже никто ни на кого не падает, соответственно, все ждут следующего хода.
    А вот, почему в предыдущем примере буква B, упавшая на букву B, не схлопывается - мне не понятно.


    3. Такая же бессмысленная отписка. "Для чего" она вызывается - я понимаю. В задании нигде не сказано "Откуда" она вызывается? В какой момент игры?
    Например, "перед каждым ходом", "после окончания каждого хода", "после окончания хода, с вероятностью 10%" и т.п.

  • Сергей Назаренко
    31 березня 2019, 10:53 |

    Простите, в предыдущем сообщении в п.1 вместо функции save() нужно читать функция add_player().
    Опечатался 🙂

  • Профіль заблоковано
    31 березня 2019, 12:41 |

    О ГОСПОДИ, та ну, серьезно?
    сергей, поскольку мои "предположения" (я прекрасно понимал, что это и есть правильные ответы на твои вопросы, а не предположения) оказались верными, осмелюсь ответить и на эти. но можешь их не читать, нет, можешь подождать ответов заказчика. они то более информативны для тебя будут, надеюсь. так вот:

    1. учитывая опечатку add_player() => save(), ты спрашиваешь, верно ли, что имя игрока запрашивать функцией add_player()?
    ну конечно же неверно, почему ты не можешь просто прочитать внимательно ТЗ? для кого оно написано?
    там же чётко сказано, что при вызове функции add_player() в неё передаются 3 аргумента, третий из которых - объект структуры player, в котором уже хранится имя. даже 7-ой скриншот тебе говорит - посмотри внимательно, сергей, когда будешь программировать, сделай сначала такой объект, инициализируй имя, пожалуйста, а потом этот объект передай в add_player().
    а чтоб понимать что Архитектор понимал, что он проектировал - просто перечитай внимательно несколько раз ТЗ, вдумайся, нарисуй себе блок-схему, если так сложно всё даётся, можешь друзей на помощь позвать, вместе может и получится разгадать все аспекты этого задания.
    ты задаёшь вопросы, ответы на которые уже есть. так не нужно делать, заказчик не должен ничего тебе предоставлять, кроме подробного ТЗ, а здесь оно одно из самых лучших и детальных, что я видел на этом сайте. или ты думаешь, что все заказчики очень рады от того, что им задают столько ненужных вопросов?

    2. ты возмущаешься, что тебе ничего не объяснили, а сделали бессмысленную отписку? то, что ты не понимаешь механику хода, не значит, что заказчик плохо объяснил, может дело всё же в тебе? тебе же даже примеры и всю конструкцию проекта преподнесли.
    по моему мнению, всё предельно прозрачно. смотри, на начало хода у тебя есть буквы "B", "A" и "A". супер. ты делаешь ход, при котором "A" и "A" соединяются, потому что они обе были на поле ДО начала хода. в ходе нехитрых манипуляций, образуется буква "B". в это же время в неё "ударяется" вторая буква "B", которая была до начала хода, но эта "новая" буква "B" образовалась в результате хода, по-этому она не может принимать участие в формировании новой буквы до начала следующего хода. таким образом у тебя и получаются две буквы "B" рядом, но никак не буква "C". её уже можно будет сделать со следующим ходом, потому что обе они будут существовать ДО начала хода.
    аналогично обстоит ситуация и с "A""A""A""A"-примером. две буквы "B", которые возникнут В РЕЗУЛЬТАТЕ твоего хода, никак не смогут сделать "C" до начала нового хода.

    3. аналогично, просто очередной бессмысленный вопрос. сергей, стране нужны хорошие программисты с умением глубоко вникать в поставленную им задачу и думать немного самим, а не ждать, когда им абсолютно всё распишут и нарисуют (что, кстати говоря, сделано в ТЗ), а тогда уже они приступят к делу.
    представим ситуацию - запуск игры. к слову, ты не задал вопрос о том, что должно быть на игровом поле в начале игры, это меня удивило. неужели знаешь?
    если да - ответ напрашивается сам собой. в начале игры уже должен быть тайл с буквой "A" или "B", потому что нужно же с чего-то начинать, верно?
    давай вместе проанализируем это. ПЕРЕД твоим первым ходом у тебя уже есть тайл, с которым ты будешь работать. а это значит, что как только ты сделаешь ход, нужно добавлять новый тайл на рандомную свободную позицию, если такая есть, для дальнейшей игры.

    имхо, это всё можно было бы спокойно вынести из ТЗ, подробно его прочитав и хорошо вникнув.

  • Сергей Назаренко
    31 березня 2019, 15:09 |

    Дмитрий. Вот Вы такой умный, что аж жуть. Текста много написали.  А на вопросы так и не ответили.


    1. Так где же все-таки запрашивается имя пользователя? Мне кажется странным в конце игры запрашивать имя пользователя, если оно не будет добавлено в "Зал славы". А если запрашивать уже после проверки, которая внутри add_player(), то все-таки получается, что запрашивать нужно внутри add_player().


    2. ТЗ я как раз читал внимательно, в отличие от Вас.
    Цитирую:
    "Якщо можна пересуватися, всі плитки переміщуються в заданому напрямку, наскільки це можливо. Їх можна зупинити інша плитка або край ігрового поля.

    Якщо  дві плитки з однаковою буквою при перетягуванні  зустрінуться(доткнуться), утвориться наступна буква в порядку алфавіту

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

    И при этом, примеры не соответствуют описанию.


    3.  То, что функцию add_random_tile() хорошо бы вызвать перед первым ходом - логично. Хотя тут тоже могут быть нюансы. Сколько раз ее нужно вызвать перед первым ходом? А между ходами ее можно вызывать всегда (сколько раз?) или с определенной вероятностью.

    Именно с уточнением этого момента, а также, с сокращением поля вариантов задания, и был связан мой вопрос.


    Т.к. принятие решений за заказчика увеличивает риски переделок, то такая стратегия увеличивает стоимость проекта. Если же максимально выяснить все нюансы ДО начала работ (этот этап на серьезных проектах называется "Сбор требований"), то итоговая стоимость работ существенно снизится (а еще существенно увеличится вероятность успешности проекта).
    Странно, что мне приходится объяснять прописные истины такому матерому и опытному программисту, как Вы, Дмитрий.

  • Профіль заблоковано
    30 березня 2019, 23:50 |

    сергей, предполагаю, что примерно так:
    1. да, запрашивать перед добавлением, если оно будет осуществимо (логично, ведь до того момента имя не понадобится).
    2. был сделан только один мув, по-этому буквы A и A соединились вместе в B, а со следующим мувом вправо либо влево эти две B дали бы C. поиграй немного в 2048, как указанно в названии проекта, а потом уже задавай вопросы. здесь ведь аналогичная игра)
    3. опять же - поиграй в 2048 и всё поймешь. после того, как ты сделал мув в какую-то сторону и все одинаковые буквы соединились - добавляется новый тайл на рандомную свободную клетку, если такая есть. эх, похоже придётся делать ставку)

  • Сергей Назаренко
    31 березня 2019, 0:25 |

    У меня есть предположения по поводу "правильных" ответов на мои вопросы. Мне хотелось бы услышать эти ответы от Заказчика.

Актуальні фриланс-проєкти в категорії C та C++

Інженер інфраструктури резидентних проксі

Ми будуємо мережу резидентних проксі з нуля — повністю власну, без сторонніх постачальників. Нам потрібен один винятковий мережевий інженер, щоб побудувати всю технічну основу. Що ви будете будувати: - Android фоновий SDK, який маршрутизує проксі-трафік через пристрої…

C та C++DevOps ∙ 4 дні тому ∙ 13 ставок

Добробка в існуючій версії 1с роздріб блоку для РЦ(розподільчого центру))

в загальному поясню що у нас за база - Є загальний сервер де є дів база РОзница (де ставляться усі приходи) - база УТП- куди переливаються усі продажі - рахується націнка залишки по складах - маленькі бази роздрібних магазинів. по обмінам у нас Магазини обмінюються із базою…

C та C++C# ∙ 4 дні 15 годин тому ∙ 6 ставок

ПО Мастер-програма «KONSTRUCTOR»

185 490 UAH

Ми шукаємо дуже досвідченого C++ розробника для модернізації існуючого ПЗ (майстер-програми). Програма відповідає за створення виробного ПЗ, що представляє аудіо-візуальні сеанси психологічної корекції. Поточна версія написана на чистому WinAPI (Visual Studio 2019/2022).…

C та C++Десктопні додатки ∙ 9 днів 18 годин тому ∙ 19 ставок

Написання коду для Arduino

Потрібно розробити програмне забезпечення для вагового дозатора на базі Arduino Uno. Комплектуючі: Arduino Uno R3 HX711 + тензодатчик LCD1602 I2C дисплей MAX7219 світлодіодна матриця 8x32 5 кнопок керування 4-канальне реле 2 сигнальні лампи Вібромагніт грубого дозування…

C та C++Вбудовані системи та мікроконтролери ∙ 11 днів 3 години тому ∙ 15 ставок

Потрiбно доробити проект, або надати консультацiю.

1000 UAH

Потiбно розширити варiанти перекладу в даному кодi https://github.com/phuc-nt/my-translator Хто може взятися за роботу, пишiть термiни та сумму Robot answer: robots.txt

C та C++Python ∙ 11 днів 3 години тому ∙ 20 ставок

Замовник
Наталія Лешко
Україна Великий Березний
Проєкт опублікований
7 років тому
228 переглядів