|
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 105
|
||||||
Морской бой. Первая программа25.01.2020, 11:11. Показов 6123. Ответов 66
Здравствуйте.
Я начинающий в С++. Занимаюсь около 2 месяцев. Попробовал написать впервые игру "Морской бой". Пошел по пути применения функций. Без указателей. Хочу, пока, разобраться для себя так. На лишние подключения в начале программы (до Маин) прошу не обращать внимание (такой у меня шаблон перед созданием всех проектов) потом уберу лишнее. Интуитивно вижу, что кода слишком много. Буквы слева по вертикали от полей поставить смог, но пока не ставлю, для удобности ввода координат при тестах. Пока реализовал только: - функции автоматической и ручной расстановки кораблей; - функции вывода на экран полей противников; - не повторение выстрелов Компьютера в одни и те же точки; - завершение программы после набора 20 попаданий одним из противников.... Работаю над: - внешним видом кода; - внешним видом игры; - функцией обстрела Компьютером только ближних точек вокруг последнего попадания; - другими недоработками. Буду признателен за критику (которой, чувствую, будет много) и за рекомендации.
0
|
||||||
| 25.01.2020, 11:11 | |
|
Ответы с готовыми решениями:
66
Морской бой - программа зацикливается на расстановке кораблей Морской бой Морской Бой |
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
| 11.02.2020, 21:17 | |
|
Avazart, просмотрел, да есть в коробке
0
|
|
| 11.02.2020, 21:23 | ||||
|
0
|
||||
| 12.02.2020, 16:33 | ||||||||||||||||
|
То что в Qt есть поддержка для работы с вебсокетами - это замечательно. Но я должен обратить внимание на такую вещь, что .NET тоже имеет System.Net.WebSockets из коробки. Но так как я на сервере на Node.js не использую чистые вебсокеты, а использую обёртку над ними - socket.io, то я сразу стал искать обёртку над вебсокетами на стороне клиента совместимой с socket.io. Я взял первую попавшуюся библиотеку, которую установил через Nuget в VS: SocketIoClientDotNet. Я ещё поставил даже не смотря на то, что автор написал, что больше не будет развивать эту библиотеку и сам объявил её Deprecated. Но мне нужно было чтобы она заработала и помогла соединиться с удалённым сервером, который на бесплатном Heroku. Я просто заменил адрес с локального на адрес приложения по такому принципу:
Подобная обёртка над вебсокетами в виде socket.io позволяет проще работать с вебсокетами. Смотрите, как просто создать чат с сервером на Node.js/socket.io/JavaScript и с клиентом на C#: Создаём пустую папку для сервера. Заходим в папку через консоль. Вводим команды: npm init -y npm i socket.io shortid Создаём файл socket.js и копируем в него код, я написал комментарии к каждой строке:
Создаём консольный проект на C# и копируем код в Program.cs:
0
|
||||||||||||||||
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
| 14.02.2020, 12:10 | |
|
8Observer8, так тоесть ты предлагаешь вообще всю логику на сервер перенести? а про обмен данных с сервером а несколько о другом. Например как будет передоватся инфа. Значение + ключ или допустим JSON?
0
|
|
| 14.02.2020, 13:34 | |
|
Я выбрал архитектуру "авторитативный" (authoritative) сервер, так как нашёл хорошие описания этой архитектуры в статьях:Хвалят эту архитектуру. Пишут, что защиту от читерства так проще реализовать. Я развернул пример из второй статьи на Heroku: https://battle-world.herokuapp.com/?debug Здесь показаны в деле, как хорошо работают техники борьбы с сетевыми задержками, то есть лагами: предсказания движения клиента на стороне клиента и интерполяция позиций других клиентов на данном клиенте для плавности движения. На панели справа можно отключить эти методы и посмотреть, как без них. В игру можно добавить работу с базой данный MySQL (PostgreSQL, MongoDB). Бесплатные базы данные есть на Heroku. Я пробовал работать с MySQL на Heroku. Для меня простые игры - это возможность с интересом и энтузиазмом работать с GUI на HTML/CSS/Hendlebars, базы данных, паттерн MVC, графика на WebGL, язык TypeScript, Node.js/Express, сеть на вебсокетах (socket.io). Всё вместе - это наукоёмко и лучше изучать на практике, когда всё вместе и всё взаимодействует.
Я хочу написать точный клон игры танчики (Battle City) с кооперативом по интернету. Я уже очень давно собираюсь, но ни как не начну. Может лет 5 уже собираюсь. Крестики-нолики и морской бой - это начальный этап перед танчиками. Танчики я хочу делать в 3D. Создал модель в Blender ещё года 3 назад. Недавно загрузил модель танчика из Collada (.dae) формата в WebGL 1.0 на TypeScript, можно покрутить модель зажатой левой кнопкой мыши, отдалять/приближать колёсоком: https://8observer8.github.io/w... e-city-3d/ Если заинтересует шейдерный OpenGL, то лучшее и более простое объяснение, чем в этой книги я не находил: WebGL. Программирование трехмерной графики. Даже если вы из C++ используете OpenGL, то эта книга будет крайне полезной. Моя тема по WebGL: Небольшие примеры на WebGL Для удобства я перенёс все примеры из книги на JSFiddle, чтобы можно было запуска в один клик, смотреть код и экспериментировать: Исходники к книге на JSFiddle
Chapter 02. Your First Step with WebGL ch02/HelloCanvas: https://jsfiddle.net/8Observer8/2gky294r/ ch02/HelloPoint1: https://jsfiddle.net/8Observer8/cc72u1u5/ ch02/HelloPoint2: https://jsfiddle.net/8Observer8/uxw657ud/ ch02/ClickedPoints: https://jsfiddle.net/8Observer8/xf4fnc0o/ ch02/ColoredPoints: https://jsfiddle.net/8Observer8/gkkmnpga/ Chapter 03. Drawing and Transforming Triangles ch03/MultiPoint: https://jsfiddle.net/8Observer8/cty1120m/ ch03/HelloTriangle: https://jsfiddle.net/8Observer8/wk4sksnw/ ch03/HelloQuad: https://jsfiddle.net/8Observer8/g4ctyk7w/ ch03/HelloQuad_FAN: https://jsfiddle.net/8Observer8/v119e8o6/ ch03/HelloTriangle_LINES: https://jsfiddle.net/8Observer8/wwrkaxcf/ ch03/HelloTriangle_LINE_STRIP: https://jsfiddle.net/8Observer8/3ggjz4rm/ ch03/HelloTriangle_LINE_LOOP: https://jsfiddle.net/8Observer8/7vcyquro/ ch03/TranslatedTriangle: https://jsfiddle.net/8Observer8/0dp4xvyt/ ch03/RotatedTriangle: https://jsfiddle.net/8Observer8/gh9s6szm/ ch03/RotatedTriangle_Matrix: https://jsfiddle.net/8Observer8/7ze7pgpu/ ch03/ScaledTriangle_Matrix: https://jsfiddle.net/8Observer8/6xzoe63s/ Chapter 04. More Transformations and Basic Animation ch04/RotatedTriangle_Matrix4: https://jsfiddle.net/8Observer8/t4y7783v/ ch04/RotatedTranslatedTriangle: https://jsfiddle.net/8Observer8/b5yfxojp/ ch04/TranslatedRotatedTriangle: https://jsfiddle.net/8Observer8/o8voebc9/ ch04/RotatingTriangle: https://jsfiddle.net/8Observer8/x9j5vdk7/ ch04/RotatingTranslatedTriangle: https://jsfiddle.net/8Observer8/rkrv0322/ ch04/RotatingTriangle_withButtons: https://jsfiddle.net/8Observer8/wzoLmdzd/ Chapter 05. Using Colors and Texture Images ch05/MultiAttributeSize: https://jsfiddle.net/8Observer8/dsfgezbj/ ch05/MultiAttributeSize_Interleaved: https://jsfiddle.net/8Observer8/bshwnden/ ch05/MultiAttributeColor: https://jsfiddle.net/8Observer8/bveykLdf/ ch05/ColoredTriangle: https://jsfiddle.net/8Observer8/mrkpms7d/ ch05/HelloTriangle_FragCoord: https://jsfiddle.net/8Observer8/ft33yo9s/ ch05/TexturedQuad: https://jsfiddle.net/8Observer8/o3vakb3h/ ch05/TexturedQuad_Repeat: https://jsfiddle.net/8Observer8/2s7q68cc/ ch05/TexturedQuad_Clamp_Mirror: https://jsfiddle.net/8Observer8/mqu0wwma/ ch05/MultiTexture: https://jsfiddle.net/8Observer8/ztew5u0p/ Chapter 07. Toward the 3D World ch07/LookAtTriangles: https://jsfiddle.net/8Observer8/6ab11xpg/ ch07/LookAtRotatedTriangles: https://jsfiddle.net/8Observer8/944dd57h/ ch07/LookAtRotatedTriangles_modelViewMatrix: https://jsfiddle.net/8Observer8/e5t6gj1w/ ch07/LookAtTrianglesWithKeys: https://jsfiddle.net/8Observer8/38ewegg2/ ch07/OrthoView: https://jsfiddle.net/8Observer8/zebt4u7t/ ch07/LookAtTrianglesWithKey_ViewVolume: https://jsfiddle.net/8Observer8/vLcejtm1/ ch07/OrthoView_halfSize: https://jsfiddle.net/8Observer8/uvcd9h4p/ ch07/OrthoView_halfWidth: https://jsfiddle.net/8Observer8/vepodfb8/ ch07/PerspectiveView: https://jsfiddle.net/8Observer8/640pv8qe/ ch07/PerspectiveView_mvp: https://jsfiddle.net/8Observer8/w8yh4Lmj/ ch07/PerspectiveView_mvpMatrix: https://jsfiddle.net/8Observer8/hhwnx145/ ch07/DepthBuffer: https://jsfiddle.net/8Observer8/hyumw026/ ch07/Zfighting: https://jsfiddle.net/8Observer8/foc0b45t/ ch07/HelloCube: https://jsfiddle.net/8Observer8/rkpn5tyw/ ch07/ColoredCube: https://jsfiddle.net/8Observer8/80x8cyom/ ch07/ColoredCube_singleColor: https://jsfiddle.net/8Observer8/pespackq/ Chapter 08. Lighting Objects ch08/LightedCube: https://jsfiddle.net/8Observer8/4jchxo84/ ch08/LightedCube_animation: https://jsfiddle.net/8Observer8/ekw3osj7/ ch08/LightedCube_ambient: https://jsfiddle.net/8Observer8/y6qwnfe1/ ch08/LightedTranslatedRotatedCube: https://jsfiddle.net/8Observer8/pa88ujjg/ ch08/PointLightedCube: https://jsfiddle.net/8Observer8/vuq118ue/ ch08/PointLightedCube_animation: https://jsfiddle.net/8Observer8/5bj39hb8/ ch08/PointLightedSphere: https://jsfiddle.net/8Observer8/edz9Lz8f/ ch08/PointLightedSphere_perFragment: https://jsfiddle.net/8Observer8/qzwyow4j/ ch08/PointLightedCube_perFragment: https://jsfiddle.net/8Observer8/8t1umamf/ ch08/LightedCube_perFragment: https://jsfiddle.net/8Observer8/471y2t84/ Chapter 09. Hierarchical Objects ch09/JointModel: https://jsfiddle.net/8Observer8/vqse5egz/ ch09/MultiJointModel: https://jsfiddle.net/8Observer8/sL53wkn3/ ch09/MultiJointModel_segment: https://jsfiddle.net/8Observer8/ygvk7odv/ Chapter 10. Advanced Techniques ch10/RotateObject: https://jsfiddle.net/8Observer8/1f5hLmff/ ch10/PickObject: https://jsfiddle.net/8Observer8/owue624n/ ch10/PickFace: https://jsfiddle.net/8Observer8/edvw6z90/ ch10/HUD: https://jsfiddle.net/8Observer8/fLxxxs35/ ch10/3DoverWeb: https://jsfiddle.net/8Observer8/tbowcc16/ ch10/Fog: https://jsfiddle.net/8Observer8/6yf9L399/ ch10/Fog_w: https://jsfiddle.net/8Observer8/8aLvthc3/ ch10/RoundedPoints: https://jsfiddle.net/8Observer8/sjs5kmn4/ ch10/LookAtBlendedTriangles: https://jsfiddle.net/8Observer8/apoz294n/ ch10/BlendedCube: https://jsfiddle.net/8Observer8/xsrL2fs5/ ch10/ProgramObject: https://jsfiddle.net/8Observer8/jnd0j6w0/ ch10/FramebufferObject: https://jsfiddle.net/8Observer8/vaLq6d66/ ch10/Shadow: https://jsfiddle.net/8Observer8/jsnfwcae/ ch10/Shadow_highp: https://jsfiddle.net/8Observer8/brjzr00n/ ch10/Shadow_highp_sphere: https://jsfiddle.net/8Observer8/4fmyLy5f/ ch10/OBJViewer: https://jsfiddle.net/8Observer8/pws1x7uv/ ch10/RotatingTriangle_contextLost: https://jsfiddle.net/8Observer8/vs01s8Lz/ Gifts gifts/Particle: https://jsfiddle.net/8Observer8/Ltzt31vk/ gifts/Printf: https://jsfiddle.net/8Observer8/qsw7jtec/ gifts/SpecularCube: https://jsfiddle.net/8Observer8/z4xj9rbv/ gifts/TextTexture: https://jsfiddle.net/8Observer8/qt7q2kuf/ gifts/ThreeDUI: https://jsfiddle.net/8Observer8/zdw1f2st/ gifts/Wave: https://jsfiddle.net/8Observer8/eL9odthz/ gifts/WorldCoordinateSystem: https://jsfiddle.net/8Observer8/6utj3hnk/ appendix/CoordinateSystem: https://jsfiddle.net/8Observer8/dzz056jt/ Appendix appendix/CoordinateSystem_viewVolume: https://jsfiddle.net/8Observer8/apxLww1q/ appendix/LoadShaderFromFiles: https://jsfiddle.net/8Observer8/wdn9ubhj/ Текстура из Battle City с ортогональной матрицей проекции: Моя модель созданная в Blender из веб-приложения: https://8observer8.github.io/w... e-city-3d/
0
|
|
| 14.02.2020, 13:36 | |
|
0
|
|
| 14.02.2020, 13:36 | |
|
Помогаю со студенческими работами здесь
67
Морской бой Морской Бой Морской бой C++ Морской Бой на C++ Морской бой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|