From 960f0268e29f723bf83052e9db3f4a20fb14fa86 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani Date: Sat, 30 Jan 2021 23:08:25 -0500 Subject: [PATCH] Add shuffle functionality --- lightcards/display.py | 11 ++++++++++- lightcards/lightcards.py | 10 ++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lightcards/display.py b/lightcards/display.py index aa331b1..7a6ec1b 100755 --- a/lightcards/display.py +++ b/lightcards/display.py @@ -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): diff --git a/lightcards/lightcards.py b/lightcards/lightcards.py index 33da9ee..15f8d67 100755 --- a/lightcards/lightcards.py +++ b/lightcards/lightcards.py @@ -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__": -- 2.39.2