Mittwoch, 14. September The Pelita contest (a brief introduction)

Similar documents
2 Textual Input Language. 1.1 Notation. Project #2 2

Battle. Table of Contents. James W. Gray Introduction

ADVANCED TOOLS AND TECHNIQUES: PAC-MAN GAME

League of Legends: Dynamic Team Builder

Part II: Number Guessing Game Part 2. Lab Guessing Game version 2.0

Q: WHAT ARE THE RESIDENCY REQUIREMENTS FOR THOSE WHO PLAY TO COMPETE? A: This is event is restricted to UK and Ireland, therefore:

Tic-Tac-Toe and machine learning. David Holmstedt Davho G43

CMSC 671 Project Report- Google AI Challenge: Planet Wars

OCR Statistics 1. Probability. Section 2: Permutations and combinations. Factorials

CS 188: Artificial Intelligence Spring Announcements

In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

SATURDAY APRIL :30AM 5:00PM

Project 2: Searching and Learning in Pac-Man

In this project you ll learn how to create a game, in which you have to match up coloured dots with the correct part of the controller.

Texas hold em Poker AI implementation:

Monte Carlo based battleship agent

Welcome to Family Dominoes!

(Provisional) Lecture 31: Games, Round 2

CMSC 372: Artificial Intelligence Lab#1: Designing Pac-Man Agents

DIVISION I (Grades K-1) Common Rules

Probability and Statistics

Announcements. CS 188: Artificial Intelligence Spring Game Playing State-of-the-Art. Overview. Game Playing. GamesCrafters

Pay attention to how flipping of pieces is determined with each move.

Materials: Game board, dice (preferable one 10 sided die), 2 sets of colored game board markers.

Simple Poker Game Design, Simulation, and Probability

7:00PM 12:00AM

Math 152: Applicable Mathematics and Computing

Today. Nondeterministic games: backgammon. Algorithm for nondeterministic games. Nondeterministic games in general. See Russell and Norvig, chapter 6

Tarot Combat. Table of Contents. James W. Gray Introduction

Game Playing for a Variant of Mancala Board Game (Pallanguzhi)

COMP3211 Project. Artificial Intelligence for Tron game. Group 7. Chiu Ka Wa ( ) Chun Wai Wong ( ) Ku Chun Kit ( )

GeoPlunge Combo 1 Overview

Memory. Introduction. Scratch. In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

MATKA. Foreword. 1. Event Rules

Welcome to ARRAY and thanks for buying our game. 2 to 5 Players

CS 1410 Final Project: TRON-41

Game Room. Craft Room 7. Continued on page 2

How To Crush Online No Limit Holdem

Multi-Agent Programming Contest Scenario Description 2009 Edition

Game Playing Part 1 Minimax Search

STONES THROWING ASSOCIATION- THE BOOK OF RULES. Common Rules of Play. I. The Course

Guess the Mean. Joshua Hill. January 2, 2010

CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class

Official Rules For Bid Whist Tournaments

CSC Curriculum Term One Lesson Plans

CS 680: GAME AI WEEK 4: DECISION MAKING IN RTS GAMES

Board Game AIs. With a Focus on Othello. Julian Panetta March 3, 2010

Tac Due: Sep. 26, 2012

CMPUT 396 Tic-Tac-Toe Game

May 2017 ACBL Bridge Bulletin Notes

Unit 5: What s in a List

CS510 \ Lecture Ariel Stolerman

CS 188: Artificial Intelligence Spring Game Playing in Practice

SAPO Finals 2017 Day 2 Cape Town, South Africa, 8 October standard output

Pony Primer. Getting Started

Pony Primer. Getting Started

Announcements. Homework 1. Project 1. Due tonight at 11:59pm. Due Friday 2/8 at 4:00pm. Electronic HW1 Written HW1

CS 188: Artificial Intelligence. Overview

The 2nd Schaumburg Beach Head

COMPOSITION CRAM INSTRUCTIONS:

Reinforcement Learning Applied to a Game of Deceit

game tree complete all possible moves

Dota2 is a very popular video game currently.

Game Playing: Adversarial Search. Chapter 5

On the day you also need to bring :

Requirements Specification

DIVISION III (Grades 4-5) Common Rules

Matthew Fox CS229 Final Project Report Beating Daily Fantasy Football. Introduction

Mantic Kings of War Adepticon Tournament Rules 2014

SATURDAY APRIL :30AM 5:00PM 7:00PM :00AM

WARHAMMER 40K COMBAT PATROL

Achieving Desirable Gameplay Objectives by Niched Evolution of Game Parameters

Learning Artificial Intelligence in Large-Scale Video Games

Sheepshead, THE Game Release Notes

40K DOUBLES. 9.30am, 25 th March th Ipswich Scout Hall, 220 Hawthorn Drive Ipswich, Suffolk, IP2 0RG. White Eagles Wargames Club

Heuristics, and what to do if you don t know what to do. Carl Hultquist

Machine Learning in Iterated Prisoner s Dilemma using Evolutionary Algorithms

Soccer Cup 2018 simulation Johan Nordling. Unrestricted Siemens AG 2018

GICAA State Chess Tournament

Project 1: A Game of Greed

Roll for the Tournament -Jousting

Classic Dominoes. Number of Players: 2-4

Game playing. Outline

Adversarial Search. Human-aware Robotics. 2018/01/25 Chapter 5 in R&N 3rd Ø Announcement: Slides for this lecture are here:

Codebreaker Lesson Plan

MULTIPLICATION FACT FOOTBALL

