axce1 / battleship Goto Github PK
View Code? Open in Web Editor NEWPython Battleship
Python Battleship
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.
Добавить на стартовый экран надпись, "жми кнопку, блеа"
if random.randint(0,1) == 0:
и просто подбирать соседей для каждой клетки, но это только для двухпалубных
2. Способ: вместо проверки на отсутствие клетки в занятых и не свободных, можно просто сгенерировать множество всех возможных клеток и вычесть из него множество занятых и несвободных, тогда мы получим множество свободных, и можно просто итерировать по этому множеству и проверять каждую клетку и ее соседей на наличие в свободных клетках. Но это тоже только для двухпалубных
3. Способ универсальный: Можно сгенерировать множество всех возможных позиций корабля, затем отфильтровать это множество, убрав из него те позиции, в которых корабль задевает несвободные либо занятые клетки, таким образом останется множество всех доступных позиций корабля. После этого выбираем случайное из возможных позиций. Для 2х и 3х палубных кораблей нужно учитывать возможность поворота корабля вертикальный или горизонтальный. 4х палубные бывают палочкой а бывают буквой Г, для Г - образных есть четыре варианта поворота, нужно перебирать все варианты.
ну тут одно из двух
либо вся модель будет на стороне "сервера" а клиент будет ему верить и просто рисовать то что он говорит
либо модель делится на две части
одна у одного игрока вторая у другого, каждый хранит только свои корабли и сообщает попал/промазал
во втором случае придется согласовывать чей сейчас ход и все такое
в первом случае, так как модель лежит только в одном месте, изменений делать нужно будет меньше
[16:56:47] segfault: получается что она сама берет данные из параметра и опирается на результат функции placeNearShip которая опирается строго на данные из KORABLIKY
[16:57:14] segfault: если передашь в нее набор клеток не из KORABLIKY то выдаст не верный результат
[16:57:17] segfault: понимать ?
Иначе говоря, placeNearShip должна брать данные из параметра также как place_ship. При этом, place_ship должна передавать занятые клетки функции placeNearShip. Только тогда place_ship сможет работать с любыми данными, а не только из KORABLIKY
можно сделать множество всех возможных клеток и вычитать из него множество занятых и непустых
получишь множество свободных клеток
затем из него делать выборку свободных мест
например цикл по множеству, вытаскиваешь ячейку, проверяешь есть ли срези свободных соседи, если есть то берешь эту клетку и соседа, если нет то следующую клетку проверсяешь
или
вообще этот твой код можно проще сделать если генерацию соседа в отдельную функцию вынести
типа сгенерировать случайного соседа
Make your game a two-player game.
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.
почему нельзя внутри vistrel вытащить korabli из модели ?
или вообще передавать модель во view
а view сама разберется что ей там рисовать
Need change path to images
work this py3
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.