FindBlue: A game of searching bluest position via trial

PHP JavaScript MySQL C

Project Goal

FindBlue is a game to search for the bluest position in the 2D box space (i.e. the position with minimal value). The dots with different values are colored according to a color bar, where redder means higher value and bluer means smaller value. Each new trial dot will also change color bar range, so player would know the general landscape and how well she plays so far. The target of the game is to find the position with smallest value within as few trials as possible, so need some smart moves!

This screenshot shows all the sample points that the player has drawn. The bluest point (i.e. the point with smallest value) she found is with 480, which is far from the real minimum 100. p1

Motivation

This system is originally a data acquisition process for simulating human search. That is, let humans perform the search (optimization) process first, and do a data acquisition work for the future modeling. In order to make the process of data collection not too boring and suitable for multiple people to collect data at the same time, I made it an online game in need of search intelligence for practicality and fun.

Technique

PHP, JS, MySQL, C. The system adopts a three-layer structure based on BS architecture, the main development language is PHP, the front end is supplemented by html, Javascript (mainly using Echart tools), etc. In addition to the PHP system itself, the background also needs to call some functional interfaces through sockets. These functions are provided by C language generated EXE files (functions and code from CEC2017 competition).

Demo

The following screenshots show how to play the game.

Login at Home page.

p1
MySpace -> MyGame.

p1
New game with empty canvas and empty color bar.

p1
After the player has clicked at least one point, this point and the four corner points, 5 points in total are evaluated together, and a new record is created in the database, the color difference begins, and the color bar is activated.

p1
The backend display also indicates that it is indeed calculated, and the fitness values need to be calculated according to x and y values.

p1
As the game going, the player lights up more and more positions, and the results are also shown in the backend terminal.

p1
Drag these cursors or click the icon in the top right corner to zoom in and out the canvas, so as to perform fine search.

p1
Another way to play a game is to continue a game that was not completed before. In the MyGame interface, directly click the corresponding game data ID to enter the game interface, and all the historical point records will be retrieved from database and loaded onto the canvas firstly. The following operations are as the same as before.

p1