summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-01-29 15:48:34 +0200
committerAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-01-29 15:48:34 +0200
commitcef4a07bb411a120d5b2e15373f3f5f1fec7c71b (patch)
treed4205150c075eac51c37b0a79d05caccddf5de43
parent2b2117ec7bf75ad5ba37cc5b21870d073cb405a4 (diff)
Making command line argumets for custom board sizes.
-rw-r--r--README.md2
-rw-r--r--__main__.py38
-rw-r--r--app.py3
3 files changed, 28 insertions, 15 deletions
diff --git a/README.md b/README.md
index b080a17..8c3c830 100644
--- a/README.md
+++ b/README.md
@@ -23,4 +23,4 @@ Miinaharava ratkaisijalla
`python3 miinaharava -h`
### Automaattipelaa 10 peliä
-`python3 miinaharava -w 10`
+`python3 miinaharava -c 10`
diff --git a/__main__.py b/__main__.py
index 0ac24de..a738449 100644
--- a/__main__.py
+++ b/__main__.py
@@ -8,13 +8,8 @@ parser = ArgumentParser(
description='Klassisen miinaharavapelin terminaali toteutus.',
)
parser.add_argument(
- '-b', '--beginner',
- help='Asettaa aloittelijan vaikeustason (oletus)',
- action='store_true',
-)
-parser.add_argument(
'-i', '--intermediate',
- help='Asettaa keskivaikean vaikeustaso',
+ help='Asettaa keskivaikean vaikeustaso (oletus on aloittelija)',
action='store_true'
)
parser.add_argument(
@@ -43,15 +38,33 @@ parser.add_argument(
action='store_true'
)
parser.add_argument(
- '-w',
+ '-c',
metavar='COUNT',
type=int,
- help='Suorittaa ohelmaa COUNT kertaa ja tulostaa voitto-osuuden',
+ help='Suorittaa ohelmaa COUNT kertaa ja tulostaa voitto-osuuden.',
+)
+parser.add_argument(
+ '-w',
+ metavar='WIDTH',
+ type=int,
+ help='Mukautaa pelilaudan leveydelle WIDTH. (resetoi vaikeustason)',
+)
+parser.add_argument(
+ '-H',
+ metavar='HEIGHT',
+ type=int,
+ help='Mukautaa pelilaudan korkeudelle HEIGTH. (resetoi vaikeustason)',
+)
+parser.add_argument(
+ '-b',
+ metavar='BOMBS',
+ type=int,
+ help='Säätää pelilaulla olevien pommien määrän BOMBS:ksi. (resetoi vaikeustason)',
)
args = parser.parse_args()
-if args.w is None:
+if args.c is None:
app = App(args)
is_win = app.run()
del app
@@ -59,9 +72,10 @@ if args.w is None:
win_count = 0
+run_count = args.c
args.uncertain=True
-for i in range(args.w):
- print(end=f" \rSuoritus {i+1:>6}/{args.w} ")
+for i in range(run_count):
+ print(end=f" \rSuoritus {i+1:>6}/{run_count} ")
print(end=f"({100*win_count/(i if i else 1):.1f}%)..")
if not args.quiet:
print()
@@ -69,4 +83,4 @@ for i in range(args.w):
win_count+=app.run()
del app
-print(f"\n## Voittoja {win_count}/{args.w} ({100*win_count/args.w:.1f}%)")
+print(f"\n## Voittoja {win_count}/{run_count} ({100*win_count/run_count:.1f}%)")
diff --git a/app.py b/app.py
index 8ca19ab..f10a414 100644
--- a/app.py
+++ b/app.py
@@ -11,9 +11,8 @@ class App:
level = Level.BEGINNER
auto, uncertain, quiet = False, False, False
if args:
- level = Level.EXPERT if args.expert else level
level = Level.INTERMEDIATE if args.intermediate else level
- level = Level.BEGINNER if args.beginner else level
+ level = Level.EXPERT if args.expert else level
width, height, bombs = LevelSpecs[level]
auto = args.auto
auto, uncertain = (True, True) if args.uncertain else (auto, False)