Git Product home page Git Product logo

battleship's People

Contributors

axce1 avatar s9gf4ult avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

s9gf4ult

battleship's Issues

battleship #1

Make multiple battleships: you'll need to be careful because you need to make sure that you don’t place battleships on top of each other on the game board. You'll also want to make sure that you balance the size of the board with the number of ships so the game is still challenging and fun to play.

переделать 2х палубные

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

или

вообще этот твой код можно проще сделать если генерацию соседа в отдельную функцию вынести
типа сгенерировать случайного соседа

Передалеть vistrel

почему нельзя внутри vistrel вытащить korabli из модели ?
или вообще передавать модель во view
а view сама разберется что ей там рисовать

client/server

ну тут одно из двух
либо вся модель будет на стороне "сервера" а клиент будет ему верить и просто рисовать то что он говорит
либо модель делится на две части

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

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

переделать placeNearShip

[16:56:47] segfault: получается что она сама берет данные из параметра и опирается на результат функции placeNearShip которая опирается строго на данные из KORABLIKY
[16:57:14] segfault: если передашь в нее набор клеток не из KORABLIKY то выдаст не верный результат
[16:57:17] segfault: понимать ?

Иначе говоря, placeNearShip должна брать данные из параметра также как place_ship. При этом, place_ship должна передавать занятые клетки функции placeNearShip. Только тогда place_ship сможет работать с любыми данными, а не только из KORABLIKY

про генерацию кораблей

  1. Способ: сделать генерацию соседей отдельной функцией, чтобы она возвращала перемешанный список соседей, тогда можно будет отказаться от
if random.randint(0,1) == 0:

и просто подбирать соседей для каждой клетки, но это только для двухпалубных
2. Способ: вместо проверки на отсутствие клетки в занятых и не свободных, можно просто сгенерировать множество всех возможных клеток и вычесть из него множество занятых и несвободных, тогда мы получим множество свободных, и можно просто итерировать по этому множеству и проверять каждую клетку и ее соседей на наличие в свободных клетках. Но это тоже только для двухпалубных
3. Способ универсальный: Можно сгенерировать множество всех возможных позиций корабля, затем отфильтровать это множество, убрав из него те позиции, в которых корабль задевает несвободные либо занятые клетки, таким образом останется множество всех доступных позиций корабля. После этого выбираем случайное из возможных позиций. Для 2х и 3х палубных кораблей нужно учитывать возможность поворота корабля вертикальный или горизонтальный. 4х палубные бывают палочкой а бывают буквой Г, для Г - образных есть четыре варианта поворота, нужно перебирать все варианты.

battleship #2

Make battleships of different sizes: this is trickier than it sounds. All the parts of the battleship need to be vertically or horizontally touching and you’ll need to make sure you don’t accidentally place part of a ship off the side of the board.

Start screen

Добавить на стартовый экран надпись, "жми кнопку, блеа"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.