diff --git "a/Harjoitusty\303\266/README.md" "b/Harjoitusty\303\266/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..006d48f1e5f463d7453b93ad895221b19a78b035 --- /dev/null +++ "b/Harjoitusty\303\266/README.md" @@ -0,0 +1,5 @@ +Ohjelma on peli, jossa kysytään Counter-Strike : Global Offensiveen liittyviä kysymyksiä. +Ohjelma arpoo listasta 10 kysymystä, ja esittää 4 eri vastausvaihtoehtoa, joista käyttäjä valitsee A, B, C tai D +Lopussa ohjelma kertoo käyttäjälle pistemäärän. + +Ohjelma käynnistyy suorittamalla main.py ohjelma. \ No newline at end of file diff --git "a/Harjoitusty\303\266/__pycache__/funcsAndClasses.cpython-39.pyc" "b/Harjoitusty\303\266/__pycache__/funcsAndClasses.cpython-39.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..10dbca77e45e6224a1dc9c2aa2d55e3069bcc7d7 Binary files /dev/null and "b/Harjoitusty\303\266/__pycache__/funcsAndClasses.cpython-39.pyc" differ diff --git "a/Harjoitusty\303\266/__pycache__/functions.cpython-39.pyc" "b/Harjoitusty\303\266/__pycache__/functions.cpython-39.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..80bede53751f61100bed1ac2aa53b72255917f1b Binary files /dev/null and "b/Harjoitusty\303\266/__pycache__/functions.cpython-39.pyc" differ diff --git "a/Harjoitusty\303\266/__pycache__/main.cpython-39.pyc" "b/Harjoitusty\303\266/__pycache__/main.cpython-39.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..dc0fdaa086d09a51adff49e689cc2d2833df4ed3 Binary files /dev/null and "b/Harjoitusty\303\266/__pycache__/main.cpython-39.pyc" differ diff --git "a/Harjoitusty\303\266/__pycache__/questions.cpython-39.pyc" "b/Harjoitusty\303\266/__pycache__/questions.cpython-39.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..38609741a818e228a3da82480f37c83228c616b1 Binary files /dev/null and "b/Harjoitusty\303\266/__pycache__/questions.cpython-39.pyc" differ diff --git "a/Harjoitusty\303\266/funcsAndClasses.py" "b/Harjoitusty\303\266/funcsAndClasses.py" new file mode 100644 index 0000000000000000000000000000000000000000..5bc8470856c0c495ddc392f7b40d80aab1372861 --- /dev/null +++ "b/Harjoitusty\303\266/funcsAndClasses.py" @@ -0,0 +1,43 @@ +from math import tan +import random +from os import system, name + +def clear(): + if name == "nt": + _ = system('cls') + else: + _ = system('clear') + + +#funktion parametrit: +# q = kysymys, joka on arvottu questions.py sijaitsevasta listasta +# l = kirjaimet A, B, C ja D, jotka ovat listassa pääohelmassa +# list = lista, johon uudessa muodossa olevat vastaukset menevät +# c = oikea vastaus +# w1-w3 = väärät vastaukset + +#funktio attachLetter ottaa pääohjelmasta satunnaisesti vastauksen, jonka se muuttaa muotoon "A. tämä on vastaus." +def attachLetter(q, l, list, c, w1, w2, w3): + c = random.choice(l) + l.remove(c) + w1 = random.choice(l) + l.remove(w1) + w2 = random.choice(l) + l.remove(w2) + w3 = random.choice(l) + list.append(f"{c}. {q.correctAnswer}") + list.append(f"{w1}. {q.wrongAnswer1}") + list.append(f"{w2}. {q.wrongAnswer2}") + list.append(f"{w3}. {q.wrongAnswer3}") + return c + + +class QnA: + def __init__(self, question, correctAnswer, wrongAnswer1, wrongAnswer2, wrongAnswer3): + self.question = question + self.correctAnswer = correctAnswer + self.wrongAnswer1 = wrongAnswer1 + self.wrongAnswer2 = wrongAnswer2 + self.wrongAnswer3 = wrongAnswer3 + def __str__(self): + return f"{self.question} {self.correctAnswer} {self.wrongAnswer1} {self.wrongAnswer2} {self.wrongAnswer3}" \ No newline at end of file diff --git "a/Harjoitusty\303\266/main.py" "b/Harjoitusty\303\266/main.py" new file mode 100644 index 0000000000000000000000000000000000000000..9dfe55da539478e5bd241cf9e955479bc188559a --- /dev/null +++ "b/Harjoitusty\303\266/main.py" @@ -0,0 +1,71 @@ +import random +from funcsAndClasses import attachLetter, clear +from questions import qList +print("\nTervetuloa pelaamaan CS:GO- visaa!\n") +print("Sinulta kysytään 10 kysymystä, joihin kaikkiin saat neljä vastausvaihtoehtoa.\n") +print("Kysymyksiin vastataan A, B, C tai D (kirjasinkoolla ei ole väliä.)\n\n") +input("Paina enter jatkaaksesi...") +clear() +while True: + letters = ["A", "B", "C", "D"] + letterAnswers = [] + points = 0 + qCount = 0 + + for i in range(10): + q = random.choice(qList) + qList.remove(q) + #käytetään attachLetter funktiota, jolle arvotaan kysymys-olio rivillä 18, ja joka palauttaa vastaukset muodossa A. Tämä on kysymys? ja laittaa ne satunnaiseen järjestykseen + correctAnswer = attachLetter(q, letters, letterAnswers, q.correctAnswer, q.wrongAnswer1, q.wrongAnswer2, q.wrongAnswer3) + letterAnswers.sort() + qCount +=1 + print("\n" + q.question + "\n") + for x in letterAnswers: + print(x) + userAnswer = input("\nSyötä vastauksesi: ") + userAnswer = userAnswer.capitalize() + clear() + if userAnswer == correctAnswer: + print("\nOikein!") + points += 1 + if qCount < 10: + print(f"\nPisteesi tällä hetkellä: {points}/{qCount}") + else: + pass + input("\nPaina enter jatkaaksesi...") + clear() + else: + print("\nVäärin!") + if qCount < 10: + print(f"\nPisteesi tällä hetkellä: {points}/{qCount}") + else: + pass + input("\nPaina enter jatkaaksesi...") + clear() + letterAnswers.clear() + #Palautetaan kirjainlista alkuperäiseen muotoon, koska attachLetter funktio poistaa siitä elementtejä + letters = ["A", "B", "C", "D"] + + #Määritellään loppukommentti pistemäärän mukaan + if points == 0: + print(f"Tuloksesi: {points}/{qCount}, yrititkö edes?") + elif points > 0 and points <= 3: + print(f"Tuloksesi: {points}/{qCount}, et taida tietää kovin paljoa Counter-Strikestä.") + elif points > 3 and points <= 6: + print(f"Tuloksesi: {points}/{qCount}, tiedät selvästi jonkin verran Counter-Strikestä!") + elif points > 6 and points <= 9: + print(f"Tuloksesi: {points}/{qCount}, sehän meni hyvin!") + elif points == 10: + print(f"Tuloksesi: {points}/{qCount}, tiedät selvästi kaiken Counter-Strikestä!") + + print("Haluatko pelata uudestaan?") + print("1 = Kyllä") + print("2 = Ei") + restart = input() + #Jos pelaaja haluaa pelata uudestaan, siirrytään takaisin ohjelman alkuun + if restart == "1": + clear() + continue + else: + input("Paina enter poistuaksesi") + break \ No newline at end of file diff --git "a/Harjoitusty\303\266/questions.py" "b/Harjoitusty\303\266/questions.py" new file mode 100644 index 0000000000000000000000000000000000000000..08c797315e3f236f64465470d1613cea50293366 --- /dev/null +++ "b/Harjoitusty\303\266/questions.py" @@ -0,0 +1,26 @@ +from funcsAndClasses import QnA + +q1 = QnA("Kenellä näistä pelaajista on eniten esiintymisiä HLTV:n top 20-listalla?", 'Nicolai "device" Reedtz', 'Ladislav "GuardiaN" Kovács', 'Nikola "NiKo" Kovac', 'Olexandr "s1mple" Kostyliev') +q2 = QnA("Mikä näistä joukkueista on voittanut Intel Grand Slamin?", 'Team Liquid', 'Ninjas in Pyjamas', 'fnatic', 'SK Gaming') +q3 = QnA('Missä näistä joukkueista Aleksi "allu" Jalli ei ole ikinä pelannut yhtäkään ottelua?', 'Cloud9', 'Complexity Gaming', 'OpTic Gaming', 'Team Liquid') +q4 = QnA("Kuinka monta suomalaista on pelannut Major-turnauksissa kautta aikain?", '14', '13', '10', '17') +q5 = QnA("Miksi kutsutaan vuoden 2021 Major-turnauksen karsintoja?", 'RMR-turnaus', 'Minor-turnaus', 'Challengers-turnaus', 'Major Closed Qualifier-turnaus') +q6 = QnA("Kuka on voittanut kaikkiaan eniten palkintorahaa?", 'Peter "dupreeh" Rasmussen', 'Nicolai "device" Reedtz', 'Jakey "Stewie2k" Yip', 'Olexandr "s1mple" Kostyliev') +q7 = QnA("Missä näistä maista on järjestetty vain yksi Major-turnaus?", 'Iso-Britannia', 'Puola', 'Saksa', 'USA') +q8 = QnA("Mikä on Denis Sharipovin nimimerkki?", 'electronic', 'denis', 'boombl4', 'Dosia') +q9 = QnA("Missä näistä turnauksista oli isoin palkintopotti?", 'WESG 2016', 'BLAST Premier: Global Final 2020', 'ELEAGUE Major 2017', 'FLASHPOINT Season 1') +q10 = QnA("Kuka näistä pelaajista ei ole ikinä voittanut Major-turnausta?", 'GuardiaN', 'Dosia', 'fnx', 'kioShiMa') +q11 = QnA("Mikä on ZyWoon oikea nimi?", 'Mathieu Herbaut', 'Dan Madesclaire', 'Vincent Cervoni', 'Richard Papillon') +q12 = QnA("Mistä maasta s1mple on kotoisin?", 'Ukrainasta', 'Venäjältä', 'Valko-Venäjältä', 'Ranskasta') +q13 = QnA("Kuka näistä suomalaisista pelaajista on voittanut eniten palkintorahaa?", 'allu', 'suNny', 'Aleksib', 'sergej') +q14 = QnA('Kuinka monta Major-turnausta Aleksi "allu" Jalli on voittanut?', 'Ei yhtään', '2', '5' ,'1') +q15 = QnA("Mikä on zehNin oikea nimi?", 'Jesse Linjala', 'Jaakko Virolainen', 'Miikka Kemppi' ,'Jere Salo') +q16 = QnA("Kuka näistä suomalaisista pelaajista ei ole ikinä pelannut Major-turnauksessa?", 'Jamppi', 'zehN', 'xartE' ,'diSTURBED') +q17 = QnA("Mikä joukkue voitti ensimmäisen Major-turnauksen vuonna 2013?", 'fnatic', 'NiP', 'Astralis' ,"Na'Vi") +q18 = QnA("Kuka oli maailman paras pelaaja vuonna 2019 HLTV-sivuston mukaan?", 'ZywOo', 's1mple', 'suNny' ,'electronic') +q19 = QnA("Kuka oli maailman paras pelaaja vuonna 2018 HLTV-sivuston mukaan?", 's1mple', 'ZywOo', 'device' ,'allu') +q20 = QnA("Mikä joukkue on voittanut eniten Major-turnauksia?", 'Astralis', 'fnatic', "Na'Vi" ,'ENCE') + +# q = QnA("", '', '', '' ,'') + +qList = [q1, q2, q3, q4, q5, q6, q7,q8 ,q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20] \ No newline at end of file diff --git a/testi.txt b/testi.txt deleted file mode 100644 index b9c5828624b274554598d1529bed3e329f95cdb0..0000000000000000000000000000000000000000 --- a/testi.txt +++ /dev/null @@ -1,2 +0,0 @@ -Creating a file with Python! -Today is 1.1.2021 \ No newline at end of file