Giter Club home page Giter Club logo

go's Introduction

PyGo

Implementation of the go board game in Python.

---
title: Class Diagram
---
classDiagram

    GameController <-- BoardModel
    BoardModel <-- StoneGroup
    StoneGroup <-- Stone
    GameController <-- MoveChecker
    GameController <-- PlayerView
    Stone <-- Coordinates
    StoneGroup <-- Coordinates

    class BoardModel {
        board:[[*StoneGroup]]
        groups: [StoneGroup]
        add_stone(Stone) -> None
    }

    class GameController {
        - end: bool
        - checker: MoveChecker
        - board: BoardModel
        - turns: [Stone]

        place_stone(Stone, checker) -> None
        update_board(Stone)
    }

    class MoveChecker{
        - check_ko()
        - check_sd()
        - check_onboard()
        + check_move(Stone, turns) -> Bool
    }

    class PlayerView {
        is_black: bool

        + print_board(BoardModel)
    }

    class Coordinates {
        x:int
        y:int
        get_coords() -> (int, int)
    }

    class Stone {
        is_black:bool
        location:Coordinates
        liberties:[Coordinates]

        coords() -> Coordinates
        get_liberties() -> [Coordinates]
    }

    class StoneGroup {
        is_black:bool
        stones:[Stone]
        liberties:[Coordinates]

        get_liberties() -> [Coordinates]
        num_liberties() -> int
        add_stone(Stone) -> None
        add_liberty(Coordinates) -> None
        remove_liberty(Coordinates) -> None
    }
Loading
  • TODO check which group liberty was played
  • Game End: (1) if player resigns (2) two passes in a row (3) no intersections left

go's People

Contributors

adeshkadambi avatar

Watchers

 avatar

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.