import sqlite3 as sql
#[nazwa, zagrane, wygrane, elo]
graczid = {
1: "remikulek",
2: "michsza",
3: "ItsAllGese",
4: "OrzyszAnin",
5: "WeCanScrapTheS",
6: "InfernoDragon",
7: "apeliator",
8: "interboypl",
9: "BurgerConsumer3",
10: "wojtekcola"
}
class Player:
def __init__(self, name=""):
self.name = name
self.wygrane = 0
self.zagrane = 0
self.elo = 100
self.przegrane = self.zagrane - self.wygrane
try:
self.winrate = self.wygrane / self.przegrane
except:
self.winrate = 0
def __str__(self):
return f"Nazwa: {self.name}\nZagrane gry: {self.zagrane}\nWygrane gry: {self.wygrane}\nWinrate: {self.winrate}\nElo: {self.elo}"
def insert_player(self):
connection = sql.connect("Touchdownplayers.db")
cursor = connection.cursor()
cursor.execute("""
INSERT INTO gracze VALUES
('{}', 0, 0, 100)
""".format(self.name))
connection.commit()
connection.close()
def load_player(self, nazwa):
self.name = nazwa
connection = sql.connect("Touchdownplayers.db")
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM gracze
WHERE nazwa = '{}'
""".format(nazwa))
results = cursor.fetchone()
self.zagrane = results[1]
self.wygrane = results[2]
self.elo = results[3]
connection.close()
def addgames(self, zagrane, wygrane):
connection = sql.connect("Touchdownplayers.db")
cursor = connection.cursor()
cursor.executescript("""
UPDATE gracze SET zagrane = {} WHERE nazwa = '{}';
UPDATE gracze SET wygrane = {} WHERE nazwa = '{}';
""".format(self.zagrane + zagrane, self.name, self.wygrane + wygrane, self.name))
connection.commit()
connection.close()
self.wygrane += wygrane
self.zagrane += zagrane
self.przegrane += zagrane - wygrane
self.winrate = self.wygrane/self.przegrane
def elo_gain(os1,os2,os3,os4):
#os1 i os2 to osoby wygrane
elowygranych = os1.elo + os2.elo
eloprzegranych = os3.elo + os4.elo
dif = eloprzegranych/elowygranych
multipliyer = 0.2 * dif * dif + dif #y = 0.2x^2 + x
os1.elo += 20 * elowygranych / os1.elo * multipliyer #druzyna lacznie zyskuje 20*mnoznik a przegrana tyle traci
os2.elo += 20 * elowygranych / os2.elo * multipliyer
os3.elo -= 20 * eloprzegranych / os4.elo * multipliyer
os4.elo -= 20 * eloprzegranych / os3.elo * multipliyer
def addgame(osid1, osid2, osid3, osid4):
p1 = Player()
p1.load_player(graczid[osid1])
p1.addgames(1,1)
p2 = Player()
p2.load_player(graczid[osid2])
p2.addgames(1, 1)
p3 = Player()
p3.load_player(graczid[osid3])
p3.addgames(1, 0)
p4 = Player()
p4.load_player(graczid[osid4])
p4.addgames(1, 0)
elo_gain(p1,p2,p3,p4)
def main():
gracz = Player()
gracz.load_player("OrzyszAnin")
print(gracz)
if __name__ == "__main__":
main()
#Player("OrzyszAnin").insert_player()
#Player("remikulek").insert_player()
#Player("michsza").insert_player()
#Player("ItsAllGese").insert_player()
#Player("WeCanScrapTheS").insert_player()
#Player("InfernoDragon").insert_player()
#Player("apeliator").insert_player()
#Player("interboypl").insert_player()
#Player("BurgerConsumer3").insert_player()
#Player("wojtekcola").insert_player()