diff --git a/coin_flip_visualizer/.gitignore b/coin_flip_visualizer/.gitignore new file mode 100644 index 00000000..bee8a64b --- /dev/null +++ b/coin_flip_visualizer/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/coin_flip_visualizer/README.md b/coin_flip_visualizer/README.md new file mode 100644 index 00000000..e5072184 --- /dev/null +++ b/coin_flip_visualizer/README.md @@ -0,0 +1,16 @@ +# Coin Flip Visualizer +A simple script that flips a coin and displays ascii art of the result in terminal. + +### Prerequisites +Python3. You can download using the installer for your respective os here: https://www.python.org/downloads/ +If you are on an ubuntu/debian based linux distro you can execute "sudo apt install python3" in the terminal. +Verify installation with "python3 --version" + +### How to run the script +cd into the directory containing coin_flip_visualizer.py and execute the command "python3 coin_flip_visualizer.py" + +### Screenshot/GIF showing the sample use of the script +![screenshot of using the script in terminal](https://i.postimg.cc/K8HB0sQP/Screenshot-from-2025-11-06-10-50-45.png) + +## Author +https://github.com/carmckmc <3 diff --git a/coin_flip_visualizer/ascii.py b/coin_flip_visualizer/ascii.py new file mode 100644 index 00000000..267b8a9a --- /dev/null +++ b/coin_flip_visualizer/ascii.py @@ -0,0 +1,165 @@ +def ascii_art(coin_flip): + if coin_flip == 0: + print( + """ + ......::::::.....::::::......::::::......::::::.....::::::......::::::......::::::.....::::::......::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::......::::::.....::::::......::::::......::::::.....::::::......::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::......::::::.....::::::......::::::.....:::::::.....::::::......::::::.....:::::::.....::::::......: + ::::::.....:::::::.....::::::......::::::.....:::::::.....::::::......::::::.....::::::......::::::......::::::.....::::::......::::::. + ::::::.....:::::::.....::::::......::::::....::::::::.....::;;+;;;;;+++++;::.....::::::......::::::......::::::.....::::::......::::::. + ::::::......::::::.....::::::......::::::.....:::::+x+;;;:::::::::::::::::::::;;;+x;:::......::::::......::::::.....::::::......::::::. + ......::::::.....::::::......::::::......::::+X+::::::;:::+;+;:::;;;;:::;+;xx+;;;;;;::;xX;:::......::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::....:;XX:::::;;+$$x&&&&x;;;::::::;;;:::;;x$&&$;;+;;;;;::;X+:....::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::.:x+:::::+X&$&&x::::;+$x+&;;+$x+&;;x+$&&:;;;;;:::+$&++;;;;;:;++:::::::.....:::::::.....::::::......: + :::::::::::::::::::::::::::::::::;Xx::::x$&&$+:;:;;&XX++;X:;;;;;;:+;;:$+;:;;;;;:;XX$+;;;:;$X$;;;:::X+:::::::::::::::::::::::::::::::::: + ::::::.....:::::::.....::::::.:$+:;;:$&&x:.:X&&;;:::;;;;;x;;;;;;$;+;;:;+X;+:;;x:;+;;;;X;:$x;:;X&++;;;:Xx.::::::.....::::::......::::::. + ::::::.....:::::::.....:::::+X::::X&&+::X+;X:;;++&;;:;;;;;+;;;;;:;;;$XX;;;$:;:X:++;;;X;;;:;;&X:;;+&xx;;:;X;::::.....::::::......::::::. + ::::::.....:::::::.....:::$+::;+&&+::;&x:x+;x;;;;;Xx;:;;X&&+;;+;;;;;:;;+x+;;;;;&+;+;&x;;&$X$:;:;;::;x&xx:::$+::.....::::::......::::::. + ......::::::.....:::::::$+:::$&&;;+&x+;;;;+;;+;;+:;X$;;;;;:+;;;;X;+X+$$;;++;::;;:++:;++&;;;;;;:::;x+:;;&$X;;:X+::::::.....::::::......: + ......::::::.....:::::$+:;:&&x:;;+&$+:;;;;:+:XX$+:;;+x&$+X;X;;;+X:+x+xXX;;$;;+&;;++x:::x;;;::;;xX;$:::;::x&x+;:xx::::.....::::::......: + ......::::::.....:::X$:;:&&+::;;:;;:::+:$+;++;+:$&x;;+:&X:+;:::Xx;XXX$+$;;$+$+x+&;;&:$&;;;+$&&$&+;&::::;;::+&x;::&;::.....::::::......: + ::::::.....:::::::+&:::$&+:;++::;:;xX;X&;;;;;;;X;x&;;;xX;;+X;;::;::;:;;:;;;+&&;&;+&:&;+;;:::;;;+;;X:;:;;;:;::+&x;:;&::::::......::::::. + ::::::.....::::::$x::;&$:;++::$+:$:;;+:;::.:::;;X:;&+;:;;++;+;++:::+;X:;X;:;;:x;:;;&&&;:::::::.:;&X;;&X;;:::;&:X&+::&+::::......::::::. + ::::::.....::::+&:;:&&::::$;;:;:;&;;;:::::::::+;;;:;;;;;;+;+;;X+X&;+;+:;x;X;++;;;;;;;;+:;:;++:.;:::X&:$&&x:$X.:;:&$;;+&:::......::::::. + ......::::::::X$:;+&x:+&:::;$+;;&+;::.+:;;:;;;+X;;;;;;:;;:$$X&x+x::;;X$$+&X:X$;;;;;;;;X+;:;++x:;;::.:;;::$X::;$&;:+&;;;&:.::::::......: + ......:::::::$$::x&;++;::+&;::&$::::::+:$;X;:;$+;;;;;;;;;;;::.;$$+x;..;;;;;;;;;;;;;;;;;+;;;+;+++x:;::.:+&::;$+;:x&$:&X:;&+::::::......: + ......:::::;&$::&&.;++&;;:::;&::::;+:;xXX+$+;:+X;;;;;;;;;;;.::::;:.:..:x;;;;;;;;;;;;;;;;::+;:x++x;;:::.::$:;:;&X:::::&&:;X$:::::......: + ::::::....;&x::&&:;&:;;:Xx:&+..::;;++++;+;+Xx;;x;;;;;;;;;;&&&&$&&&&$$+++&;;;;;;;;;;;;;+::+;;++;&X+:$::+::;+x:;:::::x;;$&:;&$....::::::. + ::::::...;&X::&$:;;::::;;:$:.::;;;x;;$;++;;X+;;:x:;;:;;;;:;:;:;$x;;:;;:;&+;;;;;;;;;;;;::;;X;:xx:;+$+;$::+:+:x:::x;;:++;x&:;XX...::::::. + ::::::..:&&::$$::&:$x::::+:.:;+;+$+XX;$;;x:;+;;::x;;;;;;;;;;;;;xx;++;+x++&:;;;;;;;;;;::;;;+:X+:;X$$;$xx$++;+:&&X:X:xX&::X$:;$x..::::::. + :.::.:::$X:;&&:;X;;::;Xx$::;x$&x;:$:::x+::X:;;;;:::+:;;;;;;;;;:&::::;::;;X$;;;;;;;;::::+;x:XX::;+::+x:::X;;:::::+:++::::.XX:+&;::.:.:.: + ......:X&::+&:x;;:::;:;:::;+;X.::&.::$;Xx;:x::;;;+;:::::::;:::;;;:;;:;;;;::+::;:::.:;;;:+;X$+::++&:::$:::X;::::;+&;::.::;:XX:x&:......: + ......;&+:;&;;:::x$+;+&:::;+&:::&:::x;;:;X;:;X::+;+x;;::..:::...:+:+:;;:::::.....:;X;;;x;X;.:;;X::X;::X:::x+::::+::::+&X::;$;;X&:.....: + .:.:.:&+;:&XX+X;:::::X::::;x:::$;::$;;.x:+Xx::++::x:+xX;;;;::::.::.::::::::::::;;XxxX+$++::+xxX+;X:+X::X:::X+::::$&$.::::..++;+&x.:.:.: + :::::X&::+&::;::::x&+::::+X;::X;::X++:x:$:XX++::++:;;++x$++;+;:;:;;:++:;+;;;;+xX$X$$X$;::xX::+;+x;X::+::X;::+:::+::+:x$+$;;;$;;X&;::::. + :::::&x;:&+:::::&X::::::;;+:;+X:.X;;:X++X;+X+:;X::x;x;;+++++x+;;+$;XX;++;+++x++X$xx;+:;&;::;X;X::;+x:;;::+;::X:::x;:X+:::x;X;x;;&X::::. + ::::x&;;+&:x$X;:::;&::::+$:::X.:+;x:XX+;X;.:+$.:X:X;:x;+:;;++x$XX$++Xx+++xX&xxXXX;;:;X:::+&$::X++:;;x:++::;;::x::++x:+:::X$&:x+:X&::::. + ...:&X;:&X;;;::::;&:+.:x+;::&::;;X:x+X:..:x;::&++::;x::X:+x+xX;+++:;;:::;+;XxXxX++$;:::$;:&$;..:.:x:X+::+::+;.;;::+:$&.;:::::X;;X&;...: + ...;&+:;&;+:+XXx:;x:::::X::X:::+X:$x;::+X::::X:;x;X::+X:;$;+x+x;::$:++;+$;;;+xxX;:;.+X::;+:..+X;.:.:+Xx::x::;;:+;;+;;:::::::::+;+&&...: + ...X&:;+&:::::::;;$+::;$::x+:;;Xx+:::x:.::+X;::;$x;:$::;X:;++++:;;:+X;x++;;::;X+;;:+;.:++.;+;:.::;+X;+:;X:+:::x.++;X$&;XX;::$;+;;$&:..: + :::&$;;$X+;;;::;:&;X::$::++;:X+:+.:::++;XX::::&::&;x.:++::+:x;::::Xx+;;:$X::.:;X;:x;::&;:$;:.:X;.:x+:;;:::$X$;;;X+;$::x::;&x::;;;$&;::. + :::&&;:&+:::::::::;;+::;$;$X::::+::::;:+:::+&::X+::&&&;::x:++X::::+;;+;;x:;:::;&:;+:;&:x:.:+X::::x::::;::::+::;.:::X;+:&&:::::;;;X&+::. + :::&;+:&;:::::::::+:;$+:+.+::::;;:::;::+&$$::x$::x+.:XXx+:x:&+;:;++xX++++X:;;:X$;++$;++::X;.::++$:+:::;::::;::x:::;+;&;:::::::;;;X&X::. + ...&X;:&::::::::::x:::;:;:+::::+;:::+::X:$$$$:::$.:++::+$$::xx;+;xXXXX+xx+:;;;+&X&X:x:.+X::+++;&;:+::::;:::;;:;;:;;;+::::::;::;:;x&X..: + ...&+;:&::::::::::x::::;::x::::+::::+:x+x$;&x:&;::$:::+;:;+;$;;;+x;X$Xx$X;+:;+xX&x;X::X:.:+x.:&:+;:;:::;::::;::+;;;;+:::::::::;;;X&$..: + ...&X;:&:::::;::::x::::+::+::::+:::;;:x:&;::+&::;&:::X::;+:+Xx++;x;$X++++x+$;X++&xx:+x.:X;::&$:$:X:;:::+:;::;::+;;;;x:::;:::::;;;$&$..: + :::&&+:&+::::::::.X;:;:;::;::::;:::+::;;&:::;:+&;:::$::;X:+:$++$++$&X;+$+Xx+$++X&+.x:.+;:.X&:::;+:;;;;:;;;:::;;+;;;;+:::::::::;+:&&X::. + :::&$x:$X:::::::::X;:::;::;::::;:::;:;;$;:::::::+$&X::;+:X:x$x+;+xX&x+xxXXXx;++&&:X::X:.x&+:::::x:;:;:::;::;+;;;;;;++:::::::::;+;&&+::. + :::$&x;+&.::::::::+;::::::;::::::::;:++&:::;:::::::X&$::X:X:$$XX+XX&++$XX$XXX&x&$x.+::X&+:::::;:;X;;;::x;;X:+;;;;;;++:::::;:::+;x&&:::. + :::x&++:&::::;::::;X;;::::;::::::;::;;&;;:;::::::;:::;+&&&;$;$$$&X&&$+&X$X&$&X&&&:x+&$;:;::::::::;+::+:;++::X:;:;;;$;::;:::;::$:$&&:::: + ...:&&+:&X:::::::::&;::;::+;.x;;:::;;;X:;;:::::::::::::::::X&&X;&&$$;x+;x;X&+&&$$&X::;:;:::;::;;::x+;+::X::&X;;;;;;&;::;::::;+X;$&$...: + ....&&X;;&:::::::::$;;:;:::X:.+;+;::&&;::::::::::::::::::::::+x$X;X++X+$;XxX$&X:.::::::::::::;::;;;;;;:;+$$:;;;;;;+&:::;;;:::$;X&&;...: + ....;&$$:$;:::::;::++;:;:::;$;.:x:::&;;:;::::::::::;;;;;;.;&$.;&+X;:+::::x&;:&&$:.;;;;::;;;;+;;::;;;;:;&++:;;;;;;++X:::;:::::&:&&&....: + :::::&&$;;&::::;::::X::;:;:::+X&x;;&+:::;:.;X:;:::x++x+Xx:++X:&+$$;x+Xx+$X++$X+;;;X+;;:::::;++:XX;;;;x&;;:X:;;+;;;x;:::;;:;:&;x&&+::::. + :::::+&X&:X+::::::::&:;;:X:::+:xx:;;;:++:;;:XX&$;:+X++x+++++$+$x;:;X;:;$&xXX&+++++;;;;+:::::;X+;;:$:x&+X:;:;;;++;;x:;:;::;;;X:&&&:::::. + ::::::&&XX;&;:::::::&:;;;+::x;:::$&:;;;;:;+;$&X$$X+;xx+;;;;;+&;;+&&;+&+x;;;&X;;;;;++++&&$$$$&$$;::X.&:XX+x:$+::+;x$:;;;;;;:&:&&&;:::::. + ......:&&$+:&:::::::$:$:X:;;:+X&&$X;$+;;;:::$:::;$&:;:;;;;+::;;;:;:::;:::;::::::;:::;;+$$X;X$;;X$::x&+::+&$$&$:;++&:;;;:;;$:$&&$......: + ......:+&&&;X&::;::;XX;$;;$+&x++;:::;X;:X;::::::::;+X;;;;;+;;;::;+:::+:::;::;+::+&&;;:;::;:x:;;::;&X++XX+:::::X$x&+;:;:;;$xx&&&:......: + ......::X&&&++X:;::;+xx;+$&+:::+x+++;x&&:++&+:;:::;;+X:;;;;;:;&$&$X;;;:::++x&&X+:;;;;++.x+:&:;::X&+:;;:;:;:::;:;::;:;;;;+;X&&&::......: + ::::::...X&&&:XX::::X:x&;::::::::::x+;;;X&:;xX.;:;::&;;:;;:+:;:;:::;:.;+;:::;:;:;:+:;:;x+:&+:::+;XXXXx::;:;:;;::;;;;;;:xxX&&&:..::::::. + ::::::....&&&&;+$::::::::::::::::::.:::::++&::&+:+:&;:;;:;:;:++++;;;:::;:::;+X:;;::&::;;;&;.+&$&$$+::::+&+:;:;;:;;;;;:x+x&&&;...::::::. + ::::::....:&&&&+;$:::;:;:::::::;:;X++XXx+:::;;;:;;&:;;$:xX+:;;;:+:;::+;:&&X.&;:;$+x++.$&;:$&$:;;+;;;X::::;xx;;:.:::$:x:&&&&;....::::::. + ......::::::X&&&X;&::::;:;X&$X:+X$+;;:X&&X:&&$x$&X;;:::&+.:+X;:++;;+;:.$:.;&;;;x.+X.$$.+&$;:;::;;&+;$::;$X;;;$&&$$x:$:&&&&;:::::......: + ......::::::.+&&&&:$+::+:$;::+;+;::+$+::;$&:::::::;X+::::;+$$$;:::.:;:x&$&;..::x+;X&&&xXxx$$x::;;;;+x;::::;$+:::;;;xX&&&&:::::::......: + ......::::::..;&&&&+;$:&;x:::;:&:;;;:;;+::;;::;;;;:;$&X&$&&&&&$++x:+x::xXX&&&$x+x&&+::;xX:;:::;$X;::;:x;$+;::xX&:$;&&&&$..::::::......: + ::::::.....:::::$&&&&;+;x&:;:&$.;;&:;:::;;:;+$X;$$;;.X&::X+:;:+&&+++XXX&:.:;:::x$+;;::$:;;X:;;;;::;;;;;X::+&$&;;+$&$&&;:::......::::::. + ::::::.....::::::;&&&&$:$;:+X+;:$+;:::+&:;;:;;:++::X&+:&&X:;&&X:::::::::X&+::;::;:;;;;:&+:$:;;;;+x:;;;;;;+;;;:$;&&&&&:::::......::::::. + ::::::......:::::::$&&&&$;;;$++;;:::;&;::;;::::+XX;.::::.:&&:;::;:;;;;;;;:x&X:.:::::;;;:;x:+:;;+X;;;;;::+&X;++&&&&&;::::::......::::::. + :::::::::::::::::::::&&$&&$:;:x$:::&+::+:X::;:::::;x&&$$&&;::;:;;::;;:;;::;:+$&&&&+:;:::;&;;;;;;;X::::+&;;;;&&&&&x::::::::::::::::::::: + ......::::::.....:::::;&&&$&&;++:;;:;:::;X:+:+$$:+;:::;::;:::::;;:;;:;;;;:;;;;::;;;:;;+;;;$;;;;;;:$:&&:;;X&&&&&X:::::.....::::::......: + ......::::::.....::::::.:&&&x&&+;+:x&:+X++:;;;;;$x&X&+;;::::::::::;;::;;:;;+:;;:::;+xX;;$;Xx:;::;X&::+:&&&&&&x:::::::.....::::::......: + ......::::::.....::::::...:$&&&&&&+++;+&&;:;$+x;;;;;+;XxX&&:;X&$Xx;+$X+;;::;;;X&+;++;+;;;;$+X+X&;;;;$&&&&&&+..:::::::.....::::::......: + ::::::.....:::::::.....::::::+&&&$&&&X;;+;X&:;+:$:;;:+$:;;;;;+::;;;;;;+&;;;;;;X:;:x+X::;;+$;;:;;;$&&&&&&&::::::.....::::::......::::::. + ::::::.....:::::::.....::::::..:X&&&X&&&$+++:;;&&:;+.x;;;;;;;$X&+;;X&X;;;;;;;:;:;X&;;+$$+:::;&&&&&&&&&;..::::::.....::::::......::::::. + ::::::......::::::.....::::::.....:x&&&$+&&&&X;:+;:;$$:;;:;:;:::;+:++;&:;;;;;:+$&;;;::::;$&&&&&&&&$;:....::::::.....::::::......::::::. + ......::::::.....::::::......::::::...;$&&&;+X&&&$$;:;++;:::;;x$xX&&X;;;Xx:;:.::::;x&&&&&&&$&&&X::.::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::......:;X&&&&&:X&&&$&&&Xx++++x+xxx+X++;+X&&&&&&&&$x$&&&&+:......::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::......::::::;X&&&&&&$+&x;xXXX$&&$$$X&X+&+;&$X&&&&&$;::::::......::::::.....:::::::.....::::::......: + ::::::.....:::::::.....::::::......::::::.....:::::::::+X&&&&&&&&&&&&&&&&&&&&$+;:::::::......::::::......::::::.....::::::......::::::. + ::::::.....:::::::.....::::::......::::::.....:::::::.....::::::......::::::.....::::::......::::::......::::::.....::::::......::::::. + ::::::.....:::::::.....::::::......::::::.....:::::::.....::::::......::::::.....::::::......::::::......::::::.....::::::......::::::. + ......::::::.....::::::......::::::......::::::.....::::::......::::::......::::::.....::::::......::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::......::::::.....::::::......::::::......::::::.....::::::......::::::.....:::::::.....::::::......: + ......::::::.....::::::......::::::......::::::.....::::::......::::::......::::::.....::::::......::::::.....:::::::.....::::::......: + """ + ) + + else: + print( + """ + ......::::::.....::::::......::::::......::::::.....::::::+$&&&&&&&X$$&&&&$+::::::.....::::::......::::::.....:::::::.....::::::......: + .:.:.::::::::.:.:::::::.:.:.:::::::.:.:.:::::::.:x$X+++XX+;::::::::::::::::++Xx+:X&&+:.::::::.:.:.::::::::.:.::::::::.:.:.::::::.:.:.:: + ......::::::.....::::::..:...::::::......::+$X+XX:::::::::::::::::::::::::::::::::::XX;;&&;::..:...::::::.....:::::::..:..::::::......: + ::::::.....:::::::.....::::::.:....::::X$+$;:::::::::$&&$::X::+&&x::X$&$:::::::::.:::::.::$;+&+::::.:....::::::.....::::::...:..::::::. + :::::::.:.::::::::.:.:.::::::..:.:.;$xX;:::;::;:&::::X:::;::::+::::::$::::::::$+&&&;&:::::::::X+x&;:..:.::::::::.:.::::::::...:.::::::. + ::::::.....:::::::.....::::::...;XX+:;;:;:$&:::;;;+:::::;X:::::&&::::&:$:::::&:;::::;&::;X$;::.::;X;&+:..::::::.....::::::.:....::::::. + ......::::::.....::::::......;XX;;;;::$&:$.:::::X:X$:::::$::::::::::x:+:;::::;+:::::+&..$$.&&:.::....&:&;.....:::::::....:::::::.....:: + .:.:.::::::::.:.:::::::.:.:XXx;;;;:X;:&:;x&::::;+&X&:$::::;:::&$X+::xX+:::::::+$::.&;::&.&;::..:.:.:...;XX&:.::::::::.:...::::::.:.:..: + ..:...::::::.....::::::.:$$;;;;;;&;$;::::+:X::::+:::++::::::::::::::::::::::::::$$X:::+.+.+..:......;:....$;&::::::::..:.:::::::..:.:.: + :::::::::::::::::::::::$$:;;;;:;:X:&Xx;:::+:$:+;:::::::::::::.:$&&&X+;X&&&+:::::.:::::&&...:.:.:.:&:;.:.:.:.+;&;::::::::::::::::::::::: + ::::::.:.:.:::::::.::$$;;;;;;;;;;::+++&+:::;:::::::::::::.&&XX&:&$+:::;;;:;::+&x:.::.::.:.::..:&:x:+$....:....;;&;..::::::.:..:.::::::. + ::::::.....::::::::$&;;;;:;;:;;;;;;:xXX$:::::::::::::::$&&X+;:::;;::::::;::::::;::$;.::.....:;$::.$:$.:.:&.+.:..+:&;::::::..:...::::::. + ::::::.:.:.::::::X$;;;;XX&&&X:X:;:::::::::::::::::::::&&$&:::::::::;;;;::::::::.:::::&;.:.:..:...:;:+..&:&;...:.:.X:$::::::..:..::::::. + ......::::::...:&x;;;;;&+&:;;$:+::;::;::::::::::::::&&&X;;:::::::::::::.:.:.:.:::::;.:;:$..:..:....+:+;&:;&.:+&&..::xX+...::::::.:...:: + .:.:.::::::::.X&;;;;&+;;;&:X;;x+;:;:::::::::::::::&&$x;;;::::::::::::::::::::::.:::..:::;:&.:..:.:...X+..X&$x$+X:....x:$;.::::::..:...: + ..:...::::::.&$;;;+X&:;;;;:&+&X:;::;:;::::::::::x&&X+;;;::::::::::::::.:.::.:.:::::::.:::::X:.....:.:...:..&:$...&&...:+X;::::::...:..: + ::::::..:..:&+;+;;$&:&&x;;:;+;;;;:;::::;:::::::&&XX;;;:;:;::::::::::.::::....:...:::.:.::.:::X:.:....:...X:&..:&:&$;+..:&;+:.:..::::::. + ::::::...:;$++;;X$;;;&;&:+x;;;;;;:;:::::::::::&&$X;;;;;:::::::::;::::.::::::::::..:::...::::::&..:.:..:.:...:&:&+.::::...$:x:.:.::::::. + ::::::.:.;&;++;$&:;;;;;&;$;;;;;;;;;:;::::::::&&X+;;;;::::::::::::;::.;:.::::.:::.:..:.:...:::;:+....:....:.:$&.:::...;&.::x:$:..::::::. + ......::+&++++$&&;$+;;;;;;;;;;;;;:;::::::::+&&X+;;;::::::::::;.:::::::::::.:.....:...:.:.:.:.::&.:.:.:.:......X&.::&:X&&:::X;$;:.:....: + .:.:..:;&;+++;&;;;;&;+$;;;;;;;;;:;::;:;::::&&&+;;;;:::::::;;:;:;::::::.::::.:::::.:.........::;x+.......:.:.:.:;$:&x$:&X.:::+:X:..:.:.: + ....:.:&++x+$$+;;;;;;x;;;;;;;;;;:;;;::::;:X&&X:;;;:::::::::;::::::::.;:::::..:::.:.:.:.:.:.::::;&.:.:.:.........+.$X;$X.:::::$:x:.....: + ::::::&xXx++;X&X;&;;;;;;;;;;;;;;;:;:;::::;&X;&&&:::::::::;;;::::::::::::::.::..::..::...:.::::::+x...:.:.:.:.:.:.:+.::.:$;&:::X;+:::::. + :::::&&$X+$&;++;;+&$:;;;;;;;;;;;;;;:;:;::&:;;+&&&:::::::;;;;;:::::::.:.::.::.:;..;...:.....:.:;:;$.:......:.....:.:.$+.&X.:::::x$+::::. + ::::;&X$x+X&&$+$X:;;;;;;;;;;;;;;;:;;;:;:&+:;;$&:&&x:::::;;;;:::::::::::::::....:..:..::.:.:.:::;:&..:.:.:..:.:.:.:.&x:::+X;:::::;$;:::. + ::::&XXXx++;+X&&;+;;;;;;;;;;;;;;;;;;;:&&;:::;+&X+:&;;:::::::::::::::::::::::.:.:::.:::::.:.:::::$X:....:.::..:.:.::::+:+&&&;&:::$++:::: + .:.X&$$X+X++&&;;;;;;;;;;;;;;;;;;;;;;:&$;;::::&&X;:$+;:::::::::::::::.:::;:.:..:...::..::.::::::+;&.:.:...:.::::.:::::+$:::::$&:::+&+..: + ..:&x$XX$+$&&+X&++;;;;;;;;;;;;;;;;;:&$+;;;:::&&$$$;:;:::::::::::::::::::;;::::.::::.:::..:::::;:&X...:.:..:::::::::::$$:::::X&:::X;+:.: + .:X&&$$$x+++++;X;;;;;;;;;;;;;;;;;;;&$;;;;;;::&&&+;;:::::::::::::::::.::::::::::...:.;..:.:::::;;&::.::::::::::::::::::&&::::::::::;$+.: + ::&$$$$$&$x;x&&$;++;;;;;;;;;;;;;;+&&+;:;;+$X;X$+;;;:::::::::;:::::;;:::::::;:::.:.:::;.:.:::::;;&.::::::::::::::::::::;+:::::::::;&Xx:. + :;&$$$$XXXx+++&;+++;+;;;;;;;;;;;;$&$+;;;::&&$+;+;;;;:::::::::;;:::::;:::.:::;::;:::..:::.::;.:::&X:::::::::::::::::::::+&X:x&;::::;;x;. + :+&&$$+&$+++x+XX+++++;+;;;;;;;;;;&&&&&&&$;;&$;;;;:;;;:;::::::;::;;::::X:::.::::;.;.::;::::+::::::&:+:::::::::::::::::::::X&X+$$::;:X&+. + .$&&&$&&&&&X+x$++++++;;;;;;;;;;;;;;::;&&&X&&&+;;;;:::::::::;;:::;::::;:$&&;:.::::::::;::::+;:::;::&X::::::::::::::::::::+++&:::::;;$$+: + :&$&&$$$$$XXXxx+++++++;+;;;;;;;;;;;;;;&&&$&&&x;;;:;:;:;:::;;::+;::;::::::;X:X$+;::::;+:;:+.;.::;;:&.;::::::::::::::::::X&::::::;::;xxx: + :&$&&&&&$X$XXXx+++++++++;+;;;;;;;;;;;$&&&&&$$+;;;;;::::::::;$:;:.::;::::;&:$&x::::X+::::+:;::+.;;:$+:::::::::::::::::::::::::;:;;;;x+X; + ;&$&&&$$&&$&X$+xx++++++++;;;;;;;;;;;;&&&&&&$++;;;;;;::;:::::;:+&&&x:&&&&::;:::;+XXxXXX+.;:::++;;X:;&::::::::&;X&:;$:::::::;::::;;;;+;X; + ;&$&&&&$&&&$&$XX++x+++++++++;;;;;;;;+&&$X&&&X++;;;;;;;:::::::::::;;;X::::::;::;x::;X&&+:;;x+:x&:;+$:::::::::+;:&$:$:::;:::;:;;;;;;;+;X; + ;&$&&$&$&&&&$&X$$xx+++++++++;+;;+;;;;&&&&&&&$X++;;;;;;;;;;;:;;;;;;;x:::::::+;;;::;:;:+;+&;;&$:+xX&::::::::::;;:&:&$;:::;::;;;:;;;;;+;X; + ;&$&&&$&&&&&$&$$$XX+++++++++++;;;;;;;&&&&&&&$$Xx+;;;;;;;;;;;;;;;;;::::::::::;X;::;;;:::;;+$&&&&x:::::::::::::::::;:::;:::::;:;;;;;;++X; + ;&$&&&&&$$&&&&$&$$Xxxx+++++++;+++;;;&&&&$&&&&&&x++++;;;;+;;;;;;;;;:::::::::::::;:+:+;;;:;;::X:::::$::::X$:X&:;:&$;::X:++x;;&:;;;;;;x$X; + :$&&&&&&$&&$&&&$$$$XxxXx++++++++++;:&&&$&&&&&&&&&$&&$x+;;;;;;;;;:;::::::::::;::;:;+X+;;:;;;:+:::::X::+:&$::&:;+$&;;:x;++&;;&:;;;;;;X&X: + :X&&&&&&$&&&&$$&&&$XXXX+x++++++++++;+&&&&&&&&&&&&&&&$+++;;;;;;;:;::;::::;:;:::::::;&&+;;;:;+::;;:;:+x+::;x;::++:;;;;;+;;;;;xx;;;;;;$&+: + :+&$&&&&&&&$&&&&$&$$$XXxX+x+++++++++++++;+&&&&&&&&&&&&$x+++;;;;;;;;;;;;:::::;:;:;:;;&++;;;:&:;:;;;;;:&+&&x&$;:$;+&;$&&+&;&+;;;;;;;:XX+. + :;&$&&&&&&&&&&$&&&&$&$$$XxXx+++++++++++;+;;;+&&&&&&&&&&&$+x+;;;;;;:;:;;;;;;:::::::;+$;;;;;:$:;:;;;;;;;;;;;+&:;$:;&;&+X;;X;;;;;;;;+$Xx;. + ::X&&&&&&&&&&&&&&&&&&&$$&XXXx+++x+++++++;+++;;;;;&&&&&&+;+xx+;;;;;;;;;;;;;;;;;:;:;;+:&;;;;;&;;;;;;;;;;xX;;&&&:&$&&:&X&;;$;;;;;;;;;$&x:. + ..+&&&&&&&&&&&&&&&&&&$&$$X&Xxxxx+x++++++++++++;+;;;&&$++;;+++;;;;;;;;;;;;;;;;;;;;;;;+&;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xX$+.: + .::$&&&&&&&&&&&&&&$&&&&+X$&&&&++$&$++X&&&&$+&$++&&$&$x++++++;;;;;;;;;;;;;;;;;;;;:;;;Xx;;;;:;$;;;:+xx;:;;;;;;;;;;;;;;;;;;;;;;;;;;;$$X:.: + ...+&&&&&&&&$&&&&+$&&&$+$$&$;$Xx$&+&X++X&+++$X&$&+&&&&x+&+++;;;;;;;;;;;;;;;;;;;;;;;;;;&+;;;;;;x:;;;;;;X;;;;;;;;;;;;;;;;+;;;;;;++X&$+..: + ::::x&$&&&&&X&&&&x$&&&&&x&&&&&+X$+&&+++$&++++$$&++$&&&+$&&x++;;;;;;;;;;;;;;;;;;;;;;;;+;&+++::;;;;;::;;X:;;;;;;;;;;;;;;+;;+;;;;+;&$x:::. + ::::;&&&&&&&X&&&&+$&&&$$$X&&+$X$x$&$Xxx+&+x++XXX++;&&&&&&&x++;+++;;;;;;;;;;;;;;;;;;;;;+:&;&+:;;+&&++X&$:;;;;;;;;;;;;;;;;;;;;+++&&X;:::. + :::::+&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&+x&&+x++x&x+++&&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;:&$:&&;;:x&+:;+;;;;;;;;;;;++;+++;;++++$&$+::::. + ..:..:+&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XX$$XxXxxx+++++&&&&&$++++++++++;;;;;;;;;;;;;;;;;;;;;;$;+;;;;&;;;;&;+;;;;;;++;++++++;+++x$&$+:.:..: + .:....;x&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$XXXxxxx++++&&&&&&X++xXx+++++++;;;;;;;;;;;;;;;;;;;;;X;+;+;$;&;+&:+;+++++;+;++++++++++X&$x:...:.: + ..:.:.:;X&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXX+xxx&&+&&&$$$$X$&Xxx++;;+;;;;;;;;;;;;;;;:;;;++;;+$+X;$x&+++;+++++++++++;+++xX&$X;.:.:..: + ::::::..;X&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XX$&&&&&&&&&xx++++++;;;;;;;;;;;;;;;;;;;;;;;+X+;$:x+&&$++++++++++++++++++xxX&&X;.::::::. + ::::::.:.;X&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$&&$$$&&&&&&&&$++;;;;;;;;;;;+;;;;;;;;;;;;;;;;+++;+X$;+$&;++++++X&X&+x++++++xX$&$X;..::::::. + ::::::....;x&&&&&&&&&&&&&&&&&XX&&&&&&&&&&&&&&&&&&&&&&&&&&x++;;+;;;;++++++++;;+;+;;;;;;;++x&&&X&&&&&&++++x&$X++$++xxx+xxX&&$X;.:.::::::. + ::::::::::::x&&$&&&&&&+&&&&&&&&&&&&&&&&&&&$&&&&&xX&&&&+++++++++++++++xx+++;+++++++++++&&&&&&&&&&&&&+++++x+x$&x&&&&&xXX;&&$x:::::::::::: + ......:::::::+&&&&&&&&&X&&&&&x&&&X&&&&&&&&&&&&&&$x++x&&&&&&&$+XX$$&&&&$Xxx++++++xX&&&&&&&&&&&&&&Xxx+x+XXx+xxx&&X$xXX$$&&X+::::::......: + .:.:..::::::..+x&&X&&&&&X&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xx+xxxxxxxxx&&&&X$+++&XX$X&&$X;.:::::::.:.:.: + ....:.:::::::..:x$&&&&&&&&&&&&&&&&&&&&X&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+xxXxxxXx+$xxxxxX&;&XX&&X$$&&&&X+:..::::::......: + ::::::....:::::::;x&&&&&&&&&&X&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&X$X$$$XXXXX$$&&x$$X$&&XX$$$&&X&&$X;::::......::::::. + :::::::.:..::::::::+X&&$&&&&&&&&&&X&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$X$&$X$$&$&&X$$x$&&$&&&X&&$X+::::::.:.:.:::::::. + ::::::...:.:::::::..:+X&&&&&&&&&&&&&&&&&&&&&&&&$&X$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$+&Xxx&&$$&&&&&$+x&&&&&&X&&$X+:.::::::......::::::. + ......::::::.:...::::::+X&&&+&&&&&&&&&&&&x&&&&X&&&&&&&&++XX&&&&&&&&&&&&&&&&XXXX&&&&&&&&$&&&&&&$&&X$&&&&&&$&&&$X+:::::...:.::::::......: + .:.:.:::::::..:..::::::.:+X&&&$&&&&&&&&&&$&&&&&$X&&&&&&&&&&&&&&&&&&&&X&&&&&&&&&&$&&&&&&&&&&&&&&X&&&&&&&X&&&$X+:::::::.:...::::::.:.:..: + ..:...:::::::..:.::::::..:.;xX&&&X&&&&&&&&X&&&&&&&&&&&+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&x&&&&&&&&&&X&&&&$x;.::::::::..:..::::::....:.: + ::::::.....:::::::.....:::::::+X$&&&&x&&&&&&&&&&&&&&&&&&&&&X&&&&&&&+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x&&&&$x+::::::.....::::::.....:::::::. + ::::::.:.:.:::::::.:.:.::::::...:+XX&&&&XX&&&&&&&&&&&X&&&&&x&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&X&&&&&$X+:..::::::.:.:.:::::::.:.:.::::::. + ::::::.....:::::::.....::::::.:...:;+xX$&&&&&x&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X&&&&&$Xx+:..:.:::::::....:::::::.....:::::::. + ......::::::.....::::::......::::::....;+xX$&&&&&&X;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+X&&&&&&$$Xx+;...::::::.....:::::::....:::::::......: + .:.:.::::::::.:.:::::::.:.:..::::::.:.:.:::;++X$$&&&&&&&&&&&$XXXX$$$X$&&&&&&&&&&&&&&&$$$X++;:...:.::::::::.:.::::::::.:.:.:::::::.:.:.: + ......::::::.:...::::::....:.::::::......::::::.:;++xXX$$$$&&&&&&&&&&&&&&&&&$$$$XXx++;:::::::.:....::::::.....:::::::.....::::::...:..: + ::::::.....:::::::.:...::::::....:.::::::....::::::::.:.:;;;++++++x++++++++;;;:.:::::::......::::::.....:::::::..:..::::::...:.:::::::. + """ + ) \ No newline at end of file diff --git a/coin_flip_visualizer/coin_flip_visualizer.py b/coin_flip_visualizer/coin_flip_visualizer.py new file mode 100644 index 00000000..631b7a9e --- /dev/null +++ b/coin_flip_visualizer/coin_flip_visualizer.py @@ -0,0 +1,98 @@ +import random +import time +from ascii import ascii_art +import os + +def is_high_score(score, high_score): + if score > high_score: + high_score = score + return high_score + +def clear_terminal(): + if os.name == 'nt': + os.system('cls') + else: + os.system('clear') + +# check if user wants to flip another coin with a boolean. raise exception if necessary +def yes_or_no(user_input): + if user_input == "y" or user_input == "Y": + flip_again = True + elif user_input == "n" or user_input == "N": + flip_again = False + else: + raise Exception("Please enter y or n") + return flip_again + + +def main(): + last_flip = None + sequential_flip = 1 + heads_or_tails = None + flip_again = True + username = None + score = 0 + high_score = 0 + + clear_terminal() + print("Hi! please enter a username:") + username = input() + + clear_terminal() + print("Press ENTER to flip a coin!") + input() + + while flip_again == True: + coin_flip = random.randint(0, 1) + + if coin_flip == 1: + heads_or_tails = "heads" + else: + heads_or_tails = "tails" + + clear_terminal() + print("Flipping coin now...") + time.sleep(2) + + #display coin flip art + ascii_art(coin_flip) + + #display message if coin is heads or tails multiple times in a row plus user score + if sequential_flip >= 9 and coin_flip == last_flip: + sequential_flip += 1 + score += 10 ** sequential_flip + high_score = is_high_score(score, high_score) + print(f"\n Unbelievable! {username} flipped {sequential_flip} {heads_or_tails} in a row!!! Score:{score} High Score:{high_score}") + elif sequential_flip >= 4 and coin_flip == last_flip: + sequential_flip += 1 + score += 10 * sequential_flip ** 2 + high_score = is_high_score(score, high_score) + print(f"\n Crazy! {username} flipped {sequential_flip} {heads_or_tails} in a row!!! Score:{score} High Score:{high_score}") + elif coin_flip == last_flip: + sequential_flip += 1 + score += 10 * sequential_flip + high_score = is_high_score(score, high_score) + print(f"\nWow! {username} flipped {sequential_flip} {heads_or_tails} in a row!! Score:{score} High Score:{high_score}") + elif sequential_flip > 1 and coin_flip != last_flip: + sequential_flip = 1 + score = 10 + print(f"\nYou got {heads_or_tails}, streak lost! Score:{score} High Score:{high_score}") + else: + score = 10 + high_score = is_high_score(score, high_score) + print(f"\nYou got {heads_or_tails}! Score:{score} High Score:{high_score}") + + # next iteration this is used to see if user got 2 or more heads/tails in a row + last_flip = coin_flip + + print("\n\nFlip another coin?") + + while True: + try: + flip_again = yes_or_no(input()) + break + except Exception as e: + print(e) + + +main() \ No newline at end of file