Weird Science - Tales from the
Vectrex Academy Lab
Beta release candidate, version 1.0
A simple one
or two player chess-like game with some
basic AI opponents
Intended to be
rather an academic experiment than the
attempt to create a good Vectrex chess game
recent changes compared to the previous version
Code has been
optimized for performance, significant speed
up of AI computations.
pruning of the minimax-algorithm improved by
adding one (simple) heuristics.
introduced. The AI state machine observes
Timer 2 and schedules its computations so
that a 50Hz framerate is maintained at all
times (well, there might still be some
occasional spikes). This can be nicely
observed in Vide.
AI levels 4 to
6 added. AI levels 1 to 3 do their
computations rather quickly, 4 is
acceptable, 5 and 6 are mainly included just
for performance tests.
board-view and progress-view during AI
computation, see below.
Choice to let
the AIs open a game by up to 3 random moves.
This provides for a lot more variety and a
means to quickly start an (interesting?)
game, as AI computations are otherwise
mainly deterministic (same situation on the
board will lead to same decision of the AI).
two different board evaluations functions
(AI types). Type A is default and well
tested, type B is highly experimental.
fixed which caused the AIs of the previous
version to do some silly stuff on rare
The rules of Kingslayer Chess are a simplified and
modified version of the common rules of chess.
The goal of the game is to explicitly slay the
opponent's king (hence the name).
In order to win the game, the king must be taken
by an attacking move of another piece.
There is no checking-rule, and the game only ends
if the king is taken.
There is no castling, en-passant, or
pawn-promotion. Also no 50-moves-rule or alike.
Use the joystick and the buttons of controller 1
to play the game.
The are currently six different AI opponents
available, implementing levels 1 to 6 of the minimax
algorithm (looking between 1 and 6 moves ahead into
Also, a non-AI can be chosen as opponent which
does completely random moves only.
The AIs are certainly not club player level and
rather intended as (worthy?) opponents for the
casual novice or amateur player. Maybe they can also
provide some fun for beginners or kids who are just
about to start learning chess.
Computation time and difficulty both increase with
the level of AI chosen. AIs 3 and 4 seem to be
acceptable in regard of both.
While the AIs are computing their moves, it is
possible to toggle between board-view and
progress-view by pressing button 1 for one second.
The default is board-view for AIs 1 and 2, and
progress-view for the other AIs 3 to 6.
It is sort of fun to watch the AIs
play against each other...
Prototype 0.1 Demo
Initially, the goal of this
experiment was to keep the complete board drawn
at a 50Hz framerate at all times. Especially,
the board was to remain visible during the AI
The screen size of the chess board
is the (currently) best possible compromise
between performance and the goal to display the
board at any time while maintaining a 50Hz frame
Only the original Vectrex hardware
is used, no additional RAM, no "stronger"
The code is pure Vectrex C, using the BIOS
routines for interfacing with the console