# 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,
import pygame
from pygame.locals import *
+import argparse
import sys
import datetime
import random
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
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: