SequalsK - A Bidirectional Transpiler

Case Study: Board Game

Application Description

The board game app covers three games that can be played on an 8x8-board, namely, Reversi, Checkers, and Chess. There is a single-player mode where the user always plays white and an AI opponent plays black. The three games share a lot of common code like the basic data structure to store the board and a straightforward implementation of the minimax algorithm for the AI opponent. Each game, of course, comes with its own game logic ensuring that only valid moves can be made.

Transpilation

The SequalsK transpiler is able to bidirectionally transpile all files that form the model of the app, i.e., both the data structures like the representation of the board and the three game-logic implementations as well as the shared AI implementation. On the SequalsK main web page, the transpilation can be examined by clicking on the appropriate example (see section "Positive Examples"). In order to work, the transpiled code has to be used together with a platform-specific support file, which can be retrieved from GitHub: for the use with generated Swift-code and for the use with generated Kotlin-code.

iOS Version

The complete source code of the iOS version can be found on GitHub. Here is a screenshot of an ongoing Checkers game, made on an iPad Pro 9.7" simulator.

Android Version

The complete source code of the Android version can be found on GitHub. Here is a screenshot of a finished Chess game, made on a Pixel 2 emulator.


by Dominik Schultes, Technische Hochschule Mittelhessen