]> bicyclesonthemoon.info Git - ott/molpy-up/commitdiff
more command line options
authorb <rowerynaksiezycu@gmail.com>
Sat, 28 Mar 2026 12:16:00 +0000 (13:16 +0100)
committerb <rowerynaksiezycu@gmail.com>
Sat, 28 Mar 2026 12:16:00 +0000 (13:16 +0100)
molpyup.py

index ce096c9f2432d1b68b755a08459d6418b206acaa..13bf8740492b5c9532e2d160a75b437e20bae395 100644 (file)
@@ -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: