]> git.armaanb.net Git - lightcards.git/commitdiff
Add shuffle functionality
authorArmaan Bhojwani <me@armaanb.net>
Sun, 31 Jan 2021 04:08:25 +0000 (23:08 -0500)
committerArmaan Bhojwani <me@armaanb.net>
Sun, 31 Jan 2021 04:09:37 +0000 (23:09 -0500)
lightcards/display.py
lightcards/lightcards.py

index aa331b107ad12b7a7afb2cbd40d94b1c67953a25..7a6ec1b22ffbb0bd667e05fde4ef638b88daa018 100755 (executable)
@@ -2,6 +2,7 @@
 # Armaan Bhojwani 2021
 
 import curses
+from random import shuffle
 
 
 def disp_bar(stdscr, stack, headers, obj):
@@ -29,7 +30,11 @@ def disp_bar(stdscr, stack, headers, obj):
 def disp_menu(stdscr, stack, headers, idx):
     stdscr.addstr("Good job, you've completed a round!\n\n" +
                   "Choose one of the following options:\n" +
-                  "[r]estart, [s]tarred only, [u]nstar all and restart, [q]uit")
+                  "[r]: restart\n" +
+                  "[s]: restart with starred only\n" +
+                  "[u]: restart and unstar all\n" +
+                  "[z]: restart and shuffle cards\n" +
+                  "[q]: quit")
     while True:
         key = stdscr.getkey()
         if key == "q":
@@ -56,6 +61,10 @@ def disp_menu(stdscr, stack, headers, idx):
                 stdscr.clear()
                 stdscr.addstr("ERR: Stack empty. Choose another option\n\n")
                 disp_menu(stdscr, stack, headers, idx)
+        elif key == "z":
+            idx.setIdx(0)
+            shuffle(stack)
+            get_key(stdscr, stack, headers, idx)
 
 
 def disp_card(stdscr, stack, headers, obj):
index 33da9ee19b9dede6731e6f01102fc9ed547ce67f..15f8d67a9370ee486e9db338293b47cad512b313 100755 (executable)
@@ -4,6 +4,7 @@
 
 import argparse
 from curses import wrapper
+from random import shuffle
 import sys
 
 from . import display, parse
@@ -19,11 +20,16 @@ def parse_args():
     parser.add_argument("-v", "--version",
                         action='version',
                         version="lightcards 0.0.0")
+    parser.add_argument("-s", "--shuffle",
+                        action='store_true',
+                        help="shuffle cards before starting")
     return parser.parse_args()
 
 
-def show(stack, headers):
+def show(args, stack, headers):
     idx = Status()
+    if args:
+        shuffle(stack)
     wrapper(display.get_key, stack, headers, idx)
 
 
@@ -31,7 +37,7 @@ def main(args=sys.argv):
     args = parse_args()
     headers = parse.parse_html(parse.md2html(args.inp[0]))[0]
     stack = parse.parse_html(parse.md2html(args.inp[0]))[1]
-    show(stack, headers)
+    show(args, stack, headers)
 
 
 if __name__ == "__main__":