Coder Social home page Coder Social logo

connection's Introduction

Mat Moore

Hi ๐Ÿ‘‹

I'm a senior technologist with expertise in Ruby, Python and Java (and more recently, Kotlin).

Links

connection's People

Contributors

matmoore avatar

Watchers

 avatar  avatar

connection's Issues

Slopes

Every few turns stones "slip" in a certain direction, depending on the board. Stones are locked in place if there is no free space to slide into.

This can be visualised as a 3D landscape where the stones move downhill. It should be possible for stones to be captured in this way.

Menu

File
New Game
Load Game
Save Game
Exit

Edit
Undo

Game
Pass
Resign

Help
How to Play
About

Dialogs

Dialogs displayed on invalid moves and game over

Format for saving/loading game setup

Basic settings should be easy enough. Board will be more tricky. Use XML or something similar for this.

Some things that would be useful to define:

name
number of dimensions
Individual points/connnections
Points/connections which get repeated using some kind of lattice structure
Masked areas which contain no points

extras:
Ability to define connections for multiple stones using expressions like

Multiplayer games

Rengo and Multicolour go

Any kind of player can play rengo with basic settings, but anything more complicated rules out using GTP

Main window

Rather than opening a game window when the game is started, we should show a basic window that allows different sorts of games to be created.

The game creation process should allow you to separately configure the players, the board the game is played on, the rules of the game, and things like komi, handicap, and timing.

There should be a simpler way to setup standard go games - 9x9, 13x13 and 19x19 with no weird rules.

GTP games should also use the simplified version.

Heisengo

Your stone has a random chance of being placed somewhere other than where you clicked. Continuous distribution would be nice - e.g. there's a small chance it could go to the complete opposite side of the board.

0.2

Multiplayer

Multiplayer game modes

Players may be allied or enemies. There are 2 main ways a foreign stone may act towards you:

  • Friendly: the stones connect with yours and you share liberties
  • Hostile: the stones do not connect with yours.

Capturing a stone you are not hostile towards would be suicide.

A stone may also be neutral, i.e. friendly towards two sides that are hostile towards each other. This means that it will connect to both sides. If two opposing groups are linked by a neutral stone, both groups gain the liberties of the neural stone, but not each other's liberties.

Should be possible to have a game mode where you can change allegiances at any time but each side still holds their own territory and scores independently.

But there should also be a game mode where allegiances do not change and allies share territory and score.

documentation

Ensure everything is documented. Cleanup the docs for geometry and gui stuff.

Fix drawing of the board

It currently redraws the whole board once for every grid change. We either need to make the display watch the board for changes (moves) instead of the grid, or do a partial repaint instead.

Different rules

Base rules:
No liberties = stone is dead
Play order depends on team setup

Anything else can be changed

cleanup game.py

game.current_player returns player color instead of the object

Move and player objects are a mess

GTP support

Functionality to support creating & playing games against GTP players. (Some of this is already there but is no longer compatible with the current codebase)

Basic support for network play

Listen on a socket for players/connect to another host

Handle sending game setup, sending moves back and forth & marking dead stones at the end

i18n

Extract all strings and make them translatable. Add menu to switch languages. This can wait until the GUI is more developed.

3D view

2D boards as surfaces of 3D objects

Cylinder, Mobius Strip, etc.

1 colour go

You can't see your stones after they've been played. Could be made easier by having the colour stay for a few turns.

Holes

Parts of the board slowly disappear throughout the game. Stones can be destroyed or captured in this way.

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.