brendan-stanford

RPI_card-game_final

Feb 6th, 2020
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. #import libraries
  2. import sqlite3
  3. from random import randint
  4. from time import time
  5.  
  6. #connect to database
  7. conn = sqlite3.connect("computer_cards.db")
  8.  
  9. #read cards from database
  10. def read_cards():
  11. result = conn.execute("SELECT * FROM computer")
  12. return result.fetchall()
  13.  
  14. #read the result database to see which cards were winners
  15. def read_result():
  16. result = conn.execute("SELECT winner FROM result")
  17. return result.fetchall()
  18.  
  19. #pick random card based on length of cards database
  20. def pick_card():
  21. cards = read_cards()
  22.  
  23. #recall last pick before picking new card
  24. last_pick = read_last_pick()
  25. random_card = cards[randint(0, len(cards) - 1)]
  26.  
  27. #if new pick is same as last pick, make another choice
  28. while random_card[0] == last_pick[0]:
  29. random_card = cards[randint(0, len(cards) - 1)]
  30.  
  31. #record new pick
  32. insert_picked(random_card[0])
  33. return random_card
  34.  
  35. #record which cards were picked
  36. def insert_picked(name):
  37. insert_sql = "INSERT INTO picked(name, time) VALUES ('{}', {})".format(name, time())
  38. conn.execute(insert_sql)
  39. conn.commit()
  40.  
  41. #return the last picked card from the database based on newest time
  42. def read_last_pick():
  43. result = conn.execute("SELECT * FROM picked ORDER BY time DESC")
  44. return result.fetchone()
  45.  
  46. #update the results table by including each player's card and whether the winner was 1 or 2
  47. def result_update(P1_card, P2_card, victor):
  48. if victor == "1":
  49. champion = P1_card
  50. elif victor == "2":
  51. champion = P2_card
  52. insert_sql = "INSERT INTO result(card1, card2, winner) VALUES ('{}', '{}', '{}')".format(P1_card, P2_card, champion)
  53. conn.execute(insert_sql)
  54. conn.commit()
  55.  
  56. #tally winners
  57. def champ_count(victors):
  58. wins = 1
  59. champs = read_result()
  60. for i in champs:
  61. pc = str(i)
  62. comp = pc.split("'")
  63. if victors == comp[1]:
  64. wins += 1
  65. print(victors + " has won " + str(wins) + " times!")
  66.  
  67. #choose players
  68. player = input("Are you player (1) or (2)? >")
  69. choosing_player = "1"
  70.  
  71. #for 3 rounds, players draw random card
  72. for round in range(3):
  73. print("Player " + choosing_player + " picks the comparison stat!")
  74. input("Press enter when both players are ready >")
  75. card_P1 = pick_card()
  76. card_P2 = pick_card()
  77. 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])
  78. card_P1_name = "{}".format(card_P1[0])
  79. 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])
  80. card_P2_name = "{}".format(card_P2[0])
  81. print("Player 1 card is: " + card_P1_text)
  82. print("Player 2 card is: " + card_P2_text)
  83.  
  84. #ask players who won
  85. try:
  86. winner = int(input("Who won? Player (1), Player (2) or neither (0)? >"))
  87. if winner == 1:
  88. choosing_player = "1"
  89. print("Player 1 wins!")
  90. result_update(card_P1_name, card_P2_name, choosing_player)
  91. champ_count(card_P1_name)
  92. elif winner == 2:
  93. choosing_player = "2"
  94. print("Player 2 wins!")
  95. result_update(card_P1_name, card_P2_name, choosing_player)
  96. champ_count(card_P2_name)
  97. elif winner == 0:
  98. print("Draw; no winner!")
  99. except ValueError:
  100. print("incorrect input; choose 0, 1, or 2 only!")
  101. winner = input("Draw (0), Player 1 (1) or Player 2 (2)? >")
  102. if winner == 1:
  103. choosing_player = player
  104. result_update(card_P1_name, card_P2_name, 1)
  105. elif winner == 2:
  106. choosing_player = "2" if player == "1" else "1"
  107. result_update(card_P1_name, card_P2_name, 2)
  108. elif winner == 0:
  109. print("Draw; no winner!")
  110.  
  111. #close database connection
  112. conn.close()
Add Comment
Please, Sign In to add comment