From 0d22027c8277d50e15d266a68041801426f4af9a Mon Sep 17 00:00:00 2001 From: b Date: Sat, 28 Mar 2026 13:16:00 +0100 Subject: [PATCH] more command line options --- molpyup.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/molpyup.py b/molpyup.py index ce096c9..13bf874 100644 --- a/molpyup.py +++ b/molpyup.py @@ -14,6 +14,7 @@ # game mode messages, # some optimisation # Molpy Down mode! +# command line options # # This program is Free Software: you can redistribute it and/or modify it # under the terms of the GNU General Public License (GNU GPL), version 3, @@ -43,6 +44,7 @@ import pygame from pygame.locals import * +import argparse import sys import datetime import random @@ -219,7 +221,7 @@ class MolpyUp: self.cameray = 0 self.score = self.scoreEpilogue if self.molpyDown else 0 self.sandcastles = 0 - self.speed = 30 + self.speed = self.args.speed self.modeText = '' self.playerx = self.sx // 2 - self.playerHalfWidth self.playery = self.sy * 3 // 4 @@ -932,13 +934,50 @@ class MolpyUp: self.waitForIt([K_RETURN]) def run(self): - self.filename = None - for s in sys.argv[1:]: - if s.startswith('-'): - if s in ('-d', '--down'): - self.molpyDown = True - elif self.filename is None: - self.filename = sys.argv[1] + parser = argparse.ArgumentParser() + parser.add_argument( + '-m', '--molpy-down', action='store_true', + help='Molpy Down!' + ) + parser.add_argument( + '-e', '--eternal', action='store_true', + help='"eternal" mode. No more falling down. ;-)' + ) + parser.add_argument( + '-g', '--flag-eternal', action='store_true', + help='flag-eternal mode. Lose a flag instead of falling down.' + ) + parser.add_argument( + '-i', '--ai', action='store_true', + help='enable artificial intelligence playing for you.' + ) + parser.add_argument( + '-d', '--ai-debug', action='store_true', + help='enable AI debug mode.' + ) + parser.add_argument( + '-a', '--no-arrow', action='store_true', + help='switch off the arrow shown when the molpy is out of sight at the top of the screen' + ) + parser.add_argument( + '-s', '--speed', type=int, default=30, + help='game speed' + ) + parser.add_argument( + 'file', nargs='?', + help='save file' + ) + + self.args = parser.parse_args() + # print(self.args) + + self.filename = self.args.file + self.molpyDown = self.args.molpy_down + self.eternalFlag = self.args.flag_eternal + self.eternal = self.args.eternal and (not self.eternalFlag) + self.ai = self.args.ai + self.aiDebag = self.args.ai_debug + self.showArrow = not self.args.no_arrow self.reset() while True: -- 2.30.2