From: Armaan Bhojwani Date: Sun, 31 Jan 2021 04:08:25 +0000 (-0500) Subject: Add shuffle functionality X-Git-Tag: v0.1.0~1 X-Git-Url: https://git.armaanb.net/?p=lightcards.git;a=commitdiff_plain;h=960f0268e29f723bf83052e9db3f4a20fb14fa86 Add shuffle functionality --- 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__":