# Simple Portfolio
A website to showcase my projects and programs.

## Chess Engine
A simple chess engine based on simple Probability.

### About
The primary concern of C-PA is the decision-making part of the application. All functionality outside the scope of the AI are implemented using external libraries:
- Chessboard GUI: Using the chessboard.js API
- Game Mechanics: Using the chess.js API

The AI uses the [minimax algorithm](https://en.wikipedia.org/wiki/Minimax), which is optimised by [alpha-beta pruning](https://en.wikipedia.org/wiki/Alpha%E2%80%93beta_pruning). 

The evaluation function uses [piece square tables](https://www.chessprogramming.org/Piece-Square_Tables) adapted from Sunfish.py, and eliminates the need for nested loops by updating the sum based on each move instead of re-computing the sum of individual pieces at each leaf node.

A global sum is used to keep track of black's evaluation score after each move, which is used to display the 'advantage' bar. 

### How to Play?
1. Head over to https://cmprkr.github.io.

2. Play as white by dragging a piece to your desired location. The AI plays as black.

### License
Use of this project is governed by Cameron Parker

## docsGPT
gpt-3.5-turbo built into Google Docs.
- Selection menu
- Supports highlight-to-query
