From 80363cfdcd6cb0e182ee3ad946a73597c6cbd784 Mon Sep 17 00:00:00 2001 From: nullusj Date: Sat, 3 Feb 2024 14:03:04 +0100 Subject: [PATCH 1/2] workshop jp --- 1] guessing game/main.py | 32 +++++++ 2] loto/main.py | 32 +++++++ 3] guessing game 2/main.py | 66 +++++++++++++++ .../flask_guessing/.idea/.gitignore | 3 + .../flask_guessing/.idea/flask_guessing.iml | 10 +++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .../flask_guessing/.idea/misc.xml | 10 +++ .../flask_guessing/.idea/modules.xml | 8 ++ .../flask_guessing/flask_server.py | 84 +++++++++++++++++++ .../flask_guessing/templates/game.html | 31 +++++++ .../flask_guessing/templates/index.html | 19 +++++ .../flask_guessing/templates/winner.html | 15 ++++ 5] dice/dice/.idea/.gitignore | 3 + 5] dice/dice/.idea/dice.iml | 10 +++ .../inspectionProfiles/profiles_settings.xml | 6 ++ 5] dice/dice/.idea/misc.xml | 7 ++ 5] dice/dice/.idea/modules.xml | 8 ++ 5] dice/dice/main.py | 63 ++++++++++++++ 5] dice/main.py | 0 19 files changed, 413 insertions(+) create mode 100644 4] guessing game 3/flask_guessing/.idea/.gitignore create mode 100644 4] guessing game 3/flask_guessing/.idea/flask_guessing.iml create mode 100644 4] guessing game 3/flask_guessing/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 4] guessing game 3/flask_guessing/.idea/misc.xml create mode 100644 4] guessing game 3/flask_guessing/.idea/modules.xml create mode 100644 4] guessing game 3/flask_guessing/flask_server.py create mode 100644 4] guessing game 3/flask_guessing/templates/game.html create mode 100644 4] guessing game 3/flask_guessing/templates/index.html create mode 100644 4] guessing game 3/flask_guessing/templates/winner.html create mode 100644 5] dice/dice/.idea/.gitignore create mode 100644 5] dice/dice/.idea/dice.iml create mode 100644 5] dice/dice/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 5] dice/dice/.idea/misc.xml create mode 100644 5] dice/dice/.idea/modules.xml create mode 100644 5] dice/dice/main.py delete mode 100644 5] dice/main.py diff --git a/1] guessing game/main.py b/1] guessing game/main.py index e69de29..6c5b761 100644 --- a/1] guessing game/main.py +++ b/1] guessing game/main.py @@ -0,0 +1,32 @@ +from random import randint + +def comparsion(user_number, pc_number): + """ The function compare pc_number and user_number and return result of comparsion.""" + + if user_number < pc_number: + return "Too small!" + + elif user_number > pc_number: + return "Too big!" + + return "You win!" + +pc_number = randint(1,100) +print(pc_number) + +win="" +while win != "You win!": + print(f"Guess the number from 1 to 100.") + user_number = input("Guess the number: ") + + try: + user_number = int(user_number) + + if not 0 <= user_number <= 101: + print(f"It's not a number from 1 to 100!") + else: + win = comparsion(user_number, pc_number) + print(win) + + except ValueError: + print(f"It's not a number!") diff --git a/2] loto/main.py b/2] loto/main.py index e69de29..6c5b761 100644 --- a/2] loto/main.py +++ b/2] loto/main.py @@ -0,0 +1,32 @@ +from random import randint + +def comparsion(user_number, pc_number): + """ The function compare pc_number and user_number and return result of comparsion.""" + + if user_number < pc_number: + return "Too small!" + + elif user_number > pc_number: + return "Too big!" + + return "You win!" + +pc_number = randint(1,100) +print(pc_number) + +win="" +while win != "You win!": + print(f"Guess the number from 1 to 100.") + user_number = input("Guess the number: ") + + try: + user_number = int(user_number) + + if not 0 <= user_number <= 101: + print(f"It's not a number from 1 to 100!") + else: + win = comparsion(user_number, pc_number) + print(win) + + except ValueError: + print(f"It's not a number!") diff --git a/3] guessing game 2/main.py b/3] guessing game 2/main.py index e69de29..c34128f 100644 --- a/3] guessing game 2/main.py +++ b/3] guessing game 2/main.py @@ -0,0 +1,66 @@ +from random import randint +import os + +min_number = 0 +max_number = 1000 + +ai_number = randint(0, 1000) + +def mathematics(): + return (min_number + max_number) // 2 + +def compare(ai_number, user_answer): + global min_number, max_number + + if user_answer == 1: + min_number = ai_number + return mathematics() + + elif user_answer == 2: + max_number = ai_number + return mathematics() + +def clear(): + os.system("clear") + +def lyar(): + clear() + input(f"Don't cheat!\nPress Enter to continue...") + + +while True: + try: + clear() + user_number = int(input(f"Think about a number from 1 to 1000 and let me guess it!\nPlease enter your number: ")) + if 1 <= user_number <= 1000: + break + else: + clear() + input(f"Please enter a number within the range of 1 to 1000.\nPress Enter to continue...") + except ValueError: + clear() + input(f"Please enter a valid integer.\nPress Enter to continue...") + +while True: + clear() + print(f"User number: {user_number}\n") + print(f"AI guessed: {ai_number}\n") + + try: + user_answer = int(input(f"Your answer for AI:\n\n1 for AI number is too low\n2 for AI number too high\n3 for AI number same with your\n\nEnter the number of answer: ")) + + if user_answer not in [1, 2, 3]: + input(f"Please enter 1, 2, or 3.\nPress Enter to continue...") + + if (ai_number > user_number and user_answer == 1) or (ai_number < user_number and user_answer == 2) or ((ai_number != user_number) and user_answer == 3) or (ai_number == user_number and (user_answer == 1 or user_answer == 2)): + lyar() + + elif user_answer in [1, 2]: + ai_number = compare(ai_number, user_answer) + else: + clear() + print(f"AI wins! Your number was {user_number}.") + exit(0) + + except ValueError: + pass diff --git a/4] guessing game 3/flask_guessing/.idea/.gitignore b/4] guessing game 3/flask_guessing/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/4] guessing game 3/flask_guessing/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/4] guessing game 3/flask_guessing/.idea/flask_guessing.iml b/4] guessing game 3/flask_guessing/.idea/flask_guessing.iml new file mode 100644 index 0000000..2c80e12 --- /dev/null +++ b/4] guessing game 3/flask_guessing/.idea/flask_guessing.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/4] guessing game 3/flask_guessing/.idea/inspectionProfiles/profiles_settings.xml b/4] guessing game 3/flask_guessing/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/4] guessing game 3/flask_guessing/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/4] guessing game 3/flask_guessing/.idea/misc.xml b/4] guessing game 3/flask_guessing/.idea/misc.xml new file mode 100644 index 0000000..eaec04e --- /dev/null +++ b/4] guessing game 3/flask_guessing/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/4] guessing game 3/flask_guessing/.idea/modules.xml b/4] guessing game 3/flask_guessing/.idea/modules.xml new file mode 100644 index 0000000..b9e67c0 --- /dev/null +++ b/4] guessing game 3/flask_guessing/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/4] guessing game 3/flask_guessing/flask_server.py b/4] guessing game 3/flask_guessing/flask_server.py new file mode 100644 index 0000000..bd29f72 --- /dev/null +++ b/4] guessing game 3/flask_guessing/flask_server.py @@ -0,0 +1,84 @@ +from flask import Flask, render_template +from flask import request +from random import randint +app = Flask(__name__) + +global min_number +global max_number +global ai_number + +min_number = 0 +max_number = 1000 +ai_number = randint(0, 1000) + + +def mathematics(): + return (min_number + max_number) // 2 + + +@app.route('/winner.html',methods=['POST']) +def restart_game(): + return render_template('index.html') + +# return render_template('index.html') +# user_number = int(request.form['user_number']) +# math() + + +@app.route('/game.html', methods=['GET', 'POST']) +def math(): + global min_number + global max_number + global ai_number + if request.method == 'POST': + action = request.form['action'] + user_number = int(request.form['user_number']) + ai_number = int(request.form['ai_number']) + + if (ai_number > user_number and action == 'small') or (ai_number < user_number and action == 'big') or ((ai_number != user_number) and action == 'same') or (ai_number == user_number and (action == 'small' or action == 'big')): + return render_template('game.html', user_number=user_number, ai_number=ai_number, min_number=min_number, max_number=max_number, show_text=True) + + else: + if action == 'small': + min_number = ai_number + ai_number = mathematics() + return render_template('game.html', user_number=user_number, ai_number=ai_number, min_number=min_number, max_number=max_number, show_text=False) + + elif action == 'big': + max_number = ai_number + ai_number = mathematics() + return render_template('game.html', user_number=user_number, ai_number=ai_number, min_number=min_number, max_number=max_number, show_text=False) + + elif action == 'same': + return render_template('winner.html', user_number=user_number) + + +@app.route('/index.html', methods=['POST']) +def user_number(): + global min_number + global max_number + global ai_number + min_number = 0 + max_number = 1000 + + ai_number = randint(0, 1000) + user_number = int(request.form['user_number']) + return render_template('game.html', ai_number=ai_number, user_number=user_number, min_number=min_number, max_number=max_number, show_text = False) + + +@app.route('/') +def index(): + return render_template('index.html') +# global min_number +# global max_number +# global ai_number +# min_number = 0 +# max_number = 1000 +# +# ai_number = randint(0, 1000) +# return render_template('index.html') +# user_number = int(request.form['user_number']) +# math() + + +app.run(debug=True) diff --git a/4] guessing game 3/flask_guessing/templates/game.html b/4] guessing game 3/flask_guessing/templates/game.html new file mode 100644 index 0000000..1dabc2d --- /dev/null +++ b/4] guessing game 3/flask_guessing/templates/game.html @@ -0,0 +1,31 @@ + + + + + + Guess the Number Game + + +

Guess the Number Game

+ +
+ +

Your number is:

+

AI guess number is:

+

+ + +

+

AI number is to:

+ + + +

+ {% if show_text %} +

Don't cheat!

+ {% endif %} +

+
+ + + diff --git a/4] guessing game 3/flask_guessing/templates/index.html b/4] guessing game 3/flask_guessing/templates/index.html new file mode 100644 index 0000000..3b0a88f --- /dev/null +++ b/4] guessing game 3/flask_guessing/templates/index.html @@ -0,0 +1,19 @@ + + + + + + Guess the Number Game + + +

Guess the Number Game

+
+

Guess a number between 1 and 1000:

+ + + +

+ +
+ + diff --git a/4] guessing game 3/flask_guessing/templates/winner.html b/4] guessing game 3/flask_guessing/templates/winner.html new file mode 100644 index 0000000..1fd3eeb --- /dev/null +++ b/4] guessing game 3/flask_guessing/templates/winner.html @@ -0,0 +1,15 @@ + + + + + + The computer guessed your number. + + +

The computer guessed your number. It was number {{user_number}}.

+

Play again?

+
+ +
+ + \ No newline at end of file diff --git a/5] dice/dice/.idea/.gitignore b/5] dice/dice/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/5] dice/dice/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/5] dice/dice/.idea/dice.iml b/5] dice/dice/.idea/dice.iml new file mode 100644 index 0000000..2c80e12 --- /dev/null +++ b/5] dice/dice/.idea/dice.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/5] dice/dice/.idea/inspectionProfiles/profiles_settings.xml b/5] dice/dice/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/5] dice/dice/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/5] dice/dice/.idea/misc.xml b/5] dice/dice/.idea/misc.xml new file mode 100644 index 0000000..1a2637b --- /dev/null +++ b/5] dice/dice/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/5] dice/dice/.idea/modules.xml b/5] dice/dice/.idea/modules.xml new file mode 100644 index 0000000..568d608 --- /dev/null +++ b/5] dice/dice/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/5] dice/dice/main.py b/5] dice/dice/main.py new file mode 100644 index 0000000..1b25ad4 --- /dev/null +++ b/5] dice/dice/main.py @@ -0,0 +1,63 @@ +from random import randint + +# global count + + +def mat_rand(dices, wall): + + dots = 0 + if dices == 1: + dots += randint(1, (int(wall) + 1)) + else: + for i in range(int(dices)): + dots += randint(1, (int(wall) + 1)) + return dots + + +def dic_decode(parse_dice): + result = 0 + values = list(parse_dice) + search_index_d = values.index("D") + if values.index("D") > 0: + if "+" in parse_dice: + search_index_plus = values.index("+") + modification = ''.join(values[search_index_plus + 1:]) + count = ''.join(values[0:search_index_d]) + typ = ''.join(values[search_index_d + 1:search_index_plus]) + result = int((mat_rand(count, typ))) + (int(modification)) + elif "-" in parse_dice: + search_index_plus = values.index("-") + modification = ''.join(values[search_index_plus + 1:]) + print(f"mod{modification}") + count = ''.join(values[0:search_index_d]) + typ = ''.join(values[search_index_d + 1:search_index_plus]) + result = int((mat_rand(count, typ))) - (int(modification)) + else: + count = ''.join(values[0:search_index_d]) + typ = ''.join(values[search_index_d + 1:]) + result = int((mat_rand(count, typ))) + elif values.index("D") == 0: + count = '1' + if "+" in parse_dice: + search_index_plus = values.index("+") + modification = ''.join(values[search_index_plus + 1:]) + typ = ''.join(values[search_index_d + 1:search_index_plus]) + result = int((mat_rand(count, typ))) + (int(modification)) + elif "-" in parse_dice: + search_index_plus = values.index("-") + modification = ''.join(values[search_index_plus + 1:]) + print(f"mod{modification}") + typ = ''.join(values[search_index_d + 1:search_index_plus]) + result = int((mat_rand(count, typ))) - (int(modification)) + else: + typ = ''.join(values[search_index_d+1:]) + result = int((mat_rand(count, typ))) + return result + + +dice_parameter = input("Typ of dice:") +print(f"RESULT={dic_decode(dice_parameter)}") +# todo list: +# -make exception +# -only use specific type od dice +# -review code to many if rewrite tu function diff --git a/5] dice/main.py b/5] dice/main.py deleted file mode 100644 index e69de29..0000000 From aee2b3ae379b4f55322d5a809dd28d5e5e6c15b9 Mon Sep 17 00:00:00 2001 From: nullusj Date: Sat, 3 Feb 2024 15:50:30 +0100 Subject: [PATCH 2/2] spravny soubor v lotto --- 2] loto/main.py | 93 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 70 insertions(+), 23 deletions(-) diff --git a/2] loto/main.py b/2] loto/main.py index 6c5b761..a879911 100644 --- a/2] loto/main.py +++ b/2] loto/main.py @@ -1,32 +1,79 @@ -from random import randint +from random import sample +import os -def comparsion(user_number, pc_number): - """ The function compare pc_number and user_number and return result of comparsion.""" +def print_fortune(fortune): + os.system("clear") + for i in range(0, len(fortune), 5): + print(*fortune[i:i+5]) - if user_number < pc_number: - return "Too small!" +def select_number(): + os.system("clear") +# fortune = [i for i in range(1,50)] + fortune = list(range(1,50)) + select_numbers = [] + count = 0 - elif user_number > pc_number: - return "Too big!" +# while not count == 6: + while count < 6: - return "You win!" + print_fortune(fortune) + print("") + print(f"Your select numbers are:") + print(*select_numbers) + select = input(f"Select {count + 1}. number out of 6, from 1 to 49: ") -pc_number = randint(1,100) -print(pc_number) -win="" -while win != "You win!": - print(f"Guess the number from 1 to 100.") - user_number = input("Guess the number: ") + try: + select = int(select) - try: - user_number = int(user_number) + if 1 <= select <= 49: + if select not in select_numbers: + select_numbers.append(fortune.pop(select - 1)) + select_numbers.sort() + if (select - 1) >= 8: + fortune.insert(select - 1, "X ") + count += 1 + else: + fortune.insert(select - 1, "X") + count += 1 + - if not 0 <= user_number <= 101: - print(f"It's not a number from 1 to 100!") - else: - win = comparsion(user_number, pc_number) - print(win) + except ValueError: + pass - except ValueError: - print(f"It's not a number!") + print_fortune(fortune) + print("") + print(f"Your select numbers are:") + print(*select_numbers) + + + random_indexes = sorted(sample(range(len(fortune)), 6)) + print("") + print("The winning numbers are:") + for lucky_numbers in random_indexes: + print(lucky_numbers +1, end=" ") + print("") + + sum_win_numbers = 0 + for index in random_indexes: + if index <= 9 and fortune[index] == "X": + print("X", end=" ") + sum_win_numbers += 1 + + if index >= 10 and fortune[index] == "X ": + print("X ", end=" ") + sum_win_numbers += 1 + + if index >= 10 and not fortune[index] == "X ": + print("- ", end=" ") + + if index <= 9 and not fortune[index] == "X": + print("-", end=" ") + + print("") + if 6 >= sum_win_numbers >=3: + return f"**** You won! ***\nYou guessed it.\nThe number of guessed numbers is {sum_win_numbers}" + + return f"Unfortunately, you didn't win.\nThe number of guessed numbers is less than 3.\nThe number of guessed numbers is {sum_win_numbers}." + +print(select_number())