Skip to content

Instantly share code, notes, and snippets.

@Debilski
Created June 17, 2019 11:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Debilski/bd13a675755c6ef65e1667b3333f8e50 to your computer and use it in GitHub Desktop.
Save Debilski/bd13a675755c6ef65e1667b3333f8e50 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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