Beating Barca: An Artificial Intelligence System Designed to Master the Barca Board Game

This is an archive site. Current senoir design projects are at https://projects.eng.uci.edu.

Topic:

Idea source:

Project Name:  

Beating Barca: An Artificial Intelligence System Designed to Master the Barca Board Game

Poster URL:

https://docs.google.com/presentation/d/1qSm1o-hRWM2AfkqsvPq_4zI6NoCP3_MUeH9SaHh5hR8/edit#slide=id.p3

Team Name:

Astros

Team Members:

1. Matt Rommel, Computer Science and Engineering

​2. Bhuvnesh Kumar, Computer Science and Engineering

3. Noah Djenguerian, Computer Science and Engineering

4. Shashank Reddy Pulagam, Computer Science and Engineering

 

This project involves creating an Artificial Intelligence System capable of playing Barca, a variant of chess that has modified rules.

More specifics of the game's rules are listed here: https://en.wikipedia.org/wiki/Barca_(board_game)

In short, two opposing players play on a 10x10 Checkers Board, each possessing two queens, rooks, and bishops. The objective of the game is for one of the players to possess 3 of the 4  "watering hole" squares located near the center of the board, sort of like "king of the hill". Capturing pieces is not allowed. Instead players try to "scare" each others' pieces from the "watering hole" squares. Opposing player's bishops scare adjacent rooks, queens scare adjacent bishops, and rooks scare adjacent queens. By strategic playing, one can win.

Since this game is in the category of a typical two-player turn-based game, one approach we have is to use a base model where the AI system tries to maximize its "situation" or "outcome", assuming that the opponent is trying to minimize it. 

We also suspect there to be multiple re-occuring states, where the board looks exactly similar to prior turns. We plan on creating an efficient way of storing prior moves and retriving those moves.

 

 

 

Progress Update:

We have decided to design the game's interface using HTML and Javascript with the react.js and node.js frameworks. Amazon Web Services also provides affordable cloud servers for us to host our platform. 

Right now, we have a functioning version of the game that runs on Python. This version supports all of the rules of the board, including rare scenarious with trapped pieces, as well as a basic min-max tree with basic heuristics. 

Our primary challenge is coming up with good heuristics, also known as the rules that constitute a "good move". We plan on investigating heuristics with reinforced learning. One idea we have is to program a "tournament", where the computer plays with itself, gradually modifying the heuristics each time. At the end, the computer would present a ranking of which combination of heuristics played the best.

We estimate to finish our project within the first six weeks of the 10-Week Summer Session. Here is an outline of how we plan on executing this project

Weeks

1

2

3

4

5

6

7

8

9

10

1. Front End

 

 

 

 

 

 

 

 

 

 

1.1 GUI Framework and basic graphics

X

 

 

 

 

 

 

 

 

 

1.2 Functional two-player mode

 

X

 

 

 

 

 

 

 

 

1.3 Refined Graphics

 

 

X

 

 

 

 

 

 

 

1.4 Finalized I/O Signature for Backdoor

 

 

 

X

 

 

 

 

 

 

1.5 Network Connection

 

 

 

 

 

X

 

 

 

 

2 Back Door

 

 

 

 

 

 

 

 

 

 

2.1 Basic Interop Framework

 

X

 

 

 

 

 

 

 

 

2.2  Connect front and back end

 

 

 

X

 

 

 

 

 

 

3 Backend

 

 

 

 

 

 

 

 

 

 

3.1 Basic Heuristics

X

 

 

 

 

 

 

 

 

 

3.2 Search Tree

 

 

X

 

 

 

 

 

 

 

3.3 Pruning

 

 

 

 

X

 

 

 

 

 

4 Self Play

 

 

 

 

 

 

 

 

 

 

4.1 Self-Play Framework

 

 

 

X

 

 

 

 

 

 

4.2 Test progress against humans

 

 

 

 

X

 

 

 

 

 

4.3 Refined heuristics

 

 

 

 

 

 

X