Crates.io | tic-tac-rust |
lib.rs | tic-tac-rust |
version | 0.1.3 |
source | src |
created_at | 2020-05-26 18:16:12.311046 |
updated_at | 2020-05-26 18:16:12.311046 |
description | Tic tac toe game in rust! This is the library, it can be run from a Rust CLI or from wasm! |
homepage | https://github.com/tarikeshaq/tic-tac-rust |
repository | https://github.com/tarikeshaq/tic-tac-rust |
max_upload_size | |
id | 246300 |
size | 12,446 |
A Tic tac toe game manager built in rust and packaged to npm as a WebAssembly wasm-pack package
see Wikipedia
Tic-tac-toe (American English), noughts and crosses (British English), or Xs and Os is a paper-and-pencil game for two players, X and O, who take turns marking the spaces in a 3×3 grid. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row wins the game.
$ npm install tic-tac-rust
const { State } = await import('tic-tac-rust');
const gameState = State.new(difficulty);
// difficulty is 0 (Easy), 1 (Normal) or 2 (Computer will be unbeatable)
gameState.update_board(index, character)
// index is 0 - 8 starting top left, character is 'x', 'o' or '0'
You can check for a win or a loss using the is_win function:
const xWon = gameState.is_win('x'); // xWon would be true if x won
const oWon = gameState.is_win('o'); // oWon would be true if o won
or check for a tie:
const isTie = gameState.is_tie() // isTie is true if it is a tie
This is based on the difficulty the state was created using
const index = gameState.next_move(x_or_o)
// x_or_o is 'x' if computer is 'x' and 'o' if computer is 'o'
This was a quick side project I did to while learning WebAssembly (This will Soon be on my personal site!). If anyone ends up using it and wants to contribute, feel free to create a PR :grin: