Saturday, 30 June 2012

Final Documentation Post

I have completed the documentation of the major project and have uploaded the final files. Thank you to whoever is reading this. I am glad this project is finished. It was a fun and challenging experience. I now get to enjoy the rest of my holidays.

Friday, 29 June 2012

Documentation Update

I am currently in the process of updating the old documentation to fit the new complete program. I have completed almost all of the diagrams that need to be updated. After this I will add the remaining necessary parts to the documentation.

Secret

This post is for those that want to know the secret cheat. If you press Ctrl + Shift + C when it is your turn (before you have selected a piece to move), the cheat will activate.

Final Programming Update

I have decided not to code the 'hard difficulty' computer player. This is because I have limited time and this algorithm cannot be completed in the time I have left to complete this project. I may code it in the near future.


I have completed the program and all the code, all I need to do now is update and finish the documentation aspect of the project.

Thursday, 28 June 2012

Programming Update 2

I have completed the easy computer and many other aspects of the program. All I have to program now is the Computer Hard method that simulates an intelligent player that is challenging to play against and program the save and load function, allowing users to stop there games and load them when they please.

Tuesday, 26 June 2012

First Programming Update

This post is very late for a few reasons, first is that I have only just started programming, second is that I have had many other commitments that have prevented me from programming and lastly is that time is of the essence. However, I will be working on this program non-stop for the next few days.
I have nearly completed a fully function 2 player checkers game (not 1 player). This means that I have made the user interfaces the start up form, instructions and main form and have put quite a bit of code behind it. All I need to do is add a multi-jump function (where you jump over your opponents pieces more than once in your turn) and a check for win function that will declare the winner when a player has captured all of there opponents pieces.

Sunday, 25 March 2012

Final Progress update for documentation

This is my last post regarding the documentation for the checkers program I am developing. I thank anyone reading my blog that has bared with me and the many diagrams uploaded.
I have completed the documentation part of the development and won't start coding for a while as I have exams next week and then holidays.
I have completed the IPO chart, Data Dictionary, Structure chart, screen designs and storyboard since my last update. I have made a few version 2 diagrams after doing the IPO and data dictionary for correction.
Thank you and goodnight! (for me anyways)

Story board

This is my simple storyboard.

Are You Sure Form Design

This is my design for the are you sure message that pops up when you want to quit.

Main Form Design

This is my Main Form Design.

Help Form Design

This is my How to Play Form design.

Startup Form Design

This is my design for the Startup Form.

Structure Chart

This is the structure chart.

Level 4 Computer Hard Turn DFD

This is the Computer Hard Turn data flow diagram.

Level 4 Computer Easy Turn DFDs

These are both versions of the Computer Easy Turn data flow diagram.


Level 3 Computer Turn DFD

This is the Computer Turn data flow diagram.

Level 3 Player 2 Turn DFD

This is the Player 2 Turn data flow diagram.

Level 3 Player 1 Turn DFD

This is the Player 1 Turn data flow diagram.

Level 2 Play Game DFDs versions 1 and 2

These are both versions of may Play Game DFDs.


Level 2 Select Game Details DFD

This is the Select Game Details data flow diagram.

Level 2 Play Game Version 2

This is my second version of my Play Game flowchart.

Friday, 23 March 2012

Level 4 Computer Hard Turn Flowcharts

These are the two flowcharts for the computer hard turn.


Level 4 Computer Easy Turn Flowchart

This is the algorithm for the easy turn of the computer.

Level 4 Jump Again Flowchart

This is the Jump Again flowchart used in both the Player 1 Turn and Player 2 Turn flowcharts.

Level 4 Capture Piece Flowchart

This is the Capture Piece flowchart used in both the Player 1 Turn and Player 2 Turn flowcharts.

Level 4 Move Piece Flowchart

This is the Move Piece system flowchart this is used in both the Player 1 Turn and Player 2 Turn flowcharts.



Level 3 Computer Turn Flowchart

This is a level 3 system flowchart for the computer turn.

Level 3 Player 2 Turn Flowchart

This is the flowchart for Player 2's turn. It is nearly identical to Player 1's.

Finished Checkers research.

I have finished researching checkers and about how to play it well. I have applied all these aspects on how to play well to me computer hard difficulty algorithm that I have completed and added to a software flowchart. These strategies are: complete piece trades such as allowing your opponent to take one of your pieces and then take two of theirs, 3 for 2 and even 3 for 1, move pieces towards the center of the board, king your pieces as they prioritise over every other move (except for the trades), do not move your back row unless you really need to (this prevents your opponent from kinging their own pieces) and avoid wasting pieces by just letting them be taken because its all about the numbers. The more pieces you have than your opponent, the easier it is to trap their pieces.
The rest of the diagrams will be fairly straight forward and a lot easier to do now that I have figured my algorithm out.

Level 2 Select Game Details Version 2 Flowchart

This is version 2 of the select game details flowchart, I have decided to remove the medium difficulty and I have added 3 processes which are, create player/s, create computer player and create game.

Monday, 19 March 2012

Even More Checkers Research and Ideas

I have begun to write down all of the Checker's strategies that do 2 for 1 trades, 3 for 2 trades or 3 for 1 trades in order to remember them also in the future for when I actually begin coding the program. I will create short algorithms for each of these trades that activate when the pieces on the board are in a certain positions. I may create a flowchart for each possible trade position but that may be pointless and time consuming. A few more diagrams will be scanned and uploaded soon so be prepared. Once I have figured out the computer hard difficulty algorithm, everything will be straight forward from there. I am not too far from figuring out an algorithm that has hard to beat.

Saturday, 17 March 2012

More Checkers research and Ideas

I have done more research on how to win Checkers in order to apply that to my computer hard difficulty. I have learned a few strategies. Using the force jump rule, I have noticed that your opponent would force you to jump one of his pieces and in turn he jumps two of yours. Also, he would force you to jump two pieces then he would jump three of yours. I have learned that you must do trades like these such as 2 for 1, 3 for 2 or even 3 for 1 to win the game.
Another basic strategy is to not move your very back row unless you absolutely need to. This prevents your opponent from getting Kings (the pieces that can move forward and backwards). In order to completely finish the flowchart diagrams, I need to do this research for the computer hard difficulty flowchart.


I also am thinking of adding an 'instructions' page where it tells you how to play Checkers and all the rules. For example, I did not know that if you cannot move a piece then you lose. There might be others that do not know rules such as these.

Wednesday, 14 March 2012

Play Game Flowchart

This is a level 2 flowchart that defines the 'Play Game' process further. It will also be broken down into Player 1 Turn, Player 2 Turn, Computer Turn and Check for Winner.

Select Game Details Flowchart

This is a level 2 flowchart that has defined the 'select game details' method on the main level 1 flowchart. This flowchart will not need to be defined further.

First flowchart

This is my level 1 flowchart of my main method. It will be further broken down into the many methods.

Monday, 12 March 2012

Research

At the moment, I am creating my software diagrams, mainly the software flowcharts. I am also researching Checker's itself. I am finding strategies to win the game easily and be able to not lose at the same time. I have found that there are over 500 billion billion (or 500,000,000,000,000,000,000) possible positions of the pieces on the board. Obviously there is no way to find every possible position in time and the size of the program would become far too large. I realized I do not need to create a perfect algorithm that cannot lose for the computer hard difficulty but I need to create an algorithm that is hard to beat but sill possible otherwise it would be pointless for a user to even attempt to win.

Friday, 2 March 2012

Brainstorming of Ideas and Progress Update

I have begun to think of many extra ideas I could apply to the creation of the Checkers game. Since I will not change the rules of the Checkers game itself, I will add many extra features to enhance the users experience and eventually make the program easier to use.
I plan to add a save and load function which simply creates a text file in the PC's C: drive that it can automatically access or perhaps allowing multiple save files, so the user can come back and resume more than one game. A highscore table can be added that will calculate who won Checkers in the smallest amount of moves. This will also have to be saved to an external file.


In terms of progress, I have finished the feasibility study and have begun the Ideas and Generation. After that, I will begin the diagrams, namely the flowcharts. I plan to work on this project a lot more often now that the Year 12 exams are coming up. Study may get in the way of the planning for the Checkers game. The study will also include studying Software Design and Development itself.

Wednesday, 29 February 2012

Decisions

I have decided to begin the production of a Checkers game and it will not be coded in Java or an android app. I plan for it to be two player and the option of playing against a computer or AI. For those who do not remember, Checkers is the game where there is an 8x8 board and the pieces or only placed on the black squares and can only move diagonally. That might jolt your memory. I will begin creating the flowcharts very soon.
Considering the workload I have in year 12, I don't really have to time to learn a new language at the moment.

Friday, 17 February 2012

For the major project, I have been brainstorming ideas for it. It is possible that I might do an android app. I have downloaded the program 'Eclipse' that programs in Java and I am attempting to learn it. My dad programs in Java so he can teach me how to code well.