TesujiGoFramework/UserInterface

Sub-page of TesujiGoFramework

User Interface

Introduction

Although the engine is designed to be completely separate, one needs a user-interface to use the software. GoGui is an excellent user-interface that can be used with any implementation of out GoEngine interface.

But during development it's nice to have some features that aren't available in GoGui. GoGui is open-source so it could be enhanced to suit our needs, but since it's published under a license incompatible with the licensae for this project, I've decided to create a very basic user-interface to support some development needs.

User-interfaces can become very complex and unwieldy very quickly. At least in the early stages of this project I'll attempt to keep things simple and easy to understand. More complex features may be added as we go.

Basic requirements

What we need just to get started is a Go Board that shows the current position and which we can click on to enter moves. We also need to keep a move-tree that can be navigated. And the move-tree must be able to be saved to SGF files and it should be able to read trees from SGF files.

MCV

Experience has shown that to keeps things orderly it's best to stick as much as possible to the tried-and-tested MCV approach. MCV stands for Model-Controller-View. Although we have a slightly more complex situation than average, I always try to stick to this division very strictly. The situation is slightly more complex than average because there are three parts (Go board, the move-tree and the go-engine) that need to stay synchronized. Careful followers of this project may remember the BoardModel interface, which was partly designed with user-interface purposes in mind.


This is a copy of the living page "TesujiGoFramework/UserInterface" at Sensei's Library.
(OC) 2014 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About