Professional Documents
Culture Documents
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Munyaradzi T Nyahwo
14 May 2015
Supervisor: None
(Self-Study)
Page 1 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Content Page
Contents
Content Page........................................................................................................................................... 2
Summary ................................................................................................................................................. 3
1. Introduction .................................................................................................................................... 4
1.1 Aims and Objectives ................................................................................................................ 4
1.2 Deliverables............................................................................................................................. 4
2. Literature Review ............................................................................................................................ 6
2.1 Chess ....................................................................................................................................... 6
2.2 Benefits of Chess ..................................................................................................................... 6
2.3 Learning Chess ........................................................................................................................ 6
2.4 Chess Strategy ......................................................................................................................... 7
2.4.1 Relative value of pieces................................................................................................... 7
2.4.2 Development................................................................................................................... 8
2.4.3 Pawn Structure................................................................................................................ 8
2.4.4 Control of the Centre ...................................................................................................... 8
2.4.5 Capability of the Pieces ................................................................................................... 8
2.4.6 Where the Kings are located ........................................................................................... 8
2.4.7 Space ............................................................................................................................... 8
3. Methods .......................................................................................................................................... 9
3.1 Application Development Overview ....................................................................................... 9
3.1.1 Programming Language and Technology ........................................................................ 9
3.1.2 Software Development Process ...................................................................................... 9
3.1.3 User Interface Design Approach ................................................................................... 10
3.1.4 Application Distribution ................................................................................................ 10
3.2 Application Development Process ........................................................................................ 10
3.2.1 Requirements Analysis .................................................................................................. 10
3.2.2 Application Design ........................................................................................................ 13
3.2.3 Implementation ............................................................................................................ 15
3.2.4 Integration and Testing ................................................................................................. 18
3.2.5 Deployment................................................................................................................... 18
3.2.6 Maintenance ................................................................................................................. 18
Page 2 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Summary
The game of chess has been played since the 6th century. It is undoubtedly one of the
most popular of board games to date. The last World Chess Championship matched was
played in 2014 between Magnus Carlsen and Viswanathan Anand in Sochi, Russia, was
followed real time by hundreds of thousands of enthusiasts worldwide.
The world of chess has benefited greatly from computers and the internet. Chess
playing programs have been used by the whole spectrum of players from learners to
grandmasters for learning and practicing. The internet has provided an affordable
platform allowing players in different geographical locations to compete or exchange
knowledge. The internet has also made it possible for chess match games to be
broadcast live to a vast audience on varied internet capable devices including
smartphones, tablet computers, laptops, desktops etc, in real time.
However, a lot of chess teaching software available to date focuses on the aspects of the
game such as the openings, tactics and the endgame. Whilst these are critical areas of
the game, the area of positional chess strategy is less supported. The default teaching
resource of this area remains largely to be chess literature and other media, but not
software itself. This project embarked on developing a working prototype that
endeavours to fill that gap. Whilst potential users of such piece of software would
probably the whole range of players i.e. from learners to grandmasters, for feasibility
sake, due to time constrains, this study was limited to providing an application aimed at
amateurs.
Thus, a working chess learning aid prototype application was developed and made a
available to chess players via the internet. Users provided feedback about their
experience of the application by way of a self-administered online questionnaire. The
application and application information was published to the internet using a dedicated
website address: http://www.poschess.com/
Page 3 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
The work carried out in this project did indicate that an application of this type has the
potential to help amateurs improve their understanding of positional chess play. Also,
some good features, which were not present in the prototype, were obtained from the
feedback. These are useful and could be incorporated in the development of the full
application.
The project also illustrates the risk of technology choice as the Silverlight plug-in
support in Chrome (a Google browser) was dropped in the latest version just before the
application was deployed. Important lessons of mitigating such risk were learned.
1. Introduction
1.1 Aims and Objectives
The overall aim of this project is to investigate whether a web-based working prototype
application can aid amateur chess players quickly grasp the basics of positional chess
play principles.
1.2 Deliverables
In meeting the above-stated objectives, the following deliverables will be produced:
Page 4 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Page 5 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
2. Literature Review
2.1 Chess
The game of chess is one of the oldest and most popular of board games. It was
invented in India in the 6th century and later spread other parts of the world (Murray,
2012).
Chess is a strategy, turn-based board game played by two opponents. One player
manoeuvres the White pieces whilst the other, the Black pieces. The ultimate objective
of the game is to trap the opposing King - a position termed "checkmate".
What keeps the game particularly interesting and 'unending' is that the very high
possibility a unique game being played each time. In 1950, Claude Shannon calculated
the number of possible chess games of 40 moves or less to be 1043 (Shannon, 1950).
This figure, known as the "Shannon Number", also hints at why to date the game has not
been exhaustively searched despite the vast computing resources available.
After learning the rules, players can play chess correctly. If any of the rules are broken
during game - it is not considered as a chess legitimate game, (Schiller, 2012)
One of the main ways players improve is by learning from their games. Whilst games
can be recalled from memory it is usually more reliable to record games using one of the
Page 6 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
chess notations. Game reviewing can make use of computer software which can point
out better moves or missed opportunities.
Whilst new players can improve their chess skills by self discovery as they play
successive games, they will also do well to learn from established chess strategies and
principles.
The above mentioned are considered positional as opposed to tactical elements. This
study focuses on the former.
Piece Value
Queen 9
Rook 5
Bishop 3
Knight 3
Pawn 1
Table 2-1: The relative value of the different pieces
The value of each piece indicates its fighting capabilities and is an important
consideration when deciding to engage in an exchange. For instance it would not be
wise to exchange a Queen for a Pawn. Of course, if such an exchange wins the game or
offers some decisive compensating advantage then it could be considered worthwhile.
The Table omits the King - this is because the value of the King is somewhat not
straight-forward. Firstly, a King cannot be captured thus cannot be involved in an
exchange where he is captured like the other pieces. Secondly, since the game outcome
depends on the which side first traps the opposing King in a checkmate position, the
King's value could be said to be worth the game. However, in the end game, the fighting
value of a King is considered to be 4, since in that phase of the game when he is less
likely to be checkmated, the king assumes an attacking role stronger than a knight or a
Bishop but weaker than a Rook.
Page 7 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
2.4.2 Development
The initial starting position of pieces means that they exert no threat for either side and
opportunity is equally balanced. However, as pieces are moved from their starting
positions to more influential squares, the battle for positional supremacy is underway.
This moving from the starting positions is termed "development". Generally, the more
developed side will sooner find themselves with more opportunities than the less
developed side - this being advantage.
2.4.7 Space
The space available to a given side is determined by how far into the enemy territory
the pawns have advanced. The notion of space in chess strategy is usually less
appreciated by amateurs (Silman, 2010). The side with more space will find themselves
with more freedom to move their pieces, thus more space equals a more active position.
Page 8 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
3. Methods
Silverlight allowed the writing of desktop-like code that will run in a browser.
Also, if the application were to be written in HTML and JavaScript, there would be the
further hurdle of more extensive testing to ensure that it displays and functions the
same in the different major browsers - this being costly in terms of time and effort. On
the other hand, as long as a browser supports the Silverlight plug-in, the look and feel of
the application is usually guaranteed to be consistent across different browsers.
The requirements are anticipated to be well known, clear and will not be
changing.
The technology to be employed is well understood and is tried and tested.
The target application is a functioning prototype as opposed to a full application
so the project is short as opposed to a long and on-going project.
The risk is low because the application will be a prototype.
Only one developer (the researcher) will carry out the work.
Testing by the researcher will help ensure that a usable application is produced. This
will involve specifying test cases that cover the different scenarios the application is
expected meet when in use.
Page 9 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
1. Requirements Analysis - to specify what features the application should provide. This
will include both the functional and non-functional requirements and will be sourced
from the literature review and researchers chess playing experience.
2. System Design - to specify the application architecture and User Interface elements.
Algorithm design will be carried out at this phase too.
3. Implementation - to develop and code the application.
4. Integration and Testing - to integrate and test the application units. This will also
involve full application testing.
5. Deployment - to set up a website and deploy the application on the internet.
6. Maintenance - to ensure availability to users and to resolve issues they may raise. This
may involve making patches.
The requirements where gathered mainly from the literature review and the researchers chess
knowledge and experience. The following functional and non-functional requirements where
defined for the application:
Note that other requirements like providing application help and information is not included here
because they are to be implemented as content of the app hosting website.
Page 11 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Page 12 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
It was clear that a considerable amount of coding will need to be undertaken. Therefore the code
needed to be split up into modules that could be managed more easily. In .Net each module
translates to a project in the .Net solution. The project modules are as follows:
Module Description
PosChess.Silverlight Implements Silverlight application logic. This includes the user interface
components and the actual Silverlight frame that houses the app.
Page 13 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
This would be composed of a main frame which will be embedded/hosted in a webpage on the
website.
Page 14 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
3.2.3 Implementation
The application was implemented using and a free version of Microsoft Visual Studio Community
2013 - an Integrated Development Environment. As mentioned above, the coding language was C#.
For full source code listing see Appendix: Source Code.
The app was named "PosChess" and its website domain name registered was "www.poschess.com".
At implementation it was encountered that other additional minor classes and methods needed to
be included. Also, minor user interface modifications were made as seen fit.
Page 15 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Page 16 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Page 17 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
1. The app should allow only valid moves to be made on the board.
2. Interaction with the move list works correctly
3. Loading of games from file works correctly
4. Loading of sample game works correctly
5. Positional information graphs work correctly
6. Issue lists work correctly
Where tests failed, the faulty code was identified, fixed and tests re-run. All tests were passing
before the application was deployed.
3.2.5 Deployment
The application was deployed to the internet as follows:
3.2.6 Maintenance
Minor bug fixes to the application were made to the application after it had been deployed. Also, the
button "Go to Questionnaire" was added to the "Actions" panel to encourage users to answer the
questionnaire.
An additional requirement for the website was that it should log its traffic with Google Analytics - a
free traffic recording and reporting service provided by Google. (Google)
Page 18 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
Page Description
About Provides information about application and project and researcher name.
Help Provides the help content on how to use the application and link to install
required Silverlight plugin.
Table 3-3: Names and descriptions of pages provided via the website
3.5 Questionnaire
A self-administered online questionnaire will be used to obtain feedback on the application
from users. This will be appropriate for this project since the application itself will be
distributed to a chess playing audience scattered across the world via the internet. A much
more considerable effort would be required to carry out a survey using other methods that are
Page 19 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
none self-administered and online. The self-administered nature of the questionnaire will afford
convenience to participators since they can go through the survey at times of their own
choosing - it was hoped that this will encourage more participation. Because of the digital
information that is captured in the online survey the data will be in a format readily compatible
with analysis programs as opposed to non-digital information.
Page 20 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
4. Results
sllslsls
Page 21 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
5. Discussion
dff
Page 22 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
6. Conclusion
Tkslsl
Page 23 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
7. Appendices
7.1 Appendix: Source Code
source code here
Page 24 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
8. Reference List
Page 25 of 26
MUNYARADZI THOMAS NYAHWO 010319318
CO320 PROJECT FINAL REPORT: 2015 - BSC COMPUTING AND INFORMATION SYSTEMS
9. Evaluation
Page 26 of 26