Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import libraries
- import sqlite3
- from random import randint
- from time import time
- #connect to database
- conn = sqlite3.connect("computer_cards.db")
- #read cards from database
- def read_cards():
- result = conn.execute("SELECT * FROM computer")
- return result.fetchall()
- #read the result database to see which cards were winners
- def read_result():
- result = conn.execute("SELECT winner FROM result")
- return result.fetchall()
- #pick random card based on length of cards database
- def pick_card():
- cards = read_cards()
- #recall last pick before picking new card
- last_pick = read_last_pick()
- random_card = cards[randint(0, len(cards) - 1)]
- #if new pick is same as last pick, make another choice
- while random_card[0] == last_pick[0]:
- random_card = cards[randint(0, len(cards) - 1)]
- #record new pick
- insert_picked(random_card[0])
- return random_card
- #record which cards were picked
- def insert_picked(name):
- insert_sql = "INSERT INTO picked(name, time) VALUES ('{}', {})".format(name, time())
- conn.execute(insert_sql)
- conn.commit()
- #return the last picked card from the database based on newest time
- def read_last_pick():
- result = conn.execute("SELECT * FROM picked ORDER BY time DESC")
- return result.fetchone()
- #update the results table by including each player's card and whether the winner was 1 or 2
- def result_update(P1_card, P2_card, victor):
- if victor == "1":
- champion = P1_card
- elif victor == "2":
- champion = P2_card
- insert_sql = "INSERT INTO result(card1, card2, winner) VALUES ('{}', '{}', '{}')".format(P1_card, P2_card, champion)
- conn.execute(insert_sql)
- conn.commit()
- #tally winners
- def champ_count(victors):
- wins = 1
- champs = read_result()
- for i in champs:
- pc = str(i)
- comp = pc.split("'")
- if victors == comp[1]:
- wins += 1
- print(victors + " has won " + str(wins) + " times!")
- #choose players
- player = input("Are you player (1) or (2)? >")
- choosing_player = "1"
- #for 3 rounds, players draw random card
- for round in range(3):
- print("Player " + choosing_player + " picks the comparison stat!")
- input("Press enter when both players are ready >")
- card_P1 = pick_card()
- card_P2 = pick_card()
- card_P1_text = "{}, cores = {}, speed = {} GHz, RAM = {} MB, Cost = {} $".format(card_P1[0], card_P1[1], card_P1[2], card_P1[3], card_P1[4])
- card_P1_name = "{}".format(card_P1[0])
- card_P2_text = "{}, cores = {}, speed = {} GHz, RAM = {} MB, Cost = {} $".format(card_P2[0], card_P2[1], card_P2[2], card_P2[3], card_P2[4])
- card_P2_name = "{}".format(card_P2[0])
- print("Player 1 card is: " + card_P1_text)
- print("Player 2 card is: " + card_P2_text)
- #ask players who won
- try:
- winner = int(input("Who won? Player (1), Player (2) or neither (0)? >"))
- if winner == 1:
- choosing_player = "1"
- print("Player 1 wins!")
- result_update(card_P1_name, card_P2_name, choosing_player)
- champ_count(card_P1_name)
- elif winner == 2:
- choosing_player = "2"
- print("Player 2 wins!")
- result_update(card_P1_name, card_P2_name, choosing_player)
- champ_count(card_P2_name)
- elif winner == 0:
- print("Draw; no winner!")
- except ValueError:
- print("incorrect input; choose 0, 1, or 2 only!")
- winner = input("Draw (0), Player 1 (1) or Player 2 (2)? >")
- if winner == 1:
- choosing_player = player
- result_update(card_P1_name, card_P2_name, 1)
- elif winner == 2:
- choosing_player = "2" if player == "1" else "1"
- result_update(card_P1_name, card_P2_name, 2)
- elif winner == 0:
- print("Draw; no winner!")
- #close database connection
- conn.close()
Add Comment
Please, Sign In to add comment