diff --git a/GUI/Dates/README.md b/GUI/Dates/README.md new file mode 100644 index 00000000..b1a6c312 --- /dev/null +++ b/GUI/Dates/README.md @@ -0,0 +1,9 @@ +Dates is a simple script to demonstrate both the use of PySimpleGUI as an interface to python scripts, +and basic date manipulation. + +It requires PySimpleGUI==4.60.1 + +Tested on Python 3.10 + + +Eduardo C. (https://github.com/ehcelino) \ No newline at end of file diff --git a/GUI/Dates/main.py b/GUI/Dates/main.py new file mode 100644 index 00000000..39b77c31 --- /dev/null +++ b/GUI/Dates/main.py @@ -0,0 +1,94 @@ +""" +Dates - a simple graphic dates calculator +Demonstrates the use of PySimpleGui as an interface +and date arithmetics using module datetime and numpy. +2022 Eduardo C. - https://github.com/ehcelino +""" +from datetime import datetime +import PySimpleGUI as sg +import numpy as np + +DATE_FRMT = '%m-%d-%Y' + +def days_between(date_one, date_two): + """ + Determines how many days between dates. + :param date_one: date (us format) as string + :param date_two: date (us format) as string + :return: days as string + """ + result = '' + try: + tmp_one = datetime.strptime(date_one, DATE_FRMT) + tmp_two = datetime.strptime(date_two, DATE_FRMT) + except ValueError as exc: + sg.popup('Error:', exc) + else: + mytimedelta = tmp_one - tmp_two + result = mytimedelta.days + return result + +def workdays_between(date_one, date_two): + """ + Determines how many workdays between dates. + :param date_one: date (us format) as string + :param date_two: date (us format) as string + :return: days as int + """ + result = '' + try: + tmp_one = datetime.strptime(date_one, DATE_FRMT) + tmp_two = datetime.strptime(date_two, DATE_FRMT) + except ValueError as exc: + sg.popup('Error:', exc) + else: + result = np.busday_count(tmp_one.strftime('%Y-%m-%d'), tmp_two.strftime('%Y-%m-%d')) + return result + +def main_window(): + """ + Defines the main window. + :return: PySimpleGUI Window object. + """ + tsz = (8, 1) # Makes easier to define sizes to multiple elements. + isz = (15, 1) + # Everything bound by []'s goes on one line. + layout = [ + [sg.Text('Date calculator', font='_ 12 bold')], + [sg.Text('Date format: US (mm-dd-yyyy', font='_ 10 italic')], + [sg.Text('Date one:', size=tsz), + sg.Input('', size=isz, key='-DATE01-')], + [sg.Text('Date two:', size=tsz), + sg.Input('', size=isz, key='-DATE02-')], + [sg.Text('Answer:', size=tsz), + sg.Input('', size=isz, key='-OUTPUT-')], + [sg.Push(), sg.Button('Days between dates', key='-BETWEEN-'), sg.Push()], + [sg.Push(), sg.Button('Working days bt. dates', key='-WORKING-'), sg.Push()], + [sg.Push(), sg.Button('Exit', key='-EXIT-')] + ] + + return sg.Window('Date calculator!', layout, finalize=True) + +window = main_window() + +while True: # This is the main loop. + event, values = window.read() + + if event == '-BETWEEN-': + try: + window['-OUTPUT-'].update(value=str(abs( + days_between(values['-DATE01-'], values['-DATE02-'])))) + except TypeError as err: + sg.popup('Error:', err) + + if event == '-WORKING-': + try: + window['-OUTPUT-'].update(value=str(abs( + workdays_between(values['-DATE01-'], values['-DATE02-'])))) + except TypeError as err: + sg.popup('Error:', err) + + if event in (sg.WIN_CLOSED, '-EXIT-'): + break + +window.close() diff --git a/GUI/PyQuiz/README.md b/GUI/PyQuiz/README.md new file mode 100644 index 00000000..c8c2f7e2 --- /dev/null +++ b/GUI/PyQuiz/README.md @@ -0,0 +1,9 @@ +PyQuiz is a simple script to demonstrate both the use of PySimpleGUI as an interface to python scripts, +and dictionaries for storing data. The code is mostly commented and as easy to understand as I could make it. + +It requires PySimpleGUI==4.60.1 + +Tested on Python 3.10 + + +Eduardo C. (https://github.com/ehcelino) \ No newline at end of file diff --git a/GUI/PyQuiz/main.py b/GUI/PyQuiz/main.py new file mode 100644 index 00000000..fdb8b9d7 --- /dev/null +++ b/GUI/PyQuiz/main.py @@ -0,0 +1,115 @@ +""" +PyQuiz - a simple graphical quiz software +Demonstrates the use of PySimpleGui as an interface +and simple dictionary interaction +2022 Eduardo C. - https://github.com/ehcelino +""" +import PySimpleGUI as sg + +# The dictionary containing our questions and answers (can come from a file, a database...) +datatable = { + "1": { + "question": "10 + 10", + "answers": { + "a": "20", + "b": "100", + "c": "1010", + }, + "correct_answer": "a", + }, + "2": { + "question": "5 * 5", + "answers": { + "a": "55", + "b": "25", + "c": "500", + }, + "correct_answer": "b", + }, + "3": { + "question": "3 ** 2", + "answers": { + "a": "3", + "b": "32", + "c": "9", + }, + "correct_answer": "c", + }, +} + +# Our window definition. +def main_window(): + """ + Defines the main window. + :return: PySimpleGUI Window object. + """ + # Everything bound by []'s goes on one line. + layout = [ + [sg.Text('Quiz!', font='_ 12 bold')], + [sg.Text('Question:')], + [sg.Input('', size=(30, 1), key='-QUESTION-')], + [sg.Text('Answers:')], + [sg.Multiline('', size=(30, 8), key='-OPTIONS-')], + [sg.Radio('a', group_id='-RADIO-', key='a'), + sg.Radio('b', group_id='-RADIO-', key='b'), + sg.Radio('c', group_id='-RADIO-', key='c'),], + [sg.Button('Start', key='-START-'), sg.Button('Answer', key='-ANSWER-'), + sg.Button('Exit', key='-EXIT-')] + ] + + return sg.Window('Quiz!', layout, finalize=True) + +window = main_window() + +# variables +QUESTIONS_INDEX = 1 +END = False # To keep track of the end of the game +ANSWERED = False # If the question is still unanswered +QUESTIONING = False # If there's an active question +CORRECT = 0 + +# aliases +question = window['-QUESTION-'] +answers = window['-OPTIONS-'] + +while True: # This is the main loop. + event, values = window.read() + + if event == '-START-': + if not END: + QUESTIONING = True + answers.update(value='') + question.update(value=f'{datatable[str(QUESTIONS_INDEX)]["question"]}') + for answer, answer_data in datatable[str(QUESTIONS_INDEX)]["answers"].items(): + answers.print(f'({answer}): {answer_data}') + correct_answer = datatable[str(QUESTIONS_INDEX)]["correct_answer"] + ANSWERED = False + else: + QUESTIONING = False + sg.popup('End of Quiz.') + + if event == '-ANSWER-': + if (values['a'] or values['b'] or values['c']) and QUESTIONING: + for idx in ('a', 'b', 'c'): + if values[idx]: + USER_CHOICE = idx + if not ANSWERED: + if USER_CHOICE == correct_answer: + sg.popup('Correct!') + CORRECT += 1 + else: + sg.popup('Wrong.') + if not ANSWERED: + QUESTIONS_INDEX += 1 + ANSWERED = True + if QUESTIONS_INDEX > len(datatable): + END = True + sg.popup(f'The end. You got {CORRECT} of {len(datatable)}.') + if not END: + window.write_event_value('-START-', '') + + if event in (sg.WIN_CLOSED, '-EXIT-'): + break + + +window.close() diff --git a/GUI/QtQuiz/README.md b/GUI/QtQuiz/README.md new file mode 100644 index 00000000..a8d7228d --- /dev/null +++ b/GUI/QtQuiz/README.md @@ -0,0 +1,9 @@ +QtQuiz is a simple script to demonstrate both the use of PyQT5 as an interface to python scripts, +and dictionaries for storing data. The code is mostly commented and as easy to understand as I could make it. + +It requires PyQt5==5.15.7 + +Tested on Python 3.10 + + +Eduardo C. (https://github.com/ehcelino) \ No newline at end of file diff --git a/GUI/QtQuiz/design.py b/GUI/QtQuiz/design.py new file mode 100644 index 00000000..b5ecb7a3 --- /dev/null +++ b/GUI/QtQuiz/design.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\design.ui' +# +# Created by: PyQt5 UI code generator 5.15.7 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(420, 417) + self.centralwidget = QtWidgets.QWidget(MainWindow) + font = QtGui.QFont() + font.setFamily("Calibri") + font.setPointSize(12) + self.centralwidget.setFont(font) + self.centralwidget.setObjectName("centralwidget") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(10, 20, 221, 16)) + self.label.setObjectName("label") + self.txtQuestion = QtWidgets.QTextEdit(self.centralwidget) + self.txtQuestion.setGeometry(QtCore.QRect(10, 70, 401, 61)) + self.txtQuestion.setReadOnly(True) + self.txtQuestion.setObjectName("txtQuestion") + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setGeometry(QtCore.QRect(10, 50, 71, 16)) + self.label_2.setObjectName("label_2") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(10, 140, 21, 16)) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(10, 170, 21, 16)) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(self.centralwidget) + self.label_5.setGeometry(QtCore.QRect(10, 200, 21, 16)) + self.label_5.setObjectName("label_5") + self.label_6 = QtWidgets.QLabel(self.centralwidget) + self.label_6.setGeometry(QtCore.QRect(10, 230, 21, 16)) + self.label_6.setObjectName("label_6") + self.txtAnswerA = QtWidgets.QLineEdit(self.centralwidget) + self.txtAnswerA.setGeometry(QtCore.QRect(30, 140, 381, 20)) + self.txtAnswerA.setReadOnly(True) + self.txtAnswerA.setObjectName("txtAnswerA") + self.txtAnswerB = QtWidgets.QLineEdit(self.centralwidget) + self.txtAnswerB.setGeometry(QtCore.QRect(30, 170, 381, 20)) + self.txtAnswerB.setReadOnly(True) + self.txtAnswerB.setObjectName("txtAnswerB") + self.txtAnswerC = QtWidgets.QLineEdit(self.centralwidget) + self.txtAnswerC.setGeometry(QtCore.QRect(30, 200, 381, 20)) + self.txtAnswerC.setReadOnly(True) + self.txtAnswerC.setObjectName("txtAnswerC") + self.txtAnswerD = QtWidgets.QLineEdit(self.centralwidget) + self.txtAnswerD.setGeometry(QtCore.QRect(30, 230, 381, 20)) + self.txtAnswerD.setReadOnly(True) + self.txtAnswerD.setObjectName("txtAnswerD") + self.label_7 = QtWidgets.QLabel(self.centralwidget) + self.label_7.setGeometry(QtCore.QRect(10, 260, 91, 16)) + self.label_7.setObjectName("label_7") + self.txtOne = QtWidgets.QLineEdit(self.centralwidget) + self.txtOne.setGeometry(QtCore.QRect(320, 30, 21, 20)) + self.txtOne.setReadOnly(True) + self.txtOne.setObjectName("txtOne") + self.label_8 = QtWidgets.QLabel(self.centralwidget) + self.label_8.setGeometry(QtCore.QRect(350, 30, 21, 16)) + self.label_8.setObjectName("label_8") + self.txtN = QtWidgets.QLineEdit(self.centralwidget) + self.txtN.setGeometry(QtCore.QRect(370, 30, 21, 20)) + self.txtN.setReadOnly(True) + self.txtN.setObjectName("txtN") + self.btnStart = QtWidgets.QPushButton(self.centralwidget) + self.btnStart.setGeometry(QtCore.QRect(10, 360, 71, 41)) + self.btnStart.setObjectName("btnStart") + self.btnAnswer = QtWidgets.QPushButton(self.centralwidget) + self.btnAnswer.setGeometry(QtCore.QRect(90, 360, 71, 41)) + self.btnAnswer.setObjectName("btnAnswer") + self.btnExit = QtWidgets.QPushButton(self.centralwidget) + self.btnExit.setGeometry(QtCore.QRect(340, 360, 71, 41)) + self.btnExit.setObjectName("btnExit") + self.radA = QtWidgets.QRadioButton(self.centralwidget) + self.radA.setGeometry(QtCore.QRect(110, 260, 31, 17)) + self.radA.setObjectName("radA") + self.radB = QtWidgets.QRadioButton(self.centralwidget) + self.radB.setGeometry(QtCore.QRect(150, 260, 31, 17)) + self.radB.setObjectName("radB") + self.radC = QtWidgets.QRadioButton(self.centralwidget) + self.radC.setGeometry(QtCore.QRect(190, 260, 31, 17)) + self.radC.setObjectName("radC") + self.radD = QtWidgets.QRadioButton(self.centralwidget) + self.radD.setGeometry(QtCore.QRect(230, 260, 31, 17)) + self.radD.setObjectName("radD") + self.txtResult = QtWidgets.QLineEdit(self.centralwidget) + self.txtResult.setGeometry(QtCore.QRect(80, 300, 251, 20)) + self.txtResult.setFocusPolicy(QtCore.Qt.StrongFocus) + self.txtResult.setAlignment(QtCore.Qt.AlignCenter) + self.txtResult.setReadOnly(True) + self.txtResult.setObjectName("txtResult") + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "QtQuiz!")) + self.label.setText(_translate("MainWindow", "QtQuiz! - Questions and answers")) + self.label_2.setText(_translate("MainWindow", "Question:")) + self.label_3.setText(_translate("MainWindow", "a)")) + self.label_4.setText(_translate("MainWindow", "b)")) + self.label_5.setText(_translate("MainWindow", "c)")) + self.label_6.setText(_translate("MainWindow", "d)")) + self.label_7.setText(_translate("MainWindow", "Your answer:")) + self.label_8.setText(_translate("MainWindow", "of")) + self.btnStart.setText(_translate("MainWindow", "Start")) + self.btnAnswer.setText(_translate("MainWindow", "Answer")) + self.btnExit.setText(_translate("MainWindow", "Exit")) + self.radA.setText(_translate("MainWindow", "a")) + self.radA.setShortcut(_translate("MainWindow", "A")) + self.radB.setText(_translate("MainWindow", "b")) + self.radB.setShortcut(_translate("MainWindow", "B")) + self.radC.setText(_translate("MainWindow", "c")) + self.radC.setShortcut(_translate("MainWindow", "C")) + self.radD.setText(_translate("MainWindow", "d")) + self.radD.setShortcut(_translate("MainWindow", "D")) diff --git a/GUI/QtQuiz/design.ui b/GUI/QtQuiz/design.ui new file mode 100644 index 00000000..75896d3f --- /dev/null +++ b/GUI/QtQuiz/design.ui @@ -0,0 +1,344 @@ + + + MainWindow + + + + 0 + 0 + 420 + 417 + + + + QtQuiz! + + + + + Calibri + 12 + + + + + + 10 + 20 + 221 + 16 + + + + QtQuiz! - Questions and answers + + + + + + 10 + 70 + 401 + 61 + + + + true + + + + + + 10 + 50 + 71 + 16 + + + + Question: + + + + + + 10 + 140 + 21 + 16 + + + + a) + + + + + + 10 + 170 + 21 + 16 + + + + b) + + + + + + 10 + 200 + 21 + 16 + + + + c) + + + + + + 10 + 230 + 21 + 16 + + + + d) + + + + + + 30 + 140 + 381 + 20 + + + + true + + + + + + 30 + 170 + 381 + 20 + + + + true + + + + + + 30 + 200 + 381 + 20 + + + + true + + + + + + 30 + 230 + 381 + 20 + + + + true + + + + + + 10 + 260 + 91 + 16 + + + + Your answer: + + + + + + 320 + 30 + 21 + 20 + + + + true + + + + + + 350 + 30 + 21 + 16 + + + + of + + + + + + 370 + 30 + 21 + 20 + + + + true + + + + + + 10 + 360 + 71 + 41 + + + + Start + + + + + + 90 + 360 + 71 + 41 + + + + Answer + + + + + + 340 + 360 + 71 + 41 + + + + Exit + + + + + + 110 + 260 + 31 + 17 + + + + a + + + A + + + + + + 150 + 260 + 31 + 17 + + + + b + + + B + + + + + + 190 + 260 + 31 + 17 + + + + c + + + C + + + + + + 230 + 260 + 31 + 17 + + + + d + + + D + + + + + + 80 + 300 + 251 + 20 + + + + Qt::StrongFocus + + + Qt::AlignCenter + + + true + + + + + + + diff --git a/GUI/QtQuiz/main.py b/GUI/QtQuiz/main.py new file mode 100644 index 00000000..150b4100 --- /dev/null +++ b/GUI/QtQuiz/main.py @@ -0,0 +1,152 @@ +r""" +QtQuiz - Qt graphical quiz software. +Demonstrates the use of PyQT5 as an interface, and +simple dictionary interaction. + +The interface was designed using QT Designer (https://build-system.fman.io/qt-designer-download). +To convert from designer's .ui to .py use the command 'pyuic5 .\design.ui >> design.py' (Windows +powershell). Then proceed by importing the new module into your code. A few errors may occur, +usually related to the codepage of the .py file or invalid characters found in it. +For both I use Notepad++ to make the necessary corrections. + +I've noticed that PyQt5 prevents python from throwing errors as expected, +instead showing minimal cryptic messages. So I make use of the PyCharm's debugger function +to extract and correct these errors. + +2022 Eduardo C. - https://github.com/ehcelino +""" +import sys +# import QtQuiz.design +from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QVBoxLayout, QWidget +from QtQuiz.design import * + +datatable = { + "1": { + "question": "The statement: 'print((10+10) / 2) will result in:'", + "answers": { + "a": "an error", + "b": "10.0", + "c": "10", + "d": "(10+10) / 2", + }, + "correct_answer": "b", + }, + "2": { + "question": "What's the result of print(type(5.0))?", + "answers": { + "a": "True", + "b": "Integer", + "c": "False", + "d": "class 'float'", + }, + "correct_answer": "d", + }, + "3": { + "question": "How do you define a function in Python?", + "answers": { + "a": "function myfunction():", + "b": "def myfunction():", + "c": "set myfunction as function", + "d": "myfunction():", + }, + "correct_answer": "b", + }, +} + +CORRECT = 0 + +class ReportWindow(QWidget): + """ + This is actually a QWidget, that will appear floating as a window. + It shows the user how many questions he got right compared to the total. + The button in it quits the whole application, same as the exit button on main window. + Notice that instead of using a design file, we are creating this window on the fly. + """ + def __init__(self): + super().__init__() + layout = QVBoxLayout() + self.label1 = QLabel("Your result:") + layout.addWidget(self.label1) + self.label1.setStyleSheet('font: 15px Calibri') # The style is set using css rules + self.label2 = QLabel(f"You got {CORRECT} from {len(datatable)}") + self.label2.setStyleSheet('font: 15px Calibri') + layout.addWidget(self.label2) + self.button = QPushButton('Exit') + self.button.setStyleSheet('font: 15px Calibri') + layout.addWidget(self.button) + self.button.clicked.connect(QApplication.quit) + self.setLayout(layout) + +class QuizApp(QMainWindow, Ui_MainWindow): + """ + Main application window. All the logic goes here. + """ + index = 1 + started = False + + def __init__(self, parent=None): + super().__init__(parent) + super().setupUi(self) + self.txtResult.setStyleSheet('border: 1px solid red; font: bold') + self.btnStart.clicked.connect(self.start) + self.btnAnswer.clicked.connect(self.answer) + self.btnExit.clicked.connect(QApplication.quit) + + def start(self): + """ + Start the questions. + :return: None. + """ + self.started = True + self.txtOne.setText(str(self.index)) + self.txtN.setText(str(len(datatable))) + self.txtQuestion.setText(f'{datatable[str(self.index)]["question"]}') + self.txtAnswerA.setText(f'{datatable[str(self.index)]["answers"]["a"]}') + self.txtAnswerB.setText(f'{datatable[str(self.index)]["answers"]["b"]}') + self.txtAnswerC.setText(f'{datatable[str(self.index)]["answers"]["c"]}') + self.txtAnswerD.setText(f'{datatable[str(self.index)]["answers"]["d"]}') + + + def answer(self): + """ + This function is called whenever the answer button is pressed. + :return: None. + """ + global CORRECT + if self.started and (self.radA.isChecked() or self.radB.isChecked() + or self.radC.isChecked() or self.radD.isChecked()): + # couldn't find a better way to do this. If you do please drop me a line. + if self.radA.isChecked(): + choice = 'a' + elif self.radB.isChecked(): + choice = 'b' + elif self.radC.isChecked(): + choice = 'c' + elif self.radD.isChecked(): + choice = 'd' + # started = False + if choice == datatable[str(self.index)]["correct_answer"]: + self.txtResult.setText('Correct!') + CORRECT += 1 + else: + self.txtResult.setText('Wrong!') + if self.index < len(datatable): + self.index += 1 + self.start() + else: + # self.txtResult.setText(f'End! You got {self.CORRECT_ANSWERS} of {len(datatable)}') + self.show_report_window() + + def show_report_window(self): + """ + Opens the report window at the end of the run. + :return: None. + """ + self.win = ReportWindow() + self.win.show() + +if __name__ == '__main__': + qt = QApplication(sys.argv) + qtquiz = QuizApp() + qtquiz.show() + qt.exec_() diff --git a/README.md b/README.md index e8dfba81..5d29a4a2 100644 --- a/README.md +++ b/README.md @@ -44,65 +44,68 @@ The contribution guidelines are as per the guide [HERE](https://github.com/larym ## Projects -| SR No | Project | Author | -| ----- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -| 1 | [Ascii Image Converter](https://github.com/larymak/Python-project-Scripts/tree/main/ART%20SCRIPTS/image-ascii) | [Lary Mak](https://github.com/larymak) | -| 2 | [DigitalClock](https://github.com/larymak/Python-project-Scripts/tree/main/TIME%20SCRIPTS/DigitalClock) | [Logan Ozdyck](https://github.com/ozdyck3) | -| 3 | [Insta Spam Bot](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/InstaSpamBot) | [Lary Mak](https://github.com/larymak) | -| 4 | [Pyjokes](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/pyjokes) | [Lary Mak](https://github.com/larymak) | -| 5 | [WhatsApp Spambot](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/whatsapp-spam) | [Lary Mak](https://github.com/larymak) | -| 6 | [Instagram Bot](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/InstagramBot) | [Lary Mak](https://github.com/larymak) | -| 7 | [Photo Editor App](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/photo%20editor) | [Lary Mak](https://github.com/larymak) | -| 8 | [Random Name Generator](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/RandomNameGen) | [Lary Mak](https://github.com/larymak) | -| 9 | [Web Scrapping](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/WebScraping) | [Lary Mak](https://github.com/larymak) | -| 10 | [Random Password Generator](https://github.com/larymak/Python-project-Scripts/tree/main/PASSWORD%20RELATED/RandomPassword) | [Gagan prajapatii](https://github.com/Gagan1111) | -| 11 | [YouTube Video Downloader](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/YoutubeDownloader) | [Kinathany](https://github.com/jkinathan) | -| 12 | [Text to Audio](https://github.com/larymak/Python-project-Scripts/tree/main/AUDIO%20RELATED%20SCRIPTS/texttoaudio) | [Azmine Toushik](https://github.com/azminewasi) | +| SR No | Project | Author | +|-------|---------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------- | +| 1 | [Ascii Image Converter](https://github.com/larymak/Python-project-Scripts/tree/main/ART%20SCRIPTS/image-ascii) | [Lary Mak](https://github.com/larymak) | +| 2 | [DigitalClock](https://github.com/larymak/Python-project-Scripts/tree/main/TIME%20SCRIPTS/DigitalClock) | [Logan Ozdyck](https://github.com/ozdyck3) | +| 3 | [Insta Spam Bot](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/InstaSpamBot) | [Lary Mak](https://github.com/larymak) | +| 4 | [Pyjokes](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/pyjokes) | [Lary Mak](https://github.com/larymak) | +| 5 | [WhatsApp Spambot](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/whatsapp-spam) | [Lary Mak](https://github.com/larymak) | +| 6 | [Instagram Bot](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/InstagramBot) | [Lary Mak](https://github.com/larymak) | +| 7 | [Photo Editor App](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/photo%20editor) | [Lary Mak](https://github.com/larymak) | +| 8 | [Random Name Generator](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/RandomNameGen) | [Lary Mak](https://github.com/larymak) | +| 9 | [Web Scrapping](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/WebScraping) | [Lary Mak](https://github.com/larymak) | +| 10 | [Random Password Generator](https://github.com/larymak/Python-project-Scripts/tree/main/PASSWORD%20RELATED/RandomPassword) | [Gagan prajapatii](https://github.com/Gagan1111) | +| 11 | [YouTube Video Downloader](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/YoutubeDownloader) | [Kinathany](https://github.com/jkinathan) | +| 12 | [Text to Audio](https://github.com/larymak/Python-project-Scripts/tree/main/AUDIO%20RELATED%20SCRIPTS/texttoaudio) | [Azmine Toushik](https://github.com/azminewasi) | | 13 | [Sending Emails](https://github.com/larymak/Python-project-Scripts/tree/main/AUTOMATION/Sending-Emails) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | -| 14 | [Shorten Links](https://github.com/larymak/Python-project-Scripts/tree/main/CONVERSION%20SCRIPTS/ShortenLinks) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | -| 15 | [Python Dictionary](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/PYDICTIONARY) | [Kinathany](https://github.com/jkinathan) | -| 16 | [Image Captcha Generator](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Image%20Captcha%20Generator) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | -| 17 | [Audio Captcha Generator](https://github.com/larymak/Python-project-Scripts/tree/main/AUDIO%20RELATED%20SCRIPTS/Audio%20Captcha%20Generator) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | -| 18 | [Compress Image](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Compress%20Image) | [Xolani](https://github.com/xolanigumbi) | -| 19 | [Image Grayscalling](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Image%20Grayscalling) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | -| 20 | [Weather Forcasting](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/Weather%20Forcasting) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | -| 21 | [Pywhatkit](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/pywhatkit) | [SasiKalyan](https://github.com/KanakamSasikalyan) | -| 22 | [Wikipedia](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/wikipedia) | [SasiKalyan](https://github.com/KanakamSasikalyan) | +| 14 | [Shorten Links](https://github.com/larymak/Python-project-Scripts/tree/main/CONVERSION%20SCRIPTS/ShortenLinks) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | +| 15 | [Python Dictionary](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/PYDICTIONARY) | [Kinathany](https://github.com/jkinathan) | +| 16 | [Image Captcha Generator](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Image%20Captcha%20Generator) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | +| 17 | [Audio Captcha Generator](https://github.com/larymak/Python-project-Scripts/tree/main/AUDIO%20RELATED%20SCRIPTS/Audio%20Captcha%20Generator) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | +| 18 | [Compress Image](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Compress%20Image) | [Xolani](https://github.com/xolanigumbi) | +| 19 | [Image Grayscalling](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Image%20Grayscalling) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | +| 20 | [Weather Forcasting](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/Weather%20Forcasting) | [Dhrumil Gohel](https://github.com/Dhrumil-Zion) | +| 21 | [Pywhatkit](https://github.com/larymak/Python-project-Scripts/tree/main/BOTS/pywhatkit) | [SasiKalyan](https://github.com/KanakamSasikalyan) | +| 22 | [Wikipedia](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/wikipedia) | [SasiKalyan](https://github.com/KanakamSasikalyan) | | 23 | [Auto Move Files](https://github.com/larymak/Python-project-Scripts/tree/main/AUTOMATION/AutoMoveFiles) | [Hisham Khalil](https://github.com/HishamKhalil1990) | -| 24 | [Working with CSV Files](https://github.com/larymak/Python-project-Scripts/tree/main/CSV_files) | [Mahmoud alzoubi](https://github.com/Mahmoud-alzoubi95) | +| 24 | [Working with CSV Files](https://github.com/larymak/Python-project-Scripts/tree/main/CSV_files) | [Mahmoud alzoubi](https://github.com/Mahmoud-alzoubi95) | | 25 | [Getting files and folders sizes](https://github.com/larymak/Python-project-Scripts/tree/main/AUTOMATION/Getting%20Files%20and%20Folders%20sizes) | [Saeedahmadi](https://github.com/Saeedahmadi7714) | -| 26 | [Contact management system](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/Contact-management) | [Gagan prajapati](https://github.com/Gagan1111) | -| 27 | [Countdown Timer](https://github.com/larymak/Python-project-Scripts/tree/main/TIME%20SCRIPTS/Countdown%20Timer) | [Emmanuel Tanimowo](https://github.com/Mannuel25) | -| 28 | [Simple Flask Calculator](https://github.com/larymak/Python-project-Scripts/tree/main/FLASK%20PROJECTS/FlaskSimpleCalculator) | [Devnamrits](https://github.com/devnamrits) | -| 29 | [Hex to Base64 Converter](https://github.com/larymak/Python-project-Scripts/tree/main/CONVERSION%20SCRIPTS/Hex%20to%20Base64%20Converter) | [Dev M](https://github.com/devmgardner) | -| 30 | [Notifications Alert](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/Notification) | [Lary Mak](https://github.com/larymak) | -| 31 | [Qr Code Generator](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/QrCodeGen) | [Lary Mak](https://github.com/larymak) | -| 32 | [User Hash Generator](https://github.com/larymak/Python-project-Scripts/tree/main/FLASK%20PROJECTS/User%20Hash%20Generator) | [Samed Kahyaoglu](https://github.com/urtuba) | -| 33 | [Weather Updates](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/Weather%20Updates) | [Harshad Bhere](https://github.com/harshadbhere) | -| 34 | [Custom Clock](https://github.com/larymak/Python-project-Scripts/tree/main/TIME%20SCRIPTS/current_time) | [Saeedahmadi](https://github.com/Saeedahmadi7714) | -| 35 | [Image to ASCII](https://github.com/larymak/Python-project-Scripts/tree/main/ART%20SCRIPTS/image-ascii) | [Lary Mak](https://github.com/larymak) | -| 36 | [Password Validator](https://github.com/larymak/Python-project-Scripts/tree/main/PASSWORD%20RELATED/password-validator) | [Emmanuel Tanimowo](https://github.com/Mannuel25) | -| 37 | [Number Guessing Game](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/guess-the-number) | [Emmanuel Tanimowo](https://github.com/Mannuel25) | -| 38 | [Web Dev with python Flask](https://github.com/larymak/Python-project-Scripts/tree/main/FLASK%20PROJECTS/Web%20Dev%20with%20Flask) | [Deepak Sai Pendyala](https://github.com/deepaksaipendyala) | -| 39 | [password breach checker](https://github.com/larymak/Python-project-Scripts/tree/main/PASSWORD%20RELATED/passwordbreachchecker) | [Deepak Sai Pendyala](https://github.com/deepaksaipendyala) | -| 40 | [Audio Book](https://github.com/larymak/Python-project-Scripts/tree/main/AUDIO%20RELATED%20SCRIPTS/AudioBuk) | [Lary Mak](https://github.com/larymak) | -| 41 | [Geocoding Google API](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/Geocoding%20Google%20API) | [Sherief Elsowiny](https://github.com/elsowiny) | -| 42 | [News Article Scraping](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/News_Article_Scraping) | [SasiKalyan](https://github.com/KanakamSasikalyan) | -| 43 | [Sudoku Solver](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/SudokuSolver) | [Ruben Grande Muñoz](https://github.com/RgrMz) | -| 44 | [Duplicate File Remover](https://github.com/larymak/Python-project-Scripts/tree/main/AUTOMATION/Remove%20Duplicate%20Files%20in%20Folder) | [Michael Stadler](https://github.com/mas-designs) | -| 45 | [Image Divider](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/ImageDivider) | [Rajarshi Banerjee](https://github.com/GSAUC3) |) -| 46 | [Morse Code Converter](https://github.com/larymak/Python-project-Scripts/tree/main/CONVERSION%20SCRIPTS/Morse-Code-Converter) | [HarshitRV](https://github.com/HarshitRV) |) -| 47 | [CLI Photo Watermark](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/CLI-Photo-Watermark) | [Odin May](https://github.com/odinmay) -| 48 | [Pomodoro App](https://github.com/HarshitRV/Python-project-Scripts/tree/main/Pomodoro-App) | [HarshitRV](https://github.com/HarshitRV) -| 49 | [BullsAndCows](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/BullsAndCows) | [JerryChen](https://github.com/jerrychen1990) -| 50 | [Minesweeper AI](https://github.com/nrp114/Minsweeper_AI) | [Nisarg Patel](https://github.com/nrp114) -| 51 | [PDF Downloader](https://github.com/Sdccoding/Python-project-Scripts/tree/main/PDF_Downloader) | [Souhardya Das Chowdhury](https://github.com/Sdccoding) -| 52 | [ConsoleSnake](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/ConsoleSnake) | [tomimara52](https://github.com/tomimara52) -| 53 | [ConsoleMinesweeper](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/ConsoleMinesweeper) | [tomimara52](https://github.com/tomimara52) -| 54 | [Face_recognition](https://github.com/erastusnzula/Python-project-Scripts/tree/face_recognition/Face_recognition) | [erastusnzula](https://github.com/erastusnzula) -| 55 | [Rain Alert](https://github.com/Puskchan/Python-project-Scripts/tree/main/Rain_Alert) | [Puskchan](https://github.com/Puskchan) -| 56 | [Brick Breaker Game](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/Brick-Breaker_Game) | [Kaustav Ganguly](https://github.com/kaustav202) -| 57 | [Finance App](https://github.com/larymak/Python-project-Scripts/tree/main/PYTHON%20APPS/FinanceTracker) | [Aditya Tripuraneni](https://github.com/Aditya-Tripuraneni) -| 58 | [Hand Painter](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/VirtualHandPainter) | [Aditya Tripuraneni](https://github.com/Aditya-Tripuraneni) -| 59 | [Image-Inverter](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Image-Inverter) | [Omar Eldanasoury](https://github.com/omar-danasoury) -| 60 | [Snake Game](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/Snake_Game(Using%20Turtle)) | [Aarya Chopkar](https://github.com/accodes21) +| 26 | [Contact management system](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/Contact-management) | [Gagan prajapati](https://github.com/Gagan1111) | +| 27 | [Countdown Timer](https://github.com/larymak/Python-project-Scripts/tree/main/TIME%20SCRIPTS/Countdown%20Timer) | [Emmanuel Tanimowo](https://github.com/Mannuel25) | +| 28 | [Simple Flask Calculator](https://github.com/larymak/Python-project-Scripts/tree/main/FLASK%20PROJECTS/FlaskSimpleCalculator) | [Devnamrits](https://github.com/devnamrits) | +| 29 | [Hex to Base64 Converter](https://github.com/larymak/Python-project-Scripts/tree/main/CONVERSION%20SCRIPTS/Hex%20to%20Base64%20Converter) | [Dev M](https://github.com/devmgardner) | +| 30 | [Notifications Alert](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/Notification) | [Lary Mak](https://github.com/larymak) | +| 31 | [Qr Code Generator](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/QrCodeGen) | [Lary Mak](https://github.com/larymak) | +| 32 | [User Hash Generator](https://github.com/larymak/Python-project-Scripts/tree/main/FLASK%20PROJECTS/User%20Hash%20Generator) | [Samed Kahyaoglu](https://github.com/urtuba) | +| 33 | [Weather Updates](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/Weather%20Updates) | [Harshad Bhere](https://github.com/harshadbhere) | +| 34 | [Custom Clock](https://github.com/larymak/Python-project-Scripts/tree/main/TIME%20SCRIPTS/current_time) | [Saeedahmadi](https://github.com/Saeedahmadi7714) | +| 35 | [Image to ASCII](https://github.com/larymak/Python-project-Scripts/tree/main/ART%20SCRIPTS/image-ascii) | [Lary Mak](https://github.com/larymak) | +| 36 | [Password Validator](https://github.com/larymak/Python-project-Scripts/tree/main/PASSWORD%20RELATED/password-validator) | [Emmanuel Tanimowo](https://github.com/Mannuel25) | +| 37 | [Number Guessing Game](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/guess-the-number) | [Emmanuel Tanimowo](https://github.com/Mannuel25) | +| 38 | [Web Dev with python Flask](https://github.com/larymak/Python-project-Scripts/tree/main/FLASK%20PROJECTS/Web%20Dev%20with%20Flask) | [Deepak Sai Pendyala](https://github.com/deepaksaipendyala) | +| 39 | [password breach checker](https://github.com/larymak/Python-project-Scripts/tree/main/PASSWORD%20RELATED/passwordbreachchecker) | [Deepak Sai Pendyala](https://github.com/deepaksaipendyala) | +| 40 | [Audio Book](https://github.com/larymak/Python-project-Scripts/tree/main/AUDIO%20RELATED%20SCRIPTS/AudioBuk) | [Lary Mak](https://github.com/larymak) | +| 41 | [Geocoding Google API](https://github.com/larymak/Python-project-Scripts/tree/main/OTHERS/Geocoding%20Google%20API) | [Sherief Elsowiny](https://github.com/elsowiny) | +| 42 | [News Article Scraping](https://github.com/larymak/Python-project-Scripts/tree/main/WEB%20SCRAPING/News_Article_Scraping) | [SasiKalyan](https://github.com/KanakamSasikalyan) | +| 43 | [Sudoku Solver](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/SudokuSolver) | [Ruben Grande Muñoz](https://github.com/RgrMz) | +| 44 | [Duplicate File Remover](https://github.com/larymak/Python-project-Scripts/tree/main/AUTOMATION/Remove%20Duplicate%20Files%20in%20Folder) | [Michael Stadler](https://github.com/mas-designs) | +| 45 | [Image Divider](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/ImageDivider) | [Rajarshi Banerjee](https://github.com/GSAUC3) |) +| 46 | [Morse Code Converter](https://github.com/larymak/Python-project-Scripts/tree/main/CONVERSION%20SCRIPTS/Morse-Code-Converter) | [HarshitRV](https://github.com/HarshitRV) |) +| 47 | [CLI Photo Watermark](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/CLI-Photo-Watermark) | [Odin May](https://github.com/odinmay) +| 48 | [Pomodoro App](https://github.com/HarshitRV/Python-project-Scripts/tree/main/Pomodoro-App) | [HarshitRV](https://github.com/HarshitRV) +| 49 | [BullsAndCows](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/BullsAndCows) | [JerryChen](https://github.com/jerrychen1990) +| 50 | [Minesweeper AI](https://github.com/nrp114/Minsweeper_AI) | [Nisarg Patel](https://github.com/nrp114) +| 51 | [PDF Downloader](https://github.com/Sdccoding/Python-project-Scripts/tree/main/PDF_Downloader) | [Souhardya Das Chowdhury](https://github.com/Sdccoding) +| 52 | [ConsoleSnake](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/ConsoleSnake) | [tomimara52](https://github.com/tomimara52) +| 53 | [ConsoleMinesweeper](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/ConsoleMinesweeper) | [tomimara52](https://github.com/tomimara52) +| 54 | [Face_recognition](https://github.com/erastusnzula/Python-project-Scripts/tree/face_recognition/Face_recognition) | [erastusnzula](https://github.com/erastusnzula) +| 55 | [Rain Alert](https://github.com/Puskchan/Python-project-Scripts/tree/main/Rain_Alert) | [Puskchan](https://github.com/Puskchan) +| 56 | [Brick Breaker Game](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/Brick-Breaker_Game) | [Kaustav Ganguly](https://github.com/kaustav202) +| 57 | [Finance App](https://github.com/larymak/Python-project-Scripts/tree/main/PYTHON%20APPS/FinanceTracker) | [Aditya Tripuraneni](https://github.com/Aditya-Tripuraneni) +| 58 | [Hand Painter](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/VirtualHandPainter) | [Aditya Tripuraneni](https://github.com/Aditya-Tripuraneni) +| 59 | [Image-Inverter](https://github.com/larymak/Python-project-Scripts/tree/main/IMAGES%20%26%20PHOTO%20SCRIPTS/Image-Inverter) | [Omar Eldanasoury](https://github.com/omar-danasoury) +| 60 | [Snake Game](https://github.com/larymak/Python-project-Scripts/tree/main/GAMES/Snake_Game(Using%20Turtle)) | [Aarya Chopkar](https://github.com/accodes21) +| 61 | [PyQuiz](https://github.com/larymak/Python-project-Scripts/tree/main/GUI/PyQuiz) | [Eduardo C.](https://github.com/ehcelino) +| 62 | [Dates](https://github.com/larymak/Python-project-Scripts/tree/main/GUI/Dates) | [Eduardo C.](https://github.com/ehcelino) +| 63 | [QtQuiz](https://github.com/larymak/Python-project-Scripts/tree/main/GUI/QtQuiz) | [Eduardo C.](https://github.com/ehcelino) diff --git "a/dice_game_\"barbut\"" "b/dice_game_\"barbut\"" deleted file mode 100644 index 9845b098..00000000 --- "a/dice_game_\"barbut\"" +++ /dev/null @@ -1,34 +0,0 @@ -"""Barbut""" -from random import randint - - -def barbut(): - while True: - score_pairs = [17, 16, 15, 14, 13, 12] # values for pair-outcomes - user = [randint(1,6), randint(1, 6)] - bot = [randint(1, 6), randint(1, 6)] - scor_user = 0 - scor_bot = 0 - - print(f"Your dice: {user[0]}, {user[1]} | Bot's dice: {bot[0]}, {bot[1]}. ") - - if user[0] == user[1]: - scor_user = score_pairs[user[0] - 1] - else: - scor_user = user[0] + user[1] - if bot[0] == bot[1]: - scor_bot = score_pairs[bot[0] - 1] - else: - scor_bot = bot[0] + bot[1] - - if scor_user > scor_bot: - print("+5$") - break - elif scor_user == scor_bot: - print("Play on") - continue # If result is draw, play again - else: - print("-5$") - break - -barbut()