ICFPT 2014 Design Contest: Tools

Tools: the test & host program

    Test & host program is available. (Download May 28 Version)



  • Developed on FreeBSD 8.3 (amd64). Should work on any POSIX based systems (with small modifications around serial port communications.)
  • Works on Cygwin (serial_dev[] may be have to modified).
  • On other platforms,

           * modify /dev entries in serial_dev[]

           * init_serial() may be have to be modified



Command line options:

  • Game modes: Human (on stdin) and FPGA board (on serial port) can be either First move player or second move player. To play in human vs human mode, simply running without any options.

           * No option: Player 1/2 on console: Human vs human.

           * -1: Player 1 on serial port 0: FPGA board moves first, then human.

           * -2: Player 1 on serial port 0: Human moves first, then FPGA board.

           * -3: Player 1/2 on serial port 0/1: FPGA board vs FPGA board.

           * -r: reverse serial port assignment on '-3' option.

  • Hint options for test:

           * -t: Do NOT show list of available tiles.

           * -p: Show the shape of placed tile.

           * -h: Show hint: but usually not a good move: p

           * -a [12]: Simple AI plays instead of human on stdin. "-a 1" moves as "-h" option, and "-a 2" moves a little bit wiser than that.

  • Communication options:

           * -T: Opens TCP port 10000 (and 10001) as a replacement of serial port 0 (and 1).

           * -o XX: Set serial port timeout to XX second(s).

    To interrupt this program in interactive mode, press Ctrl+D (not Ctrl+C). This will transmit "9" to the serial port to make the game over.


The Web interface: blokus-httpd

    May.01 version of the Test & Host program contains "blokus-httpd.c", which is an Web-based viewer of blokus-host. To use it, simply launch as:

    ./blokus-host | ./blokus-httpd

    Then connect http://localhost:11000/ on your browser and start the game as on the console, serial or TCP.

    To use blokus-httpd, do not give "hint options" to blokus-host. Any other options about game modes and communication are allowed.


Known issues / restrictions

  • blokus-host:

           * On Cygwin, serial port setup should be done by setup_com12.bat before running blokus-host.

  • blokus-httpd:

           * Only 1 browser session is allowed on a blokus-httpd.

           * Internet connection is required (or modify the HTML source to use jQuery on your local directory.)

           * The browser must support HTML5 Canvas.

           * "blokus.html" must be in current directory.


Revision history

  • May 26, 2014:

           * Initial version.



  • Yasunori Osana <osana@eee.u-ryukyu.ac.jp> wrote this file.
  • This file is provided "AS IS" in the Beerware license rev 42.



  • Prof. Akira Kojima @ Hiroshima City University provided the "-a 2" option, cygwin compatibility and batch-file for serial port setup (setup_com12.bat).
  • Many Blokus Duo challengers has reported bugs. Thank you for all contributors.


ICFPT 2014 Design Contest: Boards


    Updated: May 26, 2014

  • Boards with smaller FPGAs and external RAM capacities are also allowed to get involved.
  • The boards will communicate with the host via D-sub 9pin RS-232C interface. Also, FTDI's USB-UART controller chips (such as on Digilent boards) are allowed in the competition.
  • There is no constraint on the boards and FPGA devices. All available FPGA-based boards are welcome. Embedded processors are allowed.
  • Total off-chip memory utilization is less than 256MB (except the configuration bitstream). Any types of external memory (ROMs, SRAMs, DRAMs, DIMMs etc.) is allowed within the 256MB limit.