Tic Tac Toe

From Esolang
Jump to navigation Jump to search
Not to be confused with Tic Tac Toe Grow.
This is still a work in progress. It may be changed in the future.

Tic Tac Toe is an esoteric programming language created by User:JWinslow23 in 2013. This takes the form of Tic-Tac-Toe games.

Introduction

The Tic-Tac-Toe board is labelled as follows.

a1|a2|a3
--+--+--
b1|b2|b3
--+--+--
c1|c2|c3

For example, c3 means move in the bottom right corner.

You can designate yourself as X or O, but it must stay that way throughout the whole program.

The commands are as follows (functions are the same as in BF):

 + | - | >
---+---+---
 < |NOP| [
---+---+---
 ] | , | .

Any square you go on that wins is a NOP (e.g. if you go on a1 and you went on b2 and c3, the cell will not be incremented).

Syntax

At the start of every program is a declaration of who you are playing as (X or O).

I will play as X/O.

Next is a declaration of a game (they must be numbered from 1 on up, and in the right order). There can be as many games as needed.

Game 1:

Then, the game is played. X always goes first, X and O must alternate moves, and you designate a square being played on by saying:

X/O went on name_of_square.

When you win a game without declaring a new one, any more moves made afterwards will result in an error.

Example programs

Infinite loop

I will play as X.

Game 1:
X went on a1.
O went on a3.
X went on b3.
O went on b1.
X went on c1.
O went on a2.
X went on b2.

This corresponds to +[] in BF.

Cat program

I will play as X.

Game 1:
X went on c2.
O went on a1.
X went on b3.
O went on b2.
X went on c3.
O went on c1.
X went on a3.

Game 2:
X went on c2.
O went on b2.
X went on c1.
O went on b3.
X went on c3.

This corresponds to ,[.,] in BF, and requires two games to be played.

Interpreter

  • Common Lisp implementation of the Tic Tac Toe programming language.