dominoes Documentation
|
|
- Gerald Henry
- 5 years ago
- Views:
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
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 information1 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 informationFor 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 information2 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 informationProgramming 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 informationclass 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 information2048: 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 informationScore 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 informationClassic 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 informationGame 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 informationIntroduction 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 informationHomework 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 informationAI 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 informationRummikub 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 informationCS 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 informationCS151 - 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 informationProgramming 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 informationFive-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 informationA. 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 informationLearning 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 informationChickenfoot 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 informationCS 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 informationWhen 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 informationThe 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 informationCMSC 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 informationApproaching 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 informationPay 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 informationCS188: 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 informationCOMP3211 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 informationUsing 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 informationComp 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 informationCSCI 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 informationCPSC 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 informationLab 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 informationCS 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 informationBMT 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 informationMake 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 informationGorbyX 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 informationCSE 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 informationAssignment 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 informationUMBC 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 informationAssignment 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 informationpython-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 informationRed 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 informationPhase 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 informationArtificial 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 informationMinimax 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 informationGirls 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 informationCSE231 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 informationMONUMENTAL 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 informationRoll & 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 informationA 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 informationGames 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 informationProject 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 informationAssignment 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 informationMAGISTRATVM 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 informationBachelor 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 informationThe 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 informationProject 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 informationHW4: 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 informationUniversity 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 informationFree 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 informationEDC 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 informationCS510 \ 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 informationARTIFICIAL 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 informationMyPawns 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 informationCMPUT 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 informationOne 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 informationCorners! 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 informationAssignment 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 informationLab: 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 informationArtificial 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 informationRULES. 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 information46.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 informationAdversarial 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 informationScrabble. 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 information38 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 informationSpecial 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 informationFlask-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 informationCONTENTS. 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 informationby 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 informationUNIVERSITY 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 informationCard 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 informationgame 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 informationThe 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 informationGame 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 informationBeeches 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 informationABOUT 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 informationFIFTH 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 informationCS 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 informationOfficial 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 informationFinal 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 informationUnderleague 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 informationKismet 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 informationCPS331 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 informationBAPC 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 informationGOAL 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 informationG 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 informationMichael 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 informationApplication 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