Created
June 17, 2019 11:31
-
-
Save Debilski/bd13a675755c6ef65e1667b3333f8e50 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from pelita.game import run_game\n", | |
"from pelita.layout import parse_layout\n", | |
"from pelita.player import stepping_player" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We look at two scenarios:\n", | |
"\n", | |
"a) 2 is eaten by 1\n", | |
"\n", | |
"b) 2 is eaten by 3" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"layout1 = parse_layout(\"\"\"\n", | |
"########\n", | |
"# 12 #\n", | |
"#0 3 #\n", | |
"###..###\n", | |
"########\n", | |
"\"\"\")\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def move(bot, state):\n", | |
" if not state:\n", | |
" state = {}\n", | |
" # set a flag when we need to go to attack mode\n", | |
" state['ATTACK_MODE'] = False\n", | |
" # count how many times we have been killed\n", | |
" state['KILL_COUNT'] = 0\n", | |
" \n", | |
" for b in [bot, bot.other]:\n", | |
" if b.eaten:\n", | |
" state['ATTACK_MODE'] = True\n", | |
" state['KILL_COUNT'] += 1\n", | |
" \n", | |
" # do_stuff_when_attack_mode_is_on(state)\n", | |
" \n", | |
" print(bot.turn, state)\n", | |
" return bot.position, state" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Behaviour: bot.eaten is shown only once" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0 {'ATTACK_MODE': False, 'KILL_COUNT': 0}\n", | |
"1 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"0 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"1 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"Finished. 'local-team (move)' won over 'local-team (move)'. (5:0)\n" | |
] | |
} | |
], | |
"source": [ | |
"res = run_game([move, stepping_player('>-', '--')], max_rounds=2, layout_dict=layout1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0 {'ATTACK_MODE': False, 'KILL_COUNT': 0}\n", | |
"1 {'ATTACK_MODE': False, 'KILL_COUNT': 0}\n", | |
"0 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"1 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"Finished. 'local-team (move)' won over 'local-team (move)'. (5:0)\n" | |
] | |
} | |
], | |
"source": [ | |
"res = run_game([move, stepping_player('--', '^-')], max_rounds=2, layout_dict=layout1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Behaviour: bot.eaten is shown until bot has seen it." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0 {'ATTACK_MODE': False, 'KILL_COUNT': 0}\n", | |
"1 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"0 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"1 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"Finished. 'local-team (move)' won over 'local-team (move)'. (5:0)\n" | |
] | |
} | |
], | |
"source": [ | |
"res = run_game([move, stepping_player('>-', '--')], max_rounds=2, layout_dict=layout1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0 {'ATTACK_MODE': False, 'KILL_COUNT': 0}\n", | |
"1 {'ATTACK_MODE': False, 'KILL_COUNT': 0}\n", | |
"0 {'ATTACK_MODE': True, 'KILL_COUNT': 1}\n", | |
"1 {'ATTACK_MODE': True, 'KILL_COUNT': 2}\n", | |
"Finished. 'local-team (move)' won over 'local-team (move)'. (5:0)\n" | |
] | |
} | |
], | |
"source": [ | |
"res = run_game([move, stepping_player('--', '^-')], max_rounds=2, layout_dict=layout1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python (pelita)", | |
"language": "python", | |
"name": "pelita" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.0" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment