From c06f6e412e97fbdf20fc9f6d286c56f7444bc053 Mon Sep 17 00:00:00 2001 From: attilavs2 Date: Mon, 12 May 2025 23:06:57 +0200 Subject: [PATCH] =?UTF-8?q?Courses=20de=20chevaux=20compl=C3=A9t=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ecoplus.py.swn | Bin 32768 -> 0 bytes ecoplus.py | 85 +++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 77 insertions(+), 8 deletions(-) delete mode 100644 .ecoplus.py.swn diff --git a/.ecoplus.py.swn b/.ecoplus.py.swn deleted file mode 100644 index 7e613a9137ee329489965ccab645f5117974ff50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/ecoplus.py b/ecoplus.py index 19a2693..879ff33 100644 --- a/ecoplus.py +++ b/ecoplus.py @@ -301,7 +301,7 @@ async def do_course(message): print(f"Forme : {choice[2]},{msgchoice}") await message.channel.send(f"La rumeur court que le cheval n°{select} {msg}") if cetape == 3: - await message.channel.send("La course a commencé, et les paris sont fermés") + await message.channel.send("## La course a commencé, et les paris sont fermés") if cetape > 3: for i in range(10): chev = cursor.execute(f"SELECT * FROM grid_{gid} WHERE n={i+1}").fetchone() @@ -312,12 +312,29 @@ async def do_course(message): gagn = 0 n = 1 for chev in grid: - msgstr += f"{n} - n°{chev[0]}, {chev[2]*10}m\n" + if chev[0] > 50: + clmp_dist = 50 + else: + clmp_dist = chev[0] + msgstr += f"{n} - n°{clmp_dist}, {chev[2]*10}m\n" n += 1 - if chev[2] >= 50: + if chev[2] >= 50 and not gagn: gagn = chev[0] if gagn: msgstr += f"\nLe numéro {gagn} a remporté la course !" + cursor.execute(f"UPDATE courses SET fini = 1,etape=0 WHERE gid = {gid}") + wbets = cursor.execute(f"SELECT * FROM bets_{gid} WHERE pari_n = {gagn}").fetchall() + if wbets: + msgstr += "\n## Pari gagnants :\n" + for bet in wbets: + uid = bet[0] + gain = bet[2]*8 + msgstr += f"<@{uid}> remporte {gain}$\n" + play = cursor.execute(f"SELECT * FROM tab_{gid} WHERE id = {uid}").fetchone() + ncash = play[1] + gain + cursor.execute(f"UPDATE tab_{gid} SET cash = {ncash} WHERE id = {uid}") + database.commit() + await message.channel.send(msgstr) if gagn: break @@ -332,22 +349,22 @@ async def do_course(message): async def course(message): gid = int(message.guild.id) uid = int(message.author.id) - cursor.execute(f"CREATE TABLE IF NOT EXISTS courses (gid INT PRIMARY KEY, date INT, date_der INT, etape INT)") + cursor.execute(f"CREATE TABLE IF NOT EXISTS courses (gid INT PRIMARY KEY, date INT, date_der INT, etape INT, fini INT)") try: - cursor.execute(f"CREATE TABLE bets_{gid} (id INT PRIMARY KEY, pari_n INT, pari_qtt INT)") + cursor.execute(f"CREATE TABLE bets_{gid} (id INT, pari_n INT, pari_qtt INT)") cursor.execute(f"CREATE TABLE grid_{gid} (n INT PRIMARY KEY, speed INT, pos INT)") except: await message.reply("Une course est déja en cours") return ctime = int(time.time()) - cursor.execute(f"INSERT OR REPLACE INTO courses (gid, date, date_der, etape) VALUES ({gid},{ctime},{ctime},0)") + cursor.execute(f"INSERT OR REPLACE INTO courses (gid, date, date_der, etape, fini) VALUES ({gid},{ctime},{ctime},0,0)") grid=[] for i in range(10): grid.append(i+1) while grid: n = random.choice(grid) grid.remove(n) - speed = 4 + random.randint(0,3) + random.randint(0,3) + speed = 5 + random.randint(0,2) + random.randint(0,3) cursor.execute(f"INSERT INTO grid_{gid} (n,speed,pos) VALUES ({n},{speed},0)") database.commit() await message.channel.send( @@ -358,7 +375,58 @@ async def course(message): await do_course(message) async def bet(message): - pass + gid = int(message.guild.id) + uid = int(message.author.id) + ret = None + try: + ret = cursor.execute(f"SELECT * FROM courses WHERE gid = {gid}").fetchone() + if ret and ret[4]: + ret = None + except: + ret = None + if ret == None: + await message.reply("Aucune course n'est en cours.\n"\ + "Lancez une course avec ?course") + return + if ret[3] >= 3: + await message.reply("La course est en cours !") + return + split = message.content.split(" ") + if len(split) < 3: + await message.reply("Vous devez spécifier au moins deux arguments\n"\ + "Utilisation : ?bet ") + return + n = 0 + bet = 0 + try: + n = int(split[1]) + except: + await message.reply("Numéro invalide") + return + if n < 1 or n > 10: + await message.reply("Numéro invalide") + return + try: + bet = int(split[2]) + except: + await message.reply("Quantité invalide") + return + if bet < 1: + await message.reply("Quantité invalide") + return + try: + play = cursor.execute(f"SELECT * FROM tab_{gid} WHERE id={uid}").fetchone() + except: + await message.reply(init_perso_str) + return + if play[1] < bet: + await message.reply("Vous n'avez pas assez d'argent") + return + ncash = play[1] - bet + cursor.execute(f"INSERT INTO bets_{gid} (id, pari_n, pari_qtt) VALUES ({uid},{n},{bet})") + cursor.execute(f"UPDATE tab_{gid} SET cash = {ncash} WHERE id = {uid}") + database.commit() + await message.reply("Pari placé") async def casino_aide(message): await message.channel.send("Commandes du casino Eco+\n"\ @@ -474,6 +542,7 @@ cmd_dict = {\ "?transfer":transfer,\ "?casino":casino_aide,\ "?course":course,\ + "?bet":bet,\ } @client.event