Facebook
From thebois, 1 Week ago, written in Python.
Embed
Download Paste or View Raw
Hits: 261
  1. import sqlite3 as sql
  2. #[nazwa, zagrane, wygrane, elo]
  3.  
  4. graczid = {
  5.     1: "remikulek",
  6.     2: "michsza",
  7.     3: "ItsAllGese",
  8.     4: "OrzyszAnin",
  9.     5: "WeCanScrapTheS",
  10.     6: "InfernoDragon",
  11.     7: "apeliator",
  12.     8: "interboypl",
  13.     9: "BurgerConsumer3",
  14.     10: "wojtekcola"
  15. }
  16.  
  17. class Player:
  18.     def __init__(self, name=""):
  19.         self.name = name
  20.         self.wygrane = 0
  21.         self.zagrane = 0
  22.         self.elo = 100
  23.         self.przegrane = self.zagrane - self.wygrane
  24.         try:
  25.             self.winrate = self.wygrane / self.przegrane
  26.         except:
  27.             self.winrate = 0
  28.  
  29.     def __str__(self):
  30.         return f"Nazwa: {self.name}\nZagrane gry: {self.zagrane}\nWygrane gry: {self.wygrane}\nWinrate: {self.winrate}\nElo: {self.elo}"
  31.  
  32.     def insert_player(self):
  33.         connection = sql.connect("Touchdownplayers.db")
  34.         cursor = connection.cursor()
  35.  
  36.         cursor.execute("""
  37.        INSERT INTO gracze VALUES
  38.        ('{}', 0, 0, 100)
  39.        """.format(self.name))
  40.  
  41.         connection.commit()
  42.         connection.close()
  43.  
  44.     def load_player(self, nazwa):
  45.         self.name = nazwa
  46.         connection = sql.connect("Touchdownplayers.db")
  47.         cursor = connection.cursor()
  48.  
  49.         cursor.execute("""
  50.        SELECT * FROM gracze
  51.        WHERE nazwa = '{}'
  52.        """.format(nazwa))
  53.  
  54.         results = cursor.fetchone()
  55.  
  56.         self.zagrane = results[1]
  57.         self.wygrane = results[2]
  58.         self.elo = results[3]
  59.  
  60.         connection.close()
  61.  
  62.     def addgames(self, zagrane, wygrane):
  63.         connection = sql.connect("Touchdownplayers.db")
  64.         cursor = connection.cursor()
  65.  
  66.         cursor.executescript("""
  67.        UPDATE gracze SET zagrane = {} WHERE nazwa = '{}';
  68.        UPDATE gracze SET wygrane = {} WHERE nazwa = '{}';
  69.        """.format(self.zagrane + zagrane, self.name, self.wygrane + wygrane, self.name))
  70.  
  71.         connection.commit()
  72.         connection.close()
  73.  
  74.         self.wygrane += wygrane
  75.         self.zagrane += zagrane
  76.         self.przegrane += zagrane - wygrane
  77.         self.winrate = self.wygrane/self.przegrane
  78.  
  79. def elo_gain(os1,os2,os3,os4):
  80.     #os1 i os2 to osoby wygrane
  81.  
  82.     elowygranych = os1.elo + os2.elo
  83.     eloprzegranych = os3.elo + os4.elo
  84.     dif = eloprzegranych/elowygranych
  85.  
  86.     multipliyer = 0.2 * dif * dif + dif #y = 0.2x^2 + x
  87.  
  88.     os1.elo += 20 * elowygranych / os1.elo * multipliyer  #druzyna lacznie zyskuje 20*mnoznik a przegrana tyle traci
  89.     os2.elo += 20 * elowygranych / os2.elo * multipliyer
  90.     os3.elo -= 20 * eloprzegranych / os4.elo * multipliyer
  91.     os4.elo -= 20 * eloprzegranych / os3.elo * multipliyer
  92.  
  93. def addgame(osid1, osid2, osid3, osid4):
  94.     p1 = Player()
  95.     p1.load_player(graczid[osid1])
  96.     p1.addgames(1,1)
  97.     p2 = Player()
  98.     p2.load_player(graczid[osid2])
  99.     p2.addgames(1, 1)
  100.     p3 = Player()
  101.     p3.load_player(graczid[osid3])
  102.     p3.addgames(1, 0)
  103.     p4 = Player()
  104.     p4.load_player(graczid[osid4])
  105.     p4.addgames(1, 0)
  106.  
  107.     elo_gain(p1,p2,p3,p4)
  108.  
  109.  
  110. def main():
  111.     gracz = Player()
  112.     gracz.load_player("OrzyszAnin")
  113.     print(gracz)
  114.  
  115. if __name__ == "__main__":
  116.     main()
  117.     #Player("OrzyszAnin").insert_player()
  118.     #Player("remikulek").insert_player()
  119.     #Player("michsza").insert_player()
  120.     #Player("ItsAllGese").insert_player()
  121.     #Player("WeCanScrapTheS").insert_player()
  122.     #Player("InfernoDragon").insert_player()
  123.     #Player("apeliator").insert_player()
  124.     #Player("interboypl").insert_player()
  125.     #Player("BurgerConsumer3").insert_player()
  126.     #Player("wojtekcola").insert_player()