Let us now look at a situation a few rounds into the game, from the perspective of player 2.

Games vs. search problems. Game playing Chapter 6. Outline. Game tree (2-player, deterministic, turns) Types of games. Minimax

Design task: Pacman. Software engineering Szoftvertechnológia. Dr. Balázs Simon BME, IIT

Game playing. Chapter 6. Chapter 6 1

Variance Decomposition and Replication In Scrabble: When You Can Blame Your Tiles?

The Sweet Learning Computer

How to Play WADA s Anti-Doping Card Game

CPSC 217 Assignment 3

WARHAMMER LEGENDARY BATTLES

FINAL PROJECT ARTIFICIAL INTELLIGENCE VINDINIUM. Hosam Hakroush and Dmitry Levikov FOUR LEGENDARY HEROES, FIGHTING FOR THE LAND OF VINDINIUM

Analysis of Game Balance

COMP 3801 Final Project. Deducing Tier Lists for Fighting Games Mathieu Comeau

Game Playing. Dr. Richard J. Povinelli. Page 1. rev 1.1, 9/14/2003

1 Introduction. 1.1 Game play. CSC 261 Lab 4: Adversarial Search Fall Assigned: Tuesday 24 September 2013

Transcription:

The Pelita contest (a brief introduction)

Overview

Overview Each Team owns two Bots Bots for team 0 Bots for team 1

Overview Each Team owns two Bots Each Bot is controlled by a Player Bots for team 0 Player for team 0 Bots for team 1 Player for team 1 4

Overview Each Team owns two Bots Each Bot is controlled by a Player Harvester or Destroyer Bots 5

Overview Each Team owns two Bots Each Bot is controlled by a Player Harvester or Destroyer Bots Bots are Destroyers in homezone Harvesters in enemy s homezone Game ends when all food pellets are eaten 6

The rules Scoring: When a Bot eats a food pellet, the food is permanently removed and one point is scored for that Bot s team. Timeout: Each Player only has 3 seconds to return a valid move. If it doesn t, a random move is executed. (All later return values are discarded.) Five timeouts and you re out! Eating a Bot: When a Bot is eaten by an opposing destroyer, it returns to its starting position (as a harvester). Five points are awarded for eating an opponent. Winning: A game ends when either one team eats all of the opponents food pellets, or the team with more points after 300 rounds. Observations: Bots can only observe an opponent s exact position, if they or their teammate are within 5 squares (maze distance). If they are further away, the opponent s positions are noised. 7

Getting ready Clone the central repository with the game files: git clone git://github.com/debilski/pelita.git Run a simple demo game: ~/pelita/pelitagame For help: ~/pelita/pelitagame --help See the Pelita documentation: http://debilski.github.com/pelita Write your own player 8

Implementing the first players Standard imports Pelita imports Implement a simple player Use the player API Invalid return values of get_move result in an automatic random move. 9

The tournament preliminary rounds On the last day, we ll have a tournament in two parts Preliminary rounds: all-against-all 10

The tournament finals Final rounds for the four best teams Last-chance final against the fifth best team 1 2 3 4 5 11

Writing Players 101 the factory For the tournament, you ll need a specific project structure Clone your group s repository: git clone <name>@python.g-node,de:/git/groupx Make it a module by adding an init file with a special method factory groupx/ init.py from pelita.players import SimpleTeam, AbstractPlayer class MyPlayer(AbstractPlayer): def get_move(self): return (-1, 0) def factory: return SimpleTeam("The Winners", MyPlayer(), MyPlayer()) More information and an example package in the wiki 12

Writing Players 101 Player In your get_move method, information about the current universe and food situation is available. See the documentation for more details. self.current_pos Where am I? self. me Which bot am I controlling? self. enemy_bots Who and where are the other bots? self. enemy_food Which are the positions of the food pellets? self. current_uni Retrieve the universe you live in. self. current_uni.maze How does my world look like? self. legal_moves Where can I go? 13

Writing Players 101 Testing Players Very useful The alternative is to run games, hope that the Players end up in the right situation, guess from looking at the screen if it behaved correctly More sophisticated testing scenario Write a test layout and check that your Player behaves correctly, e.g. for the Player always moving west: Create a file and run the script with it. See documentation for more information ############ #0. 1# # ## # #2. # 3# ############ 14

Basic Player behaviors Finite State Machines Start Going to opponent half arrived in opponent s half Looking for food arrived in your half Think about the state pattern opponent far away opponent very close Fleeing 15

Basic Player behaviors Value-maximizer Player has a function that gives a value to a given game state according to several criteria, e.g. value(game_state) = 1 distance_from_nearest_food + 100 score At each turn: get the legal actions Player.legal_moves request the future universe, given one of the actions self.current_uni.copy().move_bot(self._index, direction) compute the value of future states pick the action that leads to the state with the highest value 16

Learning Plenty of opportunities for learning... Adapt parameters according to final score Reinforcement Learning (similar to learning weights in the value-maximizing Player) Collect statistics on opponents Ambitious: Genetic Programming 17

Things that we ve found to be useful Shortest-path algorithm Algorithm to keep track of opponents Communication between Players (requires investigating the SimpleTeam initialisation in the factory method) Code re-use is encouraged More important than fancy strategies is the quality of your code: Is it well tested? Does it conform to standards? Apply agile development techniques 18

Let s start! Form 5 teams of 6 people (wiki) Test that you can write and run matches with simple players set up your project directory: clone the game files clone your group repository copy a random Player and corresponding Player s factory, try to have a few matches with different layouts write a Player that picks a random direction at junctions Organize team work Have fun! 19