From 6dc1789646db81ab9f3e7a7f76e4bd868b96e64c Mon Sep 17 00:00:00 2001 From: Xiaofei Wang <xiaofei@student.unimelb.edu.au> Date: Wed, 11 Mar 2020 20:59:46 +1100 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=B0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AZUL/naive_player.py | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 AZUL/naive_player.py diff --git a/AZUL/naive_player.py b/AZUL/naive_player.py new file mode 100644 index 0000000..ce3d64e --- /dev/null +++ b/AZUL/naive_player.py @@ -0,0 +1,50 @@ +# Written by Michelle Blom, 2019 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +from model import * +from utils import * + +class NaivePlayer(Player): + def __init__(self, _id): + super().__init__(_id) + + def SelectMove(self, moves, game_state): + # Select move that involves placing the most number of tiles + # in a pattern line. Tie break on number placed in floor line. + most_to_line = -1 + corr_to_floor = 0 + + best_move = None + + + + for mid,fid,tgrab in moves: + if most_to_line == -1: + best_move = (mid,fid,tgrab) + most_to_line = tgrab.num_to_pattern_line + corr_to_floor = tgrab.num_to_floor_line + continue + + if tgrab.num_to_pattern_line > most_to_line: + best_move = (mid,fid,tgrab) + most_to_line = tgrab.num_to_pattern_line + corr_to_floor = tgrab.num_to_floor_line + elif tgrab.num_to_pattern_line == most_to_line and \ + tgrab.num_to_pattern_line < corr_to_floor: + best_move = (mid,fid,tgrab) + most_to_line = tgrab.num_to_pattern_line + corr_to_floor = tgrab.num_to_floor_line + + return best_move -- GitLab