dominoes Documentation

Size: px
Start display at page:

Download "dominoes Documentation"

Transcription

1 dominoes Documentation Release Alan Wagner January 13, 2017

2

3 Contents 1 Install 3 2 Usage Example 5 3 Command Line Interface 7 4 Artificial Intelligence Players Players Search API Documentation Board Domino Game Hand Result Series SkinnyBoard Questions, Comments, Ideas? 23 Python Module Index 25 i

4 ii

5 Dominoes have been around for hundreds of years, and many variations of the game have been played all over the world. This library is based on a popular variation commonly played in San Juan, Puerto Rico, and surrounding municipalities, such as Guaynabo. It is played with a double six set of dominoes. The 28 dominoes are shuffled and distributed evenly between the 4 players, who form 2 teams. The players then take turns placing dominoes in a single chain. The first player to play all their dominoes wins the points in the remaining hands for their team. If the game is stuck, the team with the fewest points remaining in its players hands wins the points in all the remaining hands. For more details, see Game. This library provides a Game class to represent a single dominoes game. It is built on top of Domino, Hand, and Board classes. Furthermore, you can string various games together and play up to a target score using the Series class. Additionally, this package provides a command line interface to a dominoes series. Not only is it a great way to play a quick game, but it is also a comprehensive example of how to use this library s API. The command line interface features various artificial intelligence players. For more information on how these work, see Artificial Intelligence Players. Contents 1

6 2 Contents

7 CHAPTER 1 Install $ pip install dominoes 3

8 4 Chapter 1. Install

9 CHAPTER 2 Usage Example >>> import dominoes >>> d = dominoes.domino(6, 6) >>> g = dominoes.game.new(starting_domino=d) >>> g Board: [6 6] Player 0's hand: [2 4][5 5][2 3][1 3][1 6][1 2] Player 1's hand: [1 1][3 4][0 5][0 6][2 5][1 5][2 6] Player 2's hand: [0 4][0 3][4 4][3 6][0 2][4 5][1 4] Player 3's hand: [5 6][3 5][3 3][0 0][0 1][2 2][4 6] Player 1's turn >>> g.board [6 6] >>> g.hands [[2 4][5 5][2 3][1 3][1 6][1 2], [1 1][3 4][0 5][0 6][2 5][1 5][2 6], [0 4][0 3][4 4][3 6][0 2][4 5][ >>> g.turn 1 >>> g.result >>> g.valid_moves # True is for the left of the board, False is for the right [([0 6], True), ([2 6], True)] >>> g.make_move(*g.valid_moves[0]) >>> g.moves [([6 6], True), ([0 6], True)] >>> g Board: [0 6][6 6] Player 0's hand: [2 4][5 5][2 3][1 3][1 6][1 2] Player 1's hand: [1 1][3 4][0 5][2 5][1 5][2 6] Player 2's hand: [0 4][0 3][4 4][3 6][0 2][4 5][1 4] Player 3's hand: [5 6][3 5][3 3][0 0][0 1][2 2][4 6] Player 2's turn >>> g.make_move(*g.valid_moves[0])... >>> g.make_move(*g.valid_moves[0]) Result(player=1, won=true, points=-32) >>> g.result Result(player=1, won=true, points=-32) >>> g Board: [2 6][6 3][3 4][4 1][1 1][1 6][6 4][4 5][5 2][2 4][4 0][0 6][6 6][6 5][5 0][0 3][3 5][5 5][5 1 Player 0's hand: [2 3][1 3][1 2] Player 1's hand: Player 2's hand: [4 4][0 2] Player 3's hand: [3 3][0 0][2 2] Player 1 won and scored 32 points! 5

10 6 Chapter 2. Usage Example

11 CHAPTER 3 Command Line Interface $ dominoes Welcome! Proceeding will clear all text from this terminal session. If you are OK with this, press en Up to how many points would you like to play: 100 Player settings: 0) Human 1) AI: random 2) AI: omniscient Select a setting for player 0: 0 Select a setting for player 1: 1 Select a setting for player 2: 0 Select a setting for player 3: 1 Press enter to begin game 0. Player 3 had the [6 6] and made the first move. Board: [6 6] Player 0 has 7 dominoes in his/her hand. Player 1 has 7 dominoes in his/her hand. Player 2 has 7 dominoes in his/her hand. Player 3 has 6 dominoes in his/her hand. It is now player 0's turn. Press enter to continue. Board: [6 6] Player 0's hand: 0) [3 6] 1) [4 4] 2) [0 1] 3) [2 6] 4) [1 1] 5) [2 5] 6) [3 3] Choose which domino you would like to play: 3 Choose what end of the board you would like to play on (l or r): r Press enter to end player 0's turn. Board: [6 6][6 2] Player 1 (AI: random) chose to play [2 4] on the right end of the board. Press enter to end player 1's turn. 7

12 Game over! Board: [0 2][2 2][2 5][5 5][5 6][6 0][0 0][0 3][3 6][6 1][1 4][4 4][4 6][6 6][6 2][2 4][4 5][5 3][3 3 Player 0's hand: [0 1] Player 1's hand: [1 5][0 5] Player 2's hand: [0 4] Player 3's hand: Player 3 won and scored 16 points! The current state of the series: Series to 100 points: Team 0 has 0 points. Team 1 has 16 points. Press enter to begin game 1. Game over! Board: [5 3][3 3][3 6][6 5][5 5][5 0][0 4][4 3][3 1][1 6][6 2][2 5][5 4][4 6][6 0][0 3][3 2][2 0][0 0 Player 0's hand: [1 5] Player 1's hand: [4 4] Player 2's hand: Player 3's hand: [6 6] Player 2 won and scored 26 points! The current state of the series: Series to 100 points: Team 0 has 107 points. Team 1 has 95 points. Team 0 wins! $ 8 Chapter 3. Command Line Interface

13 CHAPTER 4 Artificial Intelligence Players 4.1 Players Players are Python objects with a call method defined to accept a Game instance as the sole argument. Players return None, and leave the input Game unmodified, except for its valid_moves attribute. This value may be replaced with another tuple containing the same moves, but sorted in decreasing order of preference. Players may be applied one after another for easy composability. >>> import dominoes >>> g = dominoes.game.new() >>> g.valid_moves (([0 0], True), ([3 4], True), ([1 3], True), ([2 2], True), ([3 3], True), ([2 3], True), ([5 6], Tr >>> dominoes.players.random(g) >>> g.valid_moves (([5 6], True), ([1 3], True), ([3 3], True), ([2 2], True), ([0 0], True), ([2 3], True), ([3 4], Tr def double(game): ''' Prefers to play doubles. :param Game game: game to play :return: None ''' game.valid_moves = tuple(sorted(game.valid_moves, key=lambda m: m[0].first!= m[0].second)) dominoes.players.bota_gorda(game) Prefers to play dominoes with higher point values. Parameters game (Game) game to play Returns None class dominoes.players.counter(player=<function identity>, name=none) Prefers moves in the same order as the passed-in player. Keeps a counter of the amount of times that this player gets called. An instance of this class must first be initialized before it can be called in the usual way. Parameters Variables player (callable) player that determines the move preferences of this player. The identity player is the default. name (str) the name of this player. The default is the name of this class. 9

14 count (int) the amount of times that this player has been called. name (str) the name of this player. dominoes.players.double(game) Prefers to play doubles. Parameters game (Game) game to play Returns None dominoes.players.identity(game) Leaves move preferences unchanged. Parameters game (Game) game to play Returns None class dominoes.players.omniscient(start_move=0, player=<function identity>, name=none) Prefers to play the move that maximizes this player s final score, assuming that all other players play with the same strategy. This player cheats by looking at all hands to make its decision. An instance of this class must first be initialized before it can be called in the usual way. Parameters start_move (int) move number at which to start applying this player. If this player is called before the specified move number, it will have no effect. Moves are 0-indexed. The default is 0. player (callable) player used to sort moves to be explored in the underlying call to alphabeta search. Ordering better moves first may significantly reduce the amount of moves that need to be explored. The identity player is the default. name (str) the name of this player. The default is the name of this class. Variables name (str) the name of this player class dominoes.players.probabilistic_alphabeta(start_move=0, sample_size=inf, player=<function identity>, name=none) This player repeatedly assumes the other players hands, runs alphabeta search, and prefers moves that are most frequently optimal. It takes into account all known information to determine what hands the other players could possibly have, including its hand, the sizes of the other players hands, and the moves played by every player, including the passes. An instance of this class must first be initialized before it can be called in the usual way. Parameters start_move (int) move number at which to start applying this player. If this player is called before the specified move number, it will have no effect. Moves are 0-indexed. The default is 0. sample_size (int) the number of times to assign random possible hands to other players and run alphabeta search before deciding move preferences. By default considers all hands that other players could possibly have. player (callable) player used to sort moves to be explored in the underlying call to alphabeta search. Ordering better moves first may significantly reduce the amount of moves that need to be explored. The identity player is the default. name (str) the name of this player. The default is the name of this class. Variables name (str) the name of this player dominoes.players.random(game) Prefers moves randomly. 10 Chapter 4. Artificial Intelligence Players

15 Parameters game (Game) game to play Returns None dominoes.players.reverse(game) Reverses move preferences. Parameters game (Game) game to play Returns None 4.2 Search dominoes.search.alphabeta(game, alpha_beta=(-inf, inf), player=<function identity>) Runs minimax search with alpha-beta pruning on the provided game. Parameters game (Game) game to search alpha_beta (tuple) a tuple of two floats that indicate the initial values of alpha and beta, respectively. The default is (-inf, inf). player (callable) player used to sort moves to be explored. Ordering better moves first may significantly reduce the amount of moves that need to be explored. The identity player is the default. dominoes.search.make_moves(game, player=<function identity>) For each of a Game object s valid moves, yields a tuple containing the move and the Game object obtained by playing the move on the original Game object. The original Game object will be modified. Parameters game (Game) the game to make moves on player (callable) a player to call on the game before making any moves, to determine the order in which they get made. The identity player is the default Search 11

16 12 Chapter 4. Artificial Intelligence Players

17 CHAPTER 5 API Documentation 5.1 Board class dominoes.board Python class for objects that represent a domino board. A domino board consists of a series of dominoes placed end to end such that the values on connected ends match. Variables board deque representing the game board >>> import dominoes >>> d1 = dominoes.domino(1, 2) >>> d2 = dominoes.domino(1, 3) >>> b = dominoes.board() >>> repr(b) '' >>> b.add(d1, True) >>> b [1 2] >>> b.add(d2, False) EndsMismatchException: [1 3] cannot be added to the right of the board - values do not match! >>> b.add(d2, True) >>> b [3 1][1 2] >>> b.left_end() 3 >>> b.right_end() 2 >>> len(b) 2 add(d, left) Adds the provided domino to the specifed end of the board. left_end() Parameters d (Domino) domino to add left (bool) end of the board to which to add the domino (True for left, False for right) Returns None Raises EndsMismatchException if the values do not match Returns the outward-facing value on the left end of the board 13

18 Raises EmptyBoardException if the board is empty right_end() Returns the outward-facing value on the right end of the board Raises EmptyBoardException if the board is empty 5.2 Domino class dominoes.domino Python class for objects that represent a domino. Each domino is a rectangular tile with a line dividing its face into two square ends. Each end is marked with an integer value, typically ranging from 0 to 6 or 9. Parameters Variables first (int) value on one end second (int) value on the other end first value on one end second value on the other end >>> import dominoes >>> d = dominoes.domino(1, 2) >>> d [1 2] >>> d_inv = d.inverted() >>> d_inv [2 1] >>> d == d_inv True >>> other_d = dominoes.domino(1, 3) >>> d == other_d False >>> 2 in d True inverted() Returns a new Domino, with the same values, but in inverted positions 5.3 Game dominoes.game.next_player(player) Returns the player that plays after the specified player. Parameters player (int) player for which to calculate the next player. Must be 0, 1, 2, or 3. Returns the next player class dominoes.game.game(board, hands, moves, turn, valid_moves, starting_player, result) Python class for objects that represent a dominoes game. This variation of the dominoes game is played using 28 dominoes, which use values from 0 to 6: 14 Chapter 5. API Documentation

19 [0 0][0 1][0 2][0 3][0 4][0 5][0 6] [1 1][1 2][1 3][1 4][1 5][1 6] [2 2][2 3][2 4][2 5][2 6] [3 3][3 4][3 5][3 6] [4 4][4 5][4 6] [5 5][5 6] [6 6] These dominoes are shuffled, and distributed evenly among 4 players. These players then sit on the edges of a square. Players sitting opposite of each other are on the same team, and the center of the square is the game board. Throughout the game, each player will only be able to see their hand, the game board, and the amount of dominoes left in the hands of the other players. Note that no player can see the values on the dominoes in the hands of the other players. The 4 players will then take turns placing dominoes from their hands onto the game board. The game board consists of a chain of dominoes placed end to end such that the values on connected ends always match. Prior to distributing the dominoes, the 4 players will agree on which player will play first, either by designating a specific player or a specific domino that must be played first (often [6 6]). After the game starts, play proceeds clockwise. If a player is able to place a domino on the board, he/she must. Only if they have no possible moves, can the pass on their turn. The game ends either when a player runs out of dominoes or when no player can play a domino (in which case we say the game is stuck). If a player runs out of dominoes, his/her team will earn a number of points computed by adding all the values of all the dominoes remaining in the hands of the 3 other players. If the game is stuck, each team will add up all the values of all the dominoes remaining in their hands. The team with the lower score wins, and earns a number of points computed by adding both teams scores. If both teams have the same score, the game is declared a tie, and neither team earns any points. Variables board the game board hands a list containing each player s hand moves a list of the moves that have been played. Moves are represented by a tuple of Domino and bool. The domino indicates the domino that was played, and the bool indicates on what end of the board the domino was played (True for left, False for right). If the player passed, the move is None. turn the player whose turn it is valid_moves a tuple of valid moves for the player whose turn it is. Moves are represented in the same way as in the moves list. starting_player first player to make a move result None if the game is in progress; otherwise a Result object indicating the outcome of the game >>> import dominoes >>> d = dominoes.domino(6, 6) >>> g = dominoes.game.new(starting_domino=d) >>> g Board: [6 6] Player 0's hand: [2 4][5 5][2 3][1 3][1 6][1 2] Player 1's hand: [1 1][3 4][0 5][0 6][2 5][1 5][2 6] 5.3. Game 15

20 Player 2's hand: [0 4][0 3][4 4][3 6][0 2][4 5][1 4] Player 3's hand: [5 6][3 5][3 3][0 0][0 1][2 2][4 6] Player 1's turn >>> g.board [6 6] >>> g.hands [[2 4][5 5][2 3][1 3][1 6][1 2], [1 1][3 4][0 5][0 6][2 5][1 5][2 6], [0 4][0 3][4 4][3 6][0 2][ >>> g.turn 1 >>> g.result >>> g.valid_moves # True is for the left of the board, False is for the right [([0 6], True), ([2 6], True)] >>> g.make_move(*g.valid_moves[0]) >>> g.moves [([6 6], True), ([0 6], True)] >>> g Board: [0 6][6 6] Player 0's hand: [2 4][5 5][2 3][1 3][1 6][1 2] Player 1's hand: [1 1][3 4][0 5][2 5][1 5][2 6] Player 2's hand: [0 4][0 3][4 4][3 6][0 2][4 5][1 4] Player 3's hand: [5 6][3 5][3 3][0 0][0 1][2 2][4 6] Player 2's turn >>> g.make_move(*g.valid_moves[0])... >>> g.make_move(*g.valid_moves[0]) Result(player=1, won=true, points=-32) >>> g.result Result(player=1, won=true, points=-32) >>> g Board: [2 6][6 3][3 4][4 1][1 1][1 6][6 4][4 5][5 2][2 4][4 0][0 6][6 6][6 5][5 0][0 3][3 5][5 5 Player 0's hand: [2 3][1 3][1 2] Player 1's hand: Player 2's hand: [4 4][0 2] Player 3's hand: [3 3][0 0][2 2] Player 1 won and scored 32 points! all_possible_hands() Yields all possible hands for all players, given the information known by the player whose turn it is. This information includes the current player s hand, the sizes of the other players hands, and the moves played by every player, including the passes. Yields a list of possible Hand objects, corresponding to each player make_move(d, left) Plays a domino from the hand of the player whose turn it is onto one end of the game board. If the game does not end, the turn is advanced to the next player who has a valid move. Making a move is transactional - if the operation fails at any point, the game will return to its state before the operation began. Parameters d (Domino) domino to be played left (bool) end of the board on which to play the domino (True for left, False for right) Returns a Result object if the game ends; None otherwise Raises 16 Chapter 5. API Documentation

21 GameOverException if the game has already ended NoSuchDominoException if the domino to be played is not in the hand of the player whose turn it is EndsMismatchException if the domino cannot be placed on the specified position in the board missing_values() Computes the values that must be missing from each player s hand, based on when they have passed. Returns a list of sets, each one containing the values that must be missing from the corresponding player s hand classmethod new(starting_domino=none, starting_player=0) Parameters starting_domino (Domino) the domino that should be played to start the game. The player with this domino in their hand will play first. starting_player (int) the player that should play first. This value is ignored if a starting domino is provided. Players are referred to by their indexes: 0, 1, 2, and 3. 0 and 2 are on one team, and 1 and 3 are on another team. Returns a new game, initialized according to starting_domino and starting_player Raises NoSuchDominoException if starting_domino is invalid NoSuchPlayerException if starting_player is invalid random_possible_hands() Returns random possible hands for all players, given the information known by the player whose turn it is. This information includes the current player s hand, the sizes of the other players hands, and the moves played by every player, including the passes. Returns a list of possible Hand objects, corresponding to each player skinny_board() Converts the board representation used by this game from a regular Board to a less descriptive but more memory efficient SkinnyBoard. Returns None 5.4 Hand dominoes.hand.contains_value(hand, value) Checks whether a value appears in any of the dominoes in the hand. Parameters hand (Hand) hand in which to look for the value value (int) value to look for in the hand Returns bool indicating whether the value was found in the hand class dominoes.hand.hand(dominoes) Python class for objects that represent a hand of dominoes. Parameters dominoes (Sequence) sequence of dominoes in the hand 5.4. Hand 17

22 >>> import dominoes >>> d1 = dominoes.domino(1, 2) >>> d2 = dominoes.domino(1, 3) >>> h = dominoes.hand([d1, d2]) >>> h [1 2][1 3] >>> d1 in h True >>> len(h) 2 >>> for d in h: d [1 2] [1 3] >>> h.play(d1) >>> h [1 3] draw(d, i=none) Adds a domino to the hand. Parameters d (Domino) domino to add to the hand i (int) index at which to add the domino; by default adds to the end of the hand Returns None play(d) Removes a domino from the hand. Parameters d (Domino) domino to remove from the hand Returns the index within the hand of the played domino Raises NoSuchDominoException if the domino is not in the hand 5.5 Result class dominoes.result namedtuple to represent the result of a dominoes game. Variables player the last player to make a move won True if the game ended due to an empty hand; False if the game ended due to being stuck points the absolute value of this quantity indicates the amount of points earned by the winning team. This quantity is positive if the team consisting of players 0 and 2 won, negative if the team consisting of players 1 and 3 won, and 0 in case of a tie. >>> import dominoes >>> dominoes.result(1, True, -25) Result(player=1, won=true, points=-25) 18 Chapter 5. API Documentation

23 5.6 Series class dominoes.series(target_score=200, starting_domino=none) Python class for objects that represent a series of dominoes games. A series of dominoes games is played with 4 players, split into two teams. They will then play a sequence of games and keep a running tally of how many points each team has scored. When a team s cumulative score surpasses some predetermined threshold (usually 100 or 200), that team wins. Prior to starting the series, the teams agree to a starting domino (usually [6 6]). The player that draws this domino during the first game will play first. The starting player for subsequent games is determined as follows: If a player wins by playing their last domino, that player will start the following game. If a player makes the game stuck, and his/her team wins, that player will start the following game. If a player makes the game stuck, and there is a tie, the player who started that game will start the following game. If a player makes the game stuck, and his/her team loses, then the following player (from the other team) will start the following game. Parameters Variables target_score (int) score up to which the series will be played; defaults to 200 starting_domino (Domino) domino that will determine which player starts the first game; defaults to [6 6] games ordered list of games played in the series scores list containing the two teams scores; team 0 has players 0 and 2, and team 1 has players 1 and 3 target_score score up to which the series will be played >>> import dominoes >>> s = dominoes.series(target_score=50) >>> s Series to 50 points: Team 0 has 0 points. Team 1 has 0 points. >>> s.is_over() False >>> s.games[0] Board: [6 6] Player 0's hand: [0 3][4 4][1 5][0 2][3 4][2 3] Player 1's hand: [4 6][5 5][2 4][2 5][0 5][3 6][1 4] Player 2's hand: [3 3][1 3][0 6][5 6][2 2][3 5][2 6] Player 3's hand: [0 0][0 4][0 1][1 1][4 5][1 6][1 2] Player 1's turn >>> s.scores [0, 0] >>> s.next_game() GameInProgressException: Cannot start a new game - the latest one has not finished! >>> s.games[0].make_move(*s.games[0].valid_moves[0])... >>> s.games[0].make_move(*s.games[0].valid_moves[0]) Result(player=3, won=false, points=-24) 5.6. Series 19

24 >>> s.next_game() Board: Player 0's hand: [5 6][3 6][2 2][2 3][4 6][4 4][1 1] Player 1's hand: [1 5][2 5][0 4][1 3][4 5][0 1][3 4] Player 2's hand: [6 6][2 4][0 6][3 3][1 2][3 5][0 5] Player 3's hand: [0 0][0 3][5 5][1 6][1 4][2 6][0 2] Player 3's turn >>> s Series to 50 points: Team 0 has 0 points. Team 1 has 24 points. >>> s.is_over() False >>> len(s.games) 2 >>> s.scores [0, 24] is_over() Returns boolean indicating whether either team has reached the target score, thus ending the series next_game() Advances the series to the next game, if possible. Also updates each team s score with points from the most recently completed game. Returns the next game, if the previous game did not end the series; None otherwise Raises SeriesOverException if the series has already ended GameInProgressException if the last game has not yet finished 5.7 SkinnyBoard class dominoes.skinnyboard(left=none, right=none, length=0) Python class for objects that represent a domino board. A domino board consists of a series of dominoes placed end to end such that the values on connected ends match. This class reduces the memory required by each instance by remembering only the values at the ends of the board. Parameters left (int) value on the left end of the board right (int) value on the right end of the board length (int) amount of dominoes on the board >>> import dominoes >>> d1 = dominoes.domino(1, 2) >>> d2 = dominoes.domino(1, 3) >>> b = dominoes.skinnyboard() >>> repr(b) '' >>> b.add(d1, True) >>> b [1 2] 20 Chapter 5. API Documentation

25 >>> b.add(d2, False) EndsMismatchException: [1 3] cannot be added to the right of the board - values do not match! >>> b.add(d2, True) >>> b [3?][? 2] >>> b.left_end() 3 >>> b.right_end() 2 >>> len(b) 2 add(d, left) Adds the provided domino to the specifed end of the board. Parameters d (Domino) domino to add left (bool) end of the board to which to add the domino (True for left, False for right) Returns None Raises EndsMismatchException if the values do not match classmethod from_board(board) left_end() right_end() Parameters board (Board) board to represent Returns SkinnyBoard to represent the given Board Returns the outward-facing value on the left end of the board Raises EmptyBoardException if the board is empty Returns the outward-facing value on the right end of the board Raises EmptyBoardException if the board is empty 5.7. SkinnyBoard 21

26 22 Chapter 5. API Documentation

27 CHAPTER 6 Questions, Comments, Ideas? Feel free to create an issue or a pull request. 23

28 24 Chapter 6. Questions, Comments, Ideas?

29 Python Module Index d dominoes.game, 14 dominoes.hand, 17 dominoes.players, 9 dominoes.search, 11 25

30 26 Python Module Index

31 Index A add() (dominoes.board method), 13 add() (dominoes.skinnyboard method), 21 all_possible_hands() (dominoes.game.game method), 16 alphabeta() (in module dominoes.search), 11 B Board (class in dominoes), 13 bota_gorda() (in module dominoes.players), 9 C contains_value() (in module dominoes.hand), 17 counter (class in dominoes.players), 9 D Domino (class in dominoes), 14 dominoes.game (module), 14 dominoes.hand (module), 17 dominoes.players (module), 9 dominoes.search (module), 11 double() (in module dominoes.players), 10 draw() (dominoes.hand.hand method), 18 F from_board() (dominoes.skinnyboard class method), 21 G Game (class in dominoes.game), 14 H Hand (class in dominoes.hand), 17 I identity() (in module dominoes.players), 10 inverted() (dominoes.domino method), 14 is_over() (dominoes.series method), 20 L left_end() (dominoes.board method), 13 left_end() (dominoes.skinnyboard method), 21 M make_move() (dominoes.game.game method), 16 make_moves() (in module dominoes.search), 11 missing_values() (dominoes.game.game method), 17 N new() (dominoes.game.game class method), 17 next_game() (dominoes.series method), 20 next_player() (in module dominoes.game), 14 O omniscient (class in dominoes.players), 10 P play() (dominoes.hand.hand method), 18 probabilistic_alphabeta (class in dominoes.players), 10 R random() (in module dominoes.players), 10 random_possible_hands() (dominoes.game.game method), 17 Result (class in dominoes), 18 reverse() (in module dominoes.players), 11 right_end() (dominoes.board method), 14 right_end() (dominoes.skinnyboard method), 21 S Series (class in dominoes), 19 skinny_board() (dominoes.game.game method), 17 SkinnyBoard (class in dominoes), 20 27

Documentation and Discussion

Documentation and Discussion 1 of 9 11/7/2007 1:21 AM ASSIGNMENT 2 SUBJECT CODE: CS 6300 SUBJECT: ARTIFICIAL INTELLIGENCE LEENA KORA EMAIL:leenak@cs.utah.edu Unid: u0527667 TEEKO GAME IMPLEMENTATION Documentation and Discussion 1.

More information

1 Modified Othello. Assignment 2. Total marks: 100. Out: February 10 Due: March 5 at 14:30

1 Modified Othello. Assignment 2. Total marks: 100. Out: February 10 Due: March 5 at 14:30 CSE 3402 3.0 Intro. to Concepts of AI Winter 2012 Dept. of Computer Science & Engineering York University Assignment 2 Total marks: 100. Out: February 10 Due: March 5 at 14:30 Note 1: To hand in your report

More information

For slightly more detailed instructions on how to play, visit:

For slightly more detailed instructions on how to play, visit: Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! The purpose of this assignment is to program some of the search algorithms and game playing strategies that we have learned

More information

2 person perfect information

2 person perfect information Why Study Games? Games offer: Intellectual Engagement Abstraction Representability Performance Measure Not all games are suitable for AI research. We will restrict ourselves to 2 person perfect information

More information

Programming an Othello AI Michael An (man4), Evan Liang (liange)

Programming an Othello AI Michael An (man4), Evan Liang (liange) Programming an Othello AI Michael An (man4), Evan Liang (liange) 1 Introduction Othello is a two player board game played on an 8 8 grid. Players take turns placing stones with their assigned color (black

More information

class TicTacToe: def init (self): # board is a list of 10 strings representing the board(ignore index 0) self.board = [" "]*10 self.

class TicTacToe: def init (self): # board is a list of 10 strings representing the board(ignore index 0) self.board = [ ]*10 self. The goal of this lab is to practice problem solving by implementing the Tic Tac Toe game. Tic Tac Toe is a game for two players who take turns to fill a 3 X 3 grid with either o or x. Each player alternates

More information

2048: An Autonomous Solver

2048: An Autonomous Solver 2048: An Autonomous Solver Final Project in Introduction to Artificial Intelligence ABSTRACT. Our goal in this project was to create an automatic solver for the wellknown game 2048 and to analyze how different

More information

Score Boards (Connect the two boards with single digits at the joint section)

Score Boards (Connect the two boards with single digits at the joint section) Notes The "hexagonal frames" are also needed for the game even after removing the triangular tiles from them, so please do NOT lose the frames. You cannot play the game without them! Kaleido Playing Time:

More information

Classic Dominoes. Number of Players: 2-4

Classic Dominoes. Number of Players: 2-4 Classic Dominoes Number of Players: 2-4 First, all dominoes must be turned face down and mixed. Each player then draws five dominoes and stands them up on end in front of them so the backs of the dominoes

More information

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

Game Playing for a Variant of Mancala Board Game (Pallanguzhi) Game Playing for a Variant of Mancala Board Game (Pallanguzhi) Varsha Sankar (SUNet ID: svarsha) 1. INTRODUCTION Game playing is a very interesting area in the field of Artificial Intelligence presently.

More information

Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! Due (in dropbox) Tuesday, September 23, 9:34am

Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! Due (in dropbox) Tuesday, September 23, 9:34am Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! Due (in dropbox) Tuesday, September 23, 9:34am The purpose of this assignment is to program some of the search algorithms

More information

Homework Assignment #2

Homework Assignment #2 CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2 Assigned: Thursday, February 15 Due: Sunday, February 25 Hand-in Instructions This homework assignment includes two written problems

More information

AI Approaches to Ultimate Tic-Tac-Toe

AI Approaches to Ultimate Tic-Tac-Toe AI Approaches to Ultimate Tic-Tac-Toe Eytan Lifshitz CS Department Hebrew University of Jerusalem, Israel David Tsurel CS Department Hebrew University of Jerusalem, Israel I. INTRODUCTION This report is

More information

Rummikub Competition Start-up Kit

Rummikub Competition Start-up Kit Rummikub Competition Startup Kit Rummikub Competition / Event Set Up Wellorganized Rummikub events can attract many people. Keep in mind that competitors may not always be from a homogenous group (i.e.

More information

CS Programming Project 1

CS Programming Project 1 CS 340 - Programming Project 1 Card Game: Kings in the Corner Due: 11:59 pm on Thursday 1/31/2013 For this assignment, you are to implement the card game of Kings Corner. We will use the website as http://www.pagat.com/domino/kingscorners.html

More information

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

CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class http://www.clubpenguinsaraapril.com/2009/07/mancala-game-in-club-penguin.html The purpose of this assignment is to program some

More information

Programming Languages and Techniques Homework 3

Programming Languages and Techniques Homework 3 Programming Languages and Techniques Homework 3 Due as per deadline on canvas This homework deals with the following topics * lists * being creative in creating a game strategy (aka having fun) General

More information

Five-In-Row with Local Evaluation and Beam Search

Five-In-Row with Local Evaluation and Beam Search Five-In-Row with Local Evaluation and Beam Search Jiun-Hung Chen and Adrienne X. Wang jhchen@cs axwang@cs Abstract This report provides a brief overview of the game of five-in-row, also known as Go-Moku,

More information

A. Rules of blackjack, representations, and playing blackjack

A. Rules of blackjack, representations, and playing blackjack CSCI 4150 Introduction to Artificial Intelligence, Fall 2005 Assignment 7 (140 points), out Monday November 21, due Thursday December 8 Learning to play blackjack In this assignment, you will implement

More information

Learning to Play like an Othello Master CS 229 Project Report. Shir Aharon, Amanda Chang, Kent Koyanagi

Learning to Play like an Othello Master CS 229 Project Report. Shir Aharon, Amanda Chang, Kent Koyanagi Learning to Play like an Othello Master CS 229 Project Report December 13, 213 1 Abstract This project aims to train a machine to strategically play the game of Othello using machine learning. Prior to

More information

Chickenfoot Dominoes Game Rules

Chickenfoot Dominoes Game Rules Chickenfoot Dominoes Game Rules Overview Chickenfoot is a domino game where the basic object of each hand is to get rid of all of your dominoes before your opponents can do the same. Although it is a game

More information

CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2. Assigned: Monday, February 6 Due: Saturday, February 18

CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2. Assigned: Monday, February 6 Due: Saturday, February 18 CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2 Assigned: Monday, February 6 Due: Saturday, February 18 Hand-In Instructions This assignment includes written problems and programming

More information

When placed on Towers, Player Marker L-Hexes show ownership of that Tower and indicate the Level of that Tower. At Level 1, orient the L-Hex

When placed on Towers, Player Marker L-Hexes show ownership of that Tower and indicate the Level of that Tower. At Level 1, orient the L-Hex Tower Defense Players: 1-4. Playtime: 60-90 Minutes (approximately 10 minutes per Wave). Recommended Age: 10+ Genre: Turn-based strategy. Resource management. Tile-based. Campaign scenarios. Sandbox mode.

More information

The Caster Chronicles Comprehensive Rules ver. 1.0 Last Update:October 20 th, 2017 Effective:October 20 th, 2017

The Caster Chronicles Comprehensive Rules ver. 1.0 Last Update:October 20 th, 2017 Effective:October 20 th, 2017 The Caster Chronicles Comprehensive Rules ver. 1.0 Last Update:October 20 th, 2017 Effective:October 20 th, 2017 100. Game Overview... 2 101. Overview... 2 102. Number of Players... 2 103. Win Conditions...

More information

CMSC 671 Project Report- Google AI Challenge: Planet Wars

CMSC 671 Project Report- Google AI Challenge: Planet Wars 1. Introduction Purpose The purpose of the project is to apply relevant AI techniques learned during the course with a view to develop an intelligent game playing bot for the game of Planet Wars. Planet

More information

Approaching The Royal Game of Ur with Genetic Algorithms and ExpectiMax

Approaching The Royal Game of Ur with Genetic Algorithms and ExpectiMax Approaching The Royal Game of Ur with Genetic Algorithms and ExpectiMax Tang, Marco Kwan Ho (20306981) Tse, Wai Ho (20355528) Zhao, Vincent Ruidong (20233835) Yap, Alistair Yun Hee (20306450) Introduction

More information

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

Pay attention to how flipping of pieces is determined with each move. CSCE 625 Programing Assignment #5 due: Friday, Mar 13 (by start of class) Minimax Search for Othello The goal of this assignment is to implement a program for playing Othello using Minimax search. Othello,

More information

CS188: Artificial Intelligence, Fall 2011 Written 2: Games and MDP s

CS188: Artificial Intelligence, Fall 2011 Written 2: Games and MDP s CS88: Artificial Intelligence, Fall 20 Written 2: Games and MDP s Due: 0/5 submitted electronically by :59pm (no slip days) Policy: Can be solved in groups (acknowledge collaborators) but must be written

More information

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

COMP3211 Project. Artificial Intelligence for Tron game. Group 7. Chiu Ka Wa ( ) Chun Wai Wong ( ) Ku Chun Kit ( ) COMP3211 Project Artificial Intelligence for Tron game Group 7 Chiu Ka Wa (20369737) Chun Wai Wong (20265022) Ku Chun Kit (20123470) Abstract Tron is an old and popular game based on a movie of the same

More information

Using Artificial intelligent to solve the game of 2048

Using Artificial intelligent to solve the game of 2048 Using Artificial intelligent to solve the game of 2048 Ho Shing Hin (20343288) WONG, Ngo Yin (20355097) Lam Ka Wing (20280151) Abstract The report presents the solver of the game 2048 base on artificial

More information

Comp th February Due: 11:59pm, 25th February 2014

Comp th February Due: 11:59pm, 25th February 2014 HomeWork Assignment 2 Comp 590.133 4th February 2014 Due: 11:59pm, 25th February 2014 Getting Started What to submit: Written parts of assignment and descriptions of the programming part of the assignment

More information

CSCI 4150 Introduction to Artificial Intelligence, Fall 2004 Assignment 7 (135 points), out Monday November 22, due Thursday December 9

CSCI 4150 Introduction to Artificial Intelligence, Fall 2004 Assignment 7 (135 points), out Monday November 22, due Thursday December 9 CSCI 4150 Introduction to Artificial Intelligence, Fall 2004 Assignment 7 (135 points), out Monday November 22, due Thursday December 9 Learning to play blackjack In this assignment, you will implement

More information

CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm

CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm Weight: 8% Individual Work: All assignments in this course are to be completed individually. Students are advised to read the guidelines

More information

Lab Exercise #10. Assignment Overview

Lab Exercise #10. Assignment Overview Lab Exercise #10 Assignment Overview You will work with a partner on this exercise during your lab session. Two people should work at one computer. Occasionally switch the person who is typing. Talk to

More information

CS 229 Final Project: Using Reinforcement Learning to Play Othello

CS 229 Final Project: Using Reinforcement Learning to Play Othello CS 229 Final Project: Using Reinforcement Learning to Play Othello Kevin Fry Frank Zheng Xianming Li ID: kfry ID: fzheng ID: xmli 16 December 2016 Abstract We built an AI that learned to play Othello.

More information

BMT 2018 Combinatorics Test Solutions March 18, 2018

BMT 2018 Combinatorics Test Solutions March 18, 2018 . Bob has 3 different fountain pens and different ink colors. How many ways can he fill his fountain pens with ink if he can only put one ink in each pen? Answer: 0 Solution: He has options to fill his

More information

Make better decisions. Learn the rules of the game before you play.

Make better decisions. Learn the rules of the game before you play. BLACKJACK BLACKJACK Blackjack, also known as 21, is a popular casino card game in which players compare their hand of cards with that of the dealer. To win at Blackjack, a player must create a hand with

More information

GorbyX Rummy is a unique variation of Rummy card games using the invented five suited

GorbyX Rummy is a unique variation of Rummy card games using the invented five suited GorbyX Rummy is a unique variation of Rummy card games using the invented five suited GorbyX playing cards where each suit represents one of the commonly recognized food groups such as vegetables, fruits,

More information

CSE 3401 Assignment 4 Winter Date out: March 26. Date due: April 6, at 11:55 pm

CSE 3401 Assignment 4 Winter Date out: March 26. Date due: April 6, at 11:55 pm CSE 3401 Assignment 4 Winter 2013 Date out: March 26. Date due: April 6, at 11:55 pm The submitted assignment must be based on your individual work. Review the Academic Honesty Guidelines for more details.

More information

Assignment 2 (Part 1 of 2), University of Toronto, CSC384 - Intro to AI, Winter

Assignment 2 (Part 1 of 2), University of Toronto, CSC384 - Intro to AI, Winter Assignment 2 (Part 1 of 2), University of Toronto, CSC384 - Intro to AI, Winter 2011 1 Computer Science 384 February 20, 2011 St. George Campus University of Toronto Homework Assignment #2 (Part 1 of 2)

More information

UMBC 671 Midterm Exam 19 October 2009

UMBC 671 Midterm Exam 19 October 2009 Name: 0 1 2 3 4 5 6 total 0 20 25 30 30 25 20 150 UMBC 671 Midterm Exam 19 October 2009 Write all of your answers on this exam, which is closed book and consists of six problems, summing to 160 points.

More information

Assignment 2, University of Toronto, CSC384 - Intro to AI, Winter

Assignment 2, University of Toronto, CSC384 - Intro to AI, Winter Assignment 2, University of Toronto, CSC384 - Intro to AI, Winter 2014 1 Computer Science 384 March 5, 2014 St. George Campus University of Toronto Homework Assignment #2 Game Tree Search Due: Mon March

More information

python-yeelight Documentation

python-yeelight Documentation python-yeelight Documentation Release 0.3.3 Stavros Korokithakis Sep 18, 2017 Contents 1 Installation 3 2 Usage 5 3 Effects 9 3.1 Working with Flow............................................ 9 3.2 yeelight

More information

Red Dragon Inn Tournament Rules

Red Dragon Inn Tournament Rules Red Dragon Inn Tournament Rules last updated Aug 11, 2016 The Organized Play program for The Red Dragon Inn ( RDI ), sponsored by SlugFest Games ( SFG ), follows the rules and formats provided herein.

More information

Phase 10 Masters Edition Copyright 2000 Kenneth R. Johnson For 2 to 4 Players

Phase 10 Masters Edition Copyright 2000 Kenneth R. Johnson For 2 to 4 Players Phase 10 Masters Edition Copyright 2000 Kenneth R. Johnson For 2 to 4 Players Object: To be the first player to complete all 10 Phases. In case of a tie, the player with the lowest score is the winner.

More information

Artificial Intelligence Search III

Artificial Intelligence Search III Artificial Intelligence Search III Lecture 5 Content: Search III Quick Review on Lecture 4 Why Study Games? Game Playing as Search Special Characteristics of Game Playing Search Ingredients of 2-Person

More information

Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning

Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning CSCE 315 Programming Studio Fall 2017 Project 2, Lecture 2 Adapted from slides of Yoonsuck Choe, John Keyser Two-Person Perfect Information Deterministic

More information

Girls Programming Network. Scissors Paper Rock!

Girls Programming Network. Scissors Paper Rock! Girls Programming Network Scissors Paper Rock! This project was created by GPN Australia for GPN sites all around Australia! This workbook and related materials were created by tutors at: Sydney, Canberra

More information

CSE231 Spring Updated 04/09/2019 Project 10: Basra - A Fishing Card Game

CSE231 Spring Updated 04/09/2019 Project 10: Basra - A Fishing Card Game CSE231 Spring 2019 Updated 04/09/2019 Project 10: Basra - A Fishing Card Game This assignment is worth 55 points (5.5% of the course grade) and must be completed and turned in before 11:59pm on April 15,

More information

MONUMENTAL RULES. COMPONENTS Cards AIM OF THE GAME SETUP Funforge. Matthew Dunstan. 1 4 players l min l Ages 14+ Tokens

MONUMENTAL RULES. COMPONENTS Cards AIM OF THE GAME SETUP Funforge. Matthew Dunstan. 1 4 players l min l Ages 14+ Tokens Matthew Dunstan MONUMENTAL 1 4 players l 90-120 min l Ages 14+ RULES In Monumental, each player leads a unique civilization. How will you shape your destiny, and how will history remember you? Dare you

More information

Roll & Make. Represent It a Different Way. Show Your Number as a Number Bond. Show Your Number on a Number Line. Show Your Number as a Strip Diagram

Roll & Make. Represent It a Different Way. Show Your Number as a Number Bond. Show Your Number on a Number Line. Show Your Number as a Strip Diagram Roll & Make My In Picture Form In Word Form In Expanded Form With Money Represent It a Different Way Make a Comparison Statement with a Greater than Your Make a Comparison Statement with a Less than Your

More information

A Rule-Based Learning Poker Player

A Rule-Based Learning Poker Player CSCI 4150 Introduction to Artificial Intelligence, Fall 2000 Assignment 6 (135 points), out Tuesday October 31; see document for due dates A Rule-Based Learning Poker Player For this assignment, teams

More information

Games and Adversarial Search II

Games and Adversarial Search II Games and Adversarial Search II Alpha-Beta Pruning (AIMA 5.3) Some slides adapted from Richard Lathrop, USC/ISI, CS 271 Review: The Minimax Rule Idea: Make the best move for MAX assuming that MIN always

More information

Project 1: A Game of Greed

Project 1: A Game of Greed Project 1: A Game of Greed In this project you will make a program that plays a dice game called Greed. You start only with a program that allows two players to play it against each other. You will build

More information

Assignment 12 CSc 210 Fall 2017 Due December 6th, 8:00 pm MST

Assignment 12 CSc 210 Fall 2017 Due December 6th, 8:00 pm MST Assignment 12 CSc 210 Fall 2017 Due December 6th, 8:00 pm MST Introduction In this final project, we will incorporate many ideas learned from this class into one program. Using your skills for decomposing

More information

MAGISTRATVM A Group Projects game for the piecepack

MAGISTRATVM A Group Projects game for the piecepack MAGISTRATVM A Group Projects game for the piecepack Date 1 November 2004 version 1.1 Number of Players 3 or 4 Game Length 90-120 min Designers Brad Johnson & Phillip Lerche Copyright 2003 the designers

More information

Bachelor Project Major League Wizardry: Game Engine. Phillip Morten Barth s113404

Bachelor Project Major League Wizardry: Game Engine. Phillip Morten Barth s113404 Bachelor Project Major League Wizardry: Game Engine Phillip Morten Barth s113404 February 28, 2014 Abstract The goal of this project is to design and implement a flexible game engine based on the rules

More information

The Last Diminisher Method Game Steps

The Last Diminisher Method Game Steps Chapter 3 Notes from The Last Diminisher Method Game Steps Start: randomly assign player order P 1, P 2, P 3,... P N. (For instance, each player could draw a number from a hat, in which there are the numbers

More information

Project 1. Out of 20 points. Only 30% of final grade 5-6 projects in total. Extra day: 10%

Project 1. Out of 20 points. Only 30% of final grade 5-6 projects in total. Extra day: 10% Project 1 Out of 20 points Only 30% of final grade 5-6 projects in total Extra day: 10% 1. DFS (2) 2. BFS (1) 3. UCS (2) 4. A* (3) 5. Corners (2) 6. Corners Heuristic (3) 7. foodheuristic (5) 8. Suboptimal

More information

HW4: The Game of Pig Due date: Tuesday, Mar 15 th at 9pm. Late turn-in deadline is Thursday, Mar 17th at 9pm.

HW4: The Game of Pig Due date: Tuesday, Mar 15 th at 9pm. Late turn-in deadline is Thursday, Mar 17th at 9pm. HW4: The Game of Pig Due date: Tuesday, Mar 15 th at 9pm. Late turn-in deadline is Thursday, Mar 17th at 9pm. 1. Background: Pig is a folk jeopardy dice game described by John Scarne in 1945, and was an

More information

University of Amsterdam. Encyclopedia of AI project. Tic-Tac-Toe. Authors: Andreas van Cranenburgh Ricus Smid. Supervisor: Maarten van Someren

University of Amsterdam. Encyclopedia of AI project. Tic-Tac-Toe. Authors: Andreas van Cranenburgh Ricus Smid. Supervisor: Maarten van Someren University of Amsterdam Encyclopedia of AI project Tic-Tac-Toe Authors: Andreas van Cranenburgh Ricus Smid Supervisor: Maarten van Someren January 27, 2007 Encyclopedia of AI, assignment 5 Tic-tac-toe

More information

Free Cell Solver. Copyright 2001 Kevin Atkinson Shari Holstege December 11, 2001

Free Cell Solver. Copyright 2001 Kevin Atkinson Shari Holstege December 11, 2001 Free Cell Solver Copyright 2001 Kevin Atkinson Shari Holstege December 11, 2001 Abstract We created an agent that plays the Free Cell version of Solitaire by searching through the space of possible sequences

More information

EDC Championship rules v1.3 As adapted for ECA European Dealer Championship. General

EDC Championship rules v1.3 As adapted for ECA European Dealer Championship. General EDC Championship rules v1.3 General The ECA reserves the right to promote and provide reportage of the championship via various broadcast mediums such as radio, television, internet, newspapers, etcetera,

More information

CS510 \ Lecture Ariel Stolerman

CS510 \ Lecture Ariel Stolerman CS510 \ Lecture04 2012-10-15 1 Ariel Stolerman Administration Assignment 2: just a programming assignment. Midterm: posted by next week (5), will cover: o Lectures o Readings A midterm review sheet will

More information

ARTIFICIAL INTELLIGENCE (CS 370D)

ARTIFICIAL INTELLIGENCE (CS 370D) Princess Nora University Faculty of Computer & Information Systems ARTIFICIAL INTELLIGENCE (CS 370D) (CHAPTER-5) ADVERSARIAL SEARCH ADVERSARIAL SEARCH Optimal decisions Min algorithm α-β pruning Imperfect,

More information

MyPawns OppPawns MyKings OppKings MyThreatened OppThreatened MyWins OppWins Draws

MyPawns OppPawns MyKings OppKings MyThreatened OppThreatened MyWins OppWins Draws The Role of Opponent Skill Level in Automated Game Learning Ying Ge and Michael Hash Advisor: Dr. Mark Burge Armstrong Atlantic State University Savannah, Geogia USA 31419-1997 geying@drake.armstrong.edu

More information

CMPUT 396 Tic-Tac-Toe Game

CMPUT 396 Tic-Tac-Toe Game CMPUT 396 Tic-Tac-Toe Game Recall minimax: - For a game tree, we find the root minimax from leaf values - With minimax we can always determine the score and can use a bottom-up approach Why use minimax?

More information

One Zero One. The binary card game. Players: 2 Ages: 8+ Play Time: 10 minutes

One Zero One. The binary card game. Players: 2 Ages: 8+ Play Time: 10 minutes One Zero One The binary card game Players: 2 Ages: 8+ Play Time: 10 minutes In the world of computer programming, there can only be one winner - either zeros or ones! One Zero One is a small, tactical

More information

Corners! How To Play - a Comprehensive Guide. Written by Peter V. Costescu RPClasses.com

Corners! How To Play - a Comprehensive Guide. Written by Peter V. Costescu RPClasses.com Corners! How To Play - a Comprehensive Guide. Written by Peter V. Costescu 2017 RPClasses.com How to Play Corners A Comprehensive Guide There are many different card games out there, and there are a variety

More information

Assignment 1. Due: 2:00pm, Monday 14th November 2016 This assignment counts for 25% of your final grade.

Assignment 1. Due: 2:00pm, Monday 14th November 2016 This assignment counts for 25% of your final grade. Assignment 1 Due: 2:00pm, Monday 14th November 2016 This assignment counts for 25% of your final grade. For this assignment you are being asked to design, implement and document a simple card game in the

More information

Lab: Prisoner s Dilemma

Lab: Prisoner s Dilemma Lab: Prisoner s Dilemma CSI 3305: Introduction to Computational Thinking October 24, 2010 1 Introduction How can rational, selfish actors cooperate for their common good? This is the essential question

More information

Artificial Intelligence Lecture 3

Artificial Intelligence Lecture 3 Artificial Intelligence Lecture 3 The problem Depth first Not optimal Uses O(n) space Optimal Uses O(B n ) space Can we combine the advantages of both approaches? 2 Iterative deepening (IDA) Let M be a

More information

RULES. Version 2.1 July How to Play

RULES. Version 2.1 July How to Play HAMMAN '09 G.DILLON '12 TRIBBLES KLARHAUSER '14 TUFTS '13 "Most curious creature, Captain." Most card games have just one deck of cards that never changes, but Tribbles is a customizable card game (CCG)

More information

46.1 Introduction. Foundations of Artificial Intelligence Introduction MCTS in AlphaGo Neural Networks. 46.

46.1 Introduction. Foundations of Artificial Intelligence Introduction MCTS in AlphaGo Neural Networks. 46. Foundations of Artificial Intelligence May 30, 2016 46. AlphaGo and Outlook Foundations of Artificial Intelligence 46. AlphaGo and Outlook Thomas Keller Universität Basel May 30, 2016 46.1 Introduction

More information

Adversarial Search. Rob Platt Northeastern University. Some images and slides are used from: AIMA CS188 UC Berkeley

Adversarial Search. Rob Platt Northeastern University. Some images and slides are used from: AIMA CS188 UC Berkeley Adversarial Search Rob Platt Northeastern University Some images and slides are used from: AIMA CS188 UC Berkeley What is adversarial search? Adversarial search: planning used to play a game such as chess

More information

Scrabble. Assignment 2 CSSE1001/7030 Semester 2, Version 1.0.0rc1. 20 marks : 10% Due Friday 22 September, 2017, 21:30

Scrabble. Assignment 2 CSSE1001/7030 Semester 2, Version 1.0.0rc1. 20 marks : 10% Due Friday 22 September, 2017, 21:30 Scrabble Assignment 2 CSSE1001/7030 Semester 2, 2017 Version 1.0.0rc1 20 marks : 10% Due Friday 22 September, 2017, 21:30 1. Introduction For this assignment, you will be writing code that supports a simple

More information

38 wooden hexagons 19 red and 19 black Carrying bag Instructions

38 wooden hexagons 19 red and 19 black Carrying bag Instructions Contents 38 wooden hexagons 19 red and 19 black Carrying bag Instructions Ob j e c t o f t h e Ga m e To form, using six hexagons of one s color, any of the three winning shapes shown below. The three

More information

Special Notice. Rules. Weiß Schwarz (English Edition) Comprehensive Rules ver. 2.01b Last updated: June 12, Outline of the Game

Special Notice. Rules. Weiß Schwarz (English Edition) Comprehensive Rules ver. 2.01b Last updated: June 12, Outline of the Game Weiß Schwarz (English Edition) Comprehensive Rules ver. 2.01b Last updated: June 12, 2018 Contents Page 1. Outline of the Game... 1 2. Characteristics of a Card... 2 3. Zones of the Game... 4 4. Basic

More information

Flask-Alembic. Release dev

Flask-Alembic. Release dev Flask-Alembic Release 2.0.1.dev20161026 October 26, 2016 Contents 1 Installation 3 2 Configuration 5 3 Basic Usage 7 4 Independent Named Branches 9 5 Command Line 11 6 Differences from Alembic 13 7 API

More information

CONTENTS. 1. Number of Players. 2. General. 3. Ending the Game. FF-TCG Comprehensive Rules ver.1.0 Last Update: 22/11/2017

CONTENTS. 1. Number of Players. 2. General. 3. Ending the Game. FF-TCG Comprehensive Rules ver.1.0 Last Update: 22/11/2017 FF-TCG Comprehensive Rules ver.1.0 Last Update: 22/11/2017 CONTENTS 1. Number of Players 1.1. This document covers comprehensive rules for the FINAL FANTASY Trading Card Game. The game is played by two

More information

by Dario Dordoni The toilet isn't always right behind the corner: sometimes finding it is a quest in itself!

by Dario Dordoni The toilet isn't always right behind the corner: sometimes finding it is a quest in itself! by Dario Dordoni The toilet isn't always right behind the corner: sometimes finding it is a quest in itself! Dungeon WC is a real time cooperative game where the players try to connect dungeon cards to

More information

UNIVERSITY of PENNSYLVANIA CIS 391/521: Fundamentals of AI Midterm 1, Spring 2010

UNIVERSITY of PENNSYLVANIA CIS 391/521: Fundamentals of AI Midterm 1, Spring 2010 UNIVERSITY of PENNSYLVANIA CIS 391/521: Fundamentals of AI Midterm 1, Spring 2010 Question Points 1 Environments /2 2 Python /18 3 Local and Heuristic Search /35 4 Adversarial Search /20 5 Constraint Satisfaction

More information

Card Racer. By Brad Bachelor and Mike Nicholson

Card Racer. By Brad Bachelor and Mike Nicholson 2-4 Players 30-50 Minutes Ages 10+ Card Racer By Brad Bachelor and Mike Nicholson It s 2066, and you race the barren desert of Indianapolis. The crowd s attention span isn t what it used to be, however.

More information

game tree complete all possible moves

game tree complete all possible moves Game Trees Game Tree A game tree is a tree the nodes of which are positions in a game and edges are moves. The complete game tree for a game is the game tree starting at the initial position and containing

More information

The US Chess Rating system

The US Chess Rating system The US Chess Rating system Mark E. Glickman Harvard University Thomas Doan Estima April 24, 2017 The following algorithm is the procedure to rate US Chess events. The procedure applies to five separate

More information

Game Tree Search. CSC384: Introduction to Artificial Intelligence. Generalizing Search Problem. General Games. What makes something a game?

Game Tree Search. CSC384: Introduction to Artificial Intelligence. Generalizing Search Problem. General Games. What makes something a game? CSC384: Introduction to Artificial Intelligence Generalizing Search Problem Game Tree Search Chapter 5.1, 5.2, 5.3, 5.6 cover some of the material we cover here. Section 5.6 has an interesting overview

More information

Beeches Holiday Lets Games Manual

Beeches Holiday Lets Games Manual Beeches Holiday Lets Games Manual www.beechesholidaylets.co.uk Page 1 Contents Shut the box... 3 Yahtzee Instructions... 5 Overview... 5 Game Play... 5 Upper Section... 5 Lower Section... 5 Combinations...

More information

ABOUT THE GAME COMPONENTS

ABOUT THE GAME COMPONENTS A game by Stefan Feld for 2 to 5 players. Playing time: 45-60 minutes. ABOUT THE GAME Venice is known for its bridges and gondolas - and that is what this game is about. Take on the role of a Venetian

More information

FIFTH AVENUE English Rules v1.2

FIFTH AVENUE English Rules v1.2 FIFTH AVENUE English Rules v1.2 GAME PURPOSE Players try to get the most victory points (VPs) by raising Buildings and Shops. Each player has a choice between 4 different actions during his turn. The Construction

More information

CS 4700: Artificial Intelligence

CS 4700: Artificial Intelligence CS 4700: Foundations of Artificial Intelligence Fall 2017 Instructor: Prof. Haym Hirsh Lecture 10 Today Adversarial search (R&N Ch 5) Tuesday, March 7 Knowledge Representation and Reasoning (R&N Ch 7)

More information

Official Rules For Bid Whist Tournaments

Official Rules For Bid Whist Tournaments Official Rules For Bid Whist Tournaments Table of Contents 1. Introduction 3 2. Registration 3 3. Start of Play 4 4. Playoff Determination 5 5. General Rules During Play 6 6. A Renege May Be Called When

More information

Final Project: Reversi

Final Project: Reversi Final Project: Reversi Reversi is a classic 2-player game played on an 8 by 8 grid of squares. Players take turns placing pieces of their color on the board so that they sandwich and change the color of

More information

Underleague Game Rules

Underleague Game Rules Underleague Game Rules Players: 2-5 Game Time: Approx. 45 minutes (+15 minutes per extra player above 2) Helgarten, a once quiet port town, has become the industrial hub of a vast empire. Ramshackle towers

More information

Kismet Interface Overview

Kismet Interface Overview The following tutorial will cover an in depth overview of the benefits, features, and functionality within Unreal s node based scripting editor, Kismet. This document will cover an interface overview;

More information

CPS331 Lecture: Search in Games last revised 2/16/10

CPS331 Lecture: Search in Games last revised 2/16/10 CPS331 Lecture: Search in Games last revised 2/16/10 Objectives: 1. To introduce mini-max search 2. To introduce the use of static evaluation functions 3. To introduce alpha-beta pruning Materials: 1.

More information

BAPC The Problem Set

BAPC The Problem Set BAPC 2012 The 2012 Benelux Algorithm Programming Contest The Problem Set A B C D E F G H I J Another Dice Game Black Out Chess Competition Digit Sum Encoded Message Fire Good Coalition Hot Dogs in Manhattan

More information

GOAL OF THE GAME CONTENT

GOAL OF THE GAME CONTENT The wilderness of Canada is in your hands. Shape their map to explore, build and acquire assets; Plan the best actions to achieve your goals and then win the game! 2 to 4 players, ages 10+, 4 minutes GOAL

More information

G a m e C o m p o n e n t s a n d S e t u p

G a m e C o m p o n e n t s a n d S e t u p G a m e C o m p o n e n t s a n d S e t u p C o m p o n e n t s Initial game setup is the same for any number of players. 48 Action Tiles (16 of each of 3 symbols, in 4 different colors) The 48 action

More information

Michael Kiesling. 8 Player markers (2 in each color: white, orange, light brown and dark brown)

Michael Kiesling. 8 Player markers (2 in each color: white, orange, light brown and dark brown) Michael Kiesling As the leaders of powerful Vikings tribes, the players set out to discover the islands seen off the coast of the mainland. Craftsmen, nobles and warriors will be stationed at these islands

More information

Application of UCT Search to the Connection Games of Hex, Y, *Star, and Renkula!

Application of UCT Search to the Connection Games of Hex, Y, *Star, and Renkula! Application of UCT Search to the Connection Games of Hex, Y, *Star, and Renkula! Tapani Raiko and Jaakko Peltonen Helsinki University of Technology, Adaptive Informatics Research Centre, P.O. Box 5400,

More information