Connect Four Robot : Implementation of AI-strategies in a Connect Four robot

Connect four is a two player game in which the players take turns placing discs in i a 6x7 grid. Each player has discs in their own specific color. Their aim is to get four of their own discs in a horizontal, vertical, or diagonal alignment. While doing so they have to prevent their opponent from ge...

Full description

Bibliographic Details
Main Authors: HULTROS, LISELOTT, SONG, XIYAO
Format: Others
Language:English
Published: KTH, Mekatronik 2018
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-232992
Description
Summary:Connect four is a two player game in which the players take turns placing discs in i a 6x7 grid. Each player has discs in their own specific color. Their aim is to get four of their own discs in a horizontal, vertical, or diagonal alignment. While doing so they have to prevent their opponent from getting four of their discs in a row. In this project, the purpose is to design and build a connect four playing robot, that can play connect four opposite a human. To do so, the robot has to be able to physically move and drop discs in the grid of the game, it also has to be able to figure out in which column to drop the discs, and detect where the player puts their discs. To achieve this, a demonstrator was built. It consists of a frame around the game, onto which motors are placed to move and drop discs into the game. Photoreflectors are placed above each column to detect the player’s discs. The motors and sensor are controlled by an Arduino, and a Raspberry Pi is tasked to run the AI algorithm to calculate the next moves for the robot. This was done with a satisfying result and at the end of the project the demonstrator could play connect four against a human opponent and almost always win. === Fyra i rad är ett sällskapsspel för två personer i vilket de två spelarna turas om att lägga brickor i ett rutnät på 6x7 rutor. Varje spelare har brickor i sin egen specifika färg. Målet för varje spelare är att få fyra av sina egna brickor i en horisontell, vertikal, eller diagonal rad. Detta medan de hindrar den andra spelaren från att få fyra av sina brickor i en rad. Syftet med detta projekt är att designa och bygga en fyra i rad-spelande robot som kan spela mot en människa. För att göra det behöver roboten kunna fysiskt flytta och släppa brickor i spelets kolumner, räkna ut vilken kolumn som den ska lägga brickor i, samt kunna läsa av var motståndaren lägger sina brickor. För att uppnå detta byggdes en demonstrationsenhet. Den består av ett ram runt spelet, varpå motorer är placerade för att flytta och släppa brickor i spelet. Fotoreflektorer är placerade ovanför varje kolumn för att känna av spelarens brickor. Motorerna och sensorerna styrs av en Arduino medan en Raspberry Pi kör AI-algoritmen som räknar ut robotens nästa drag. Detta genomfördes med tillfredsställande resultat och vid projektets slut kunde roboten spela fyra i rad mot en mänsklig motsåandare och nästan alltid vinna.