summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-01-27 13:31:17 +0200
committerAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-01-27 13:31:17 +0200
commit53bd62f3a55cde1dce09bdb867dfe0b84d578227 (patch)
tree5a5ed821eedb946eeea117f8fea225ccf00937c5
parentd68d1a33f52ad9ddeb97c6e45f1e66cdf27c67f5 (diff)
Adding exit codes and batch runner script.
-rw-r--r--README.md6
-rw-r--r--__main__.py6
-rw-r--r--app.py1
-rw-r--r--batch/100-run-beginner-bad.sh8
-rw-r--r--tui/autotui.py10
5 files changed, 27 insertions, 4 deletions
diff --git a/README.md b/README.md
index 0be8738..dab4191 100644
--- a/README.md
+++ b/README.md
@@ -11,11 +11,11 @@ Miinaharava ratkaisijalla
### Asenna
`git clone https://github.com/Aineopintojen-harjoitustyo-Algoritmit-j/miinaharava`
-### Aja
+### Pelaa
`python3 miinaharava`
### Käyttöohjeet
`python3 miinaharava -h`
-### Automaattipelin suoritusesimerkki
-`python3 miinaharava -i -a -u`
+### Skripti joka pelaa automaattisesti 100 peliä aloittelijan vaikeustasolla
+`bash miinaharava/batch/100-run-beginner-bad.sh`
diff --git a/__main__.py b/__main__.py
index edf3888..627f724 100644
--- a/__main__.py
+++ b/__main__.py
@@ -1,4 +1,5 @@
""" __main__.py - Tästä suoritus alkaa """
+import sys
from argparse import ArgumentParser
from app import App
@@ -35,4 +36,7 @@ parser.add_argument(
args = parser.parse_args()
app = App(args)
-app.run()
+is_win = app.run()
+del app
+
+sys.exit(not is_win) # Exit koodeissa 0 on onnistunut suoritus
diff --git a/app.py b/app.py
index be44752..a38c897 100644
--- a/app.py
+++ b/app.py
@@ -27,3 +27,4 @@ class App:
""" käynnistää pelin """
while self.game.next():
pass
+ return self.board.is_winning()
diff --git a/batch/100-run-beginner-bad.sh b/batch/100-run-beginner-bad.sh
new file mode 100644
index 0000000..f66ea22
--- /dev/null
+++ b/batch/100-run-beginner-bad.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+let COUNT=100
+let WINS=0
+for ((i=0;i<COUNT;i++)); do
+ python3 miinaharava -b -a -u && let WINS++;
+done
+let PERCENT=100*WINS/COUNT
+echo -ne "\n\n## Voittoja $WINS/$COUNT ($PERCENT%)\n\n"
diff --git a/tui/autotui.py b/tui/autotui.py
index dbda560..ae5d58c 100644
--- a/tui/autotui.py
+++ b/tui/autotui.py
@@ -1,6 +1,7 @@
""" autotui - pelaa botin antamat vinkit jonka jälkeen käyttäjän """
from .tui import Tui
from .static import Action
+from .ansi import Ansi
class AutoTui(Tui):
""" Tui - Luokka joka tekee botin vinkit ensin """
@@ -15,3 +16,12 @@ class AutoTui(Tui):
return action, x, y
return super().matrix_selector(matrix, x, y)
+
+ def show_board_with_text(self, matrix, x, y, text):
+ """ näyttää laudan, tekstin alla (ei odota nappia) """
+ self.draw_matrix(matrix, x, y)
+ print(text)
+ Ansi.cup(1)
+
+ def game_end(self, matrix):
+ """ pelin lopetus """