Aim & Branding
This project as a final development in semester2, aimed to understand how develop reversi app (with AI) with Swift on Xcode. Even developing a simple AI, it was a big challenge for me, however, I have really excited with creating this project.
This is the icon for REVERSI2.
When I make the Black and White stones for REVERSI2, I thought just black and white is too simple, more creative design is better. Then as a branding, I designed the stones "sun" and "moon", like a sun and moon illustrations in a fairy tale.
Primary Research & Initial Ideas
Befor starting this, to store and manage all cells on the board on one place, make 'one dimensional array' to 'two dimensional arraies'. Also, in opponent property, put code counting the number of stones between latest to same color stone on the same line, to switch stones between different color stones. To get the different color stones, add property switching different color into type enum CellState.
Next, add an method which switching stones only make color different available stones, on one line. 'Direction' determines switching stones is available or not. 'Cell' means two dimensional arraies which shows situation of reversies on the board. When swhitching stones is not available, this argument will show "0".
Finally this method can check every cell status, if the stone put on the one cell, this method makes the stone appear on the cell.
I could not have done the method which shows scores and win/lose, however I think it was really good experience to learn, understand and try Swift coding AI which challenging for me.
The Main ReferenceThinking ahead, using MiniMax
The Swift Proggraming Language