commit 9f68566475c1495ceb2350209fa0e9164f72fb02 Author: Alice Date: Fri Mar 27 16:35:34 2026 +0300 Signed-off-by: Alice diff --git a/BotForTelegramm/Fox_hahBot.py b/BotForTelegramm/Fox_hahBot.py new file mode 100644 index 0000000..0cc75de --- /dev/null +++ b/BotForTelegramm/Fox_hahBot.py @@ -0,0 +1,95 @@ +import telebot +import random +from telebot import types + +token = "8379986047:AAGr74CT6Y2a8moIWL4Outspent1CajoledF9ec" +bot = telebot.TeleBot(token) + +keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True) +button1 = types.KeyboardButton("Камень") +button2 = types.KeyboardButton("Ножницы") +button3 = types.KeyboardButton("Бумага") +keyboard.add(button1, button2, button3) + +userLink = {} +wins = {} +looses = {} +draws = {} +dif = {} + +Rock = {} +Paper = {} +Scissors = {} + +def addUserIfNotExist(message): + uid = message.chat.id + if uid not in userLink: userLink[uid] = 0 #персональный счётчик + if uid not in wins: wins[uid] = 0 + if uid not in looses: looses[uid] = 0 + if uid not in draws: draws[uid] = 0 + if uid not in Rock: Rock[uid] = 0 + if uid not in Paper: Paper[uid] = 0 + if uid not in Scissors: Scissors[uid] = 0 + return userLink.get(uid) + +@bot.message_handler(commands=['start']) +def start(message): + addUserIfNotExist(message) + bot.send_message(message.chat.id, 'Привет! Выбери уровень:\n/easy\n/normal\n/hard\n/mega_hard', reply_markup=keyboard) + +@bot.message_handler(commands=['easy', 'normal', 'hard', 'mega_hard']) +def difficulty(message): + addUserIfNotExist(message) + if message.text == "/easy": userLink[message.chat.id] = 1 + elif message.text == "/normal": userLink[message.chat.id] = 2 + elif message.text == "/hard": userLink[message.chat.id] = 3 + elif message.text == "/mega_hard": userLink[message.chat.id] = 4 + bot.send_message(message.chat.id, f"Уровень {message.text} выбран") + +@bot.message_handler(func=lambda message: True) +def main_game(message): + level = addUserIfNotExist(message) + u_move = message.text.lower() + uid = message.chat.id + + if u_move not in ["камень", "ножницы", "бумага"]: + bot.send_message(uid, "Используй кнопки!") + return + + if u_move == "камень": Rock[uid] += 1 + elif u_move == "ножницы": Scissors[uid] += 1 + elif u_move == "бумага": Paper[uid] += 1 + + if level == 1: + botans = "Ножницы" if u_move == "камень" else "Камень" if u_move == "бумага" else "Бумага" + elif level == 3: + botans = "Бумага" if u_move == "камень" else "Камень" if u_move == "ножницы" else "Ножницы" + elif level == 4: + stats = {"камень": Rock[uid], "ножницы": Scissors[uid], "бумага": Paper[uid]} + fav = max(stats, key=stats.get) + if fav == "камень": botans = "Бумага" + elif fav == "ножницы": botans = "Камень" + else: botans = "Ножницы" + else: + botans = random.choice(["Камень", "Ножницы", "Бумага"]) + + bot_move_low = botans.lower() + if bot_move_low == u_move: + bot.send_message(uid, "Мой ход: {botans}\nНичья!", reply_markup=keyboard) + draws[uid] += 1 + elif (u_move == "камень" and bot_move_low == "ножницы") or \ + (u_move == "ножницы" and bot_move_low == "бумага") or \ + (u_move == "бумага" and bot_move_low == "камень"): + bot.send_message(uid, f"Мой ход: {botans}\nПобеда!", reply_markup=keyboard) + wins[uid] += 1 + else: + bot.send_message(uid, f"Мой ход: {botans}\nПроиграл!", reply_markup=keyboard) + looses[uid] += 1 + +bot.infinity_polling() + +# 1. if uid not in Rock/Paper/Scissors: создают персональный счетчик для каждого игрока, чтобы бот не путал статистику разных людей. +#2. Rock[uid] += 1 (и аналоги): при каждом ходе пользователя бот «запоминает», какую кнопку вы нажали, прибавляя единицу к соответствующему счетчику. +#3. stats = {"камень": Rock[uid]...}: перед своим ходом бот «смотрит» в вашу историю и собирает все ваши нажатия в одну таблицу. +#4. max(stats, key=stats.get): бот вычисляет, какой ход в этой таблице встречается чаще всего. +# 5. if fav == "камень": botans = "Бумага": бот делает ход, который побеждает ваш самый популярный вариант. diff --git a/BotForTelegramm/Fox_hahBot.py.py b/BotForTelegramm/Fox_hahBot.py.py new file mode 100644 index 0000000..4840f37 --- /dev/null +++ b/BotForTelegramm/Fox_hahBot.py.py @@ -0,0 +1,51 @@ +import telebot +import random + +token = "8379986047:AAGr74CT6Y2a8moIWL4Otsntu1CjozdF9ec" + +bot = telebot.TeleBot(token) +win = {} +loose = {} +draw = {} + +def addUserIfNotExist(message): + if not wins[message.from_user.id]: + wins[message.from_user.id] = 0 + if not loose[message.from_user.id]: + loose[message.from_user.id] = 0 + if not draw[message.from_user.id]: + draw[message.from_user.id] = 0 + if not dif[message.from_user.id]: + dif[message.from_user.id] = 0 + +@bot.message_handler(commands=['start']) +def start(message): + bot.send_message(message.chat.id, 'Привет, это игра "Камень, ножницы, бумага"') + +@bot.message_handler(commands=['rules']) +def rules(message): + bot.send_message(message.chat.id, 'Правила: выбираешь "Камень", "Ножницы" или "Бумага", если ты выиграл я напишу, а если нет, то ладно') + +@bot.message_handler(func=lambda message:True) +def main_game(message): + ans = random.randint(1,3) #1 - камень, 2 - бумага, 3 - ножницы + if message.text == "Камень" and ans == 1: + bot.send_message(message.chat.id, "Ничья") + elif message.text == "Камень" and ans == 2: + bot.send_message(message.chat.id, "ХАХАХАХ!!! ТЫ ПРОИГРАЛ!") + elif message.text == "Камень" and ans == 3: + bot.send_message(message.chat.id, "НУУ БЛИИИН!!! ТЫ ВЫИГРАЛ!") + elif message.text == "Бумага" and ans == 2: + bot.send_message(message.chat.id, "Ничья") + elif message.text == "Бумага" and ans == 3: + bot.send_message(message.chat.id, "ХАХАХАХ!!! ТЫ ПРОИГРАЛ!") + elif message.text == "Бумага" and ans == 1: + bot.send_message(message.chat.id, "НУУ БЛИИИН!!! ТЫ ВЫИГРАЛ!") + elif message.text == "Ножницы" and ans == 1: + bot.send_message(message.chat.id, "ХАХАХАХ!!! ТЫ ПРОИГРАЛ!") + elif message.text == "Ножницы" and ans == 2: + bot.send_message(message.chat.id, "НУУ БЛИИИН!!! ТЫ ВЫИГРАЛ!") + elif message.text == "Ножницы" and ans == 3: + bot.send_message(message.chat.id, "Ничья") + +bot.infinity_polling() diff --git a/BotForTelegramm/Fox_hahBot2.py b/BotForTelegramm/Fox_hahBot2.py new file mode 100644 index 0000000..3d0a0ed --- /dev/null +++ b/BotForTelegramm/Fox_hahBot2.py @@ -0,0 +1,35 @@ +import telebot +import random + +token = "8379986047:AAGr74CT6Y2a8moIWL4Otsntu1CjozdF9ec" + +bot = telebot.TeleBot(token) +rnd = random.Random + +easyQuestion = ["Сколько дней в неделе?","Какая планета ближе всего к Солнцу?","Сколько будет 7 × 8?","Какой цвет получается при смешивании синего и жёлтого?","Кто написал сказку «Колобок» (народная или авторская)?","Сколько сторон у треугольника?","Сколько материков на Земле?","В каком месяце 28 дней (в обычном году)?","Сколько часов в сутках?","Кто из животных говорит «мяу»?"] +mediumQuestion = ["Как называется наука, изучающая строение Земли и её процессы?","Сколько континентов на Земле?","Кто написал серию книг «Гарри Поттер»?","Чему равна площадь квадрата со стороной 5 см?","В каком году началась Вторая мировая война?","Как называется самая длинная река в мире?","Сколько градусов в прямом угле?","Как называется современный город, где раньше была одноимённая столица Карфагена","Что тяжелее: килограмм железа или килограмм пуха?","Как называется единица измерения силы тока?"] +hardQuestion = ["Если 2³ = 8, то чему равно 2⁵?","Сколько нулей в одном миллионе?","Кто был первым человеком в космосе?","Кто такие Бандюхи?","Если поезд едет 60 км/ч, сколько он проедет за 2,5 часа?","Как называется столица Австралии?","Какой газ составляет большую часть атмосферы Земли?","Если сегодня среда, какой день будет через 100 дней?","Как называется устройство для измерения атмосферного давления?","Сколько граней у куба?"] + +easyAns = ["7","Меркурий","56","Зелёный","Народная сказка","3","6 материков","В любом месяце есть 28 дней","24 часа","Кошка"] +mediumAns = ["Геология","7 континентов","Джоан Роулинг","25 см²","1939 год","Нил","90 градусов","Тунис","Одинаково","Ампер"] +hardAns = ["32","6 нулей","Юрий Гагарин","Это выдуманные животные, похожие на чубаку только фиолетовые","150 км","Канберра","Азот","Пятница","Барометр","6 граней"] + +@bot.message_handler(commands=['start']) +def start(message): + bot.send_message(message.chat.id, "Добро пожаловать в супер-пупер-викторину") + bot.send_message(message.chat.id, "Нужно выбрать сложность\n" + "Легкий - /easy\n" + "Средний - /medium\n" + "Сложный - /hard") + +@bot.message_handler(commands=['easy', 'medium', 'hard']) +def setDif(message): + if message.text == "easy": + mode = 1 + bot.message_handler(message.chat.id, "Выбрана легкая сложность") + elif message.text == "medium": + mode = 2 + bot.message_handler(message.chat.id, "Выбрана средняя сложность") + elif message.text == "hard": + mode = 3 + bot.message_handler(message.chat.id, "Выбрана сложная сложность") \ No newline at end of file diff --git a/BotForTelegramm/Бот.txt b/BotForTelegramm/Бот.txt new file mode 100644 index 0000000..4550203 --- /dev/null +++ b/BotForTelegramm/Бот.txt @@ -0,0 +1,9 @@ +1. Пользователь пишет /start +2. Бот отвечает: "Привет, это игра "Камень, ножницы, бумага" " +3. Пользовател предлагается выбрать "Камень", "Ножницы" или "Бумага" +4. Когда пользователь выбрал что-то из представленного выше, рандомно выбирается "Камень", "Ножницы" или "Бумага" +5. Если выбрали камень и бумага то кто выбрал тот кто выбрал бумагу, тот победил +6. Если выбрали камень и ножницы то кто выбрал тот кто выбрал камень, тот победил +7. Если выбрали бумагу и ножницы то кто выбрал тот кто выбрал ножницы, тот победил +8. Если пользователь выиграл то бот присылает: "ПОЗДРАВЛЯЮ!!! ТЫ ВЫИГРАЛ!" +9. Если пользователь проиграл то бот присылает: "ХАХАХАХ!!! ТЫ ПРОИГРАЛ!" \ No newline at end of file diff --git a/pyLessons/HomeWork.py b/pyLessons/HomeWork.py new file mode 100644 index 0000000..dd26ebc --- /dev/null +++ b/pyLessons/HomeWork.py @@ -0,0 +1,13 @@ +a = [10, 5, 3, 15, 32, 182] +amax=0 +for i in range(len(a)): + if amax < a[i]: + amax=a[i] + + +min=4444 +for i in range(len(a)): + if min > a[i]: + min=a[i] + +print(amax,"----",min) diff --git a/pyLessons/Pravilo.py b/pyLessons/Pravilo.py new file mode 100644 index 0000000..1e9eca6 --- /dev/null +++ b/pyLessons/Pravilo.py @@ -0,0 +1,22 @@ +def foo(a,b) -> int: + return a+b + +c = foo(10,5) +d = [10, 5, 3, 15, 32, 182] +e = (d[0]+d[1]+d[2]+d[3]+d[4]+d[5])/6 +f = 0 +for i in range(len(d)): + f += d[i] + +print(f/len(d)) +print(e) + +#------------------------ + +print ("range:",range(len(d))) + +def baba(a,b) -> int: + return a*a + +for i in 1,5: + print ("Bobik:",d[i],"---",len (d)) \ No newline at end of file diff --git a/pyLessons/Pravilo1.py b/pyLessons/Pravilo1.py new file mode 100644 index 0000000..1df8b43 --- /dev/null +++ b/pyLessons/Pravilo1.py @@ -0,0 +1,30 @@ +import random +import math + + +ls = [0,1,2,3,4,5,6,7,8,9] #масив \ лист \ список +ct = (0,1,2,3,4,5,6,7,8,9) #кортеж +dc = {"1st": 0, "2nd": 1, "3rd": 2} #словарь +print(ls) +ls.append(10) #добавляем новый элемент в масив +print(ls) +ls.reverse() #метод позволяющий перевернуть масив +print(ls) +ls.pop(3) #метод удаляющий элемент под определённым индексом +print(ls) +a = ls.pop(4) #метод так же позволяет записать удалённый элемент в переменную +print(ls) +print(a) +ls.sort() +print(ls) #метод позволяющий выполныть сортировку по возрастанию +ls.sort(reverse=True) #сортировка по убыванию +print(ls) +for i in range(10): + print(random.randint(0, 2)) +for i in range(10): + print(random.random()) + +print(math.sqrt(2)) +print(1.4142135623730951*1.4142135623730951) +print(math.pow(2,10)) +print(math.factorial(10)) diff --git a/pyLessons/calculator.py b/pyLessons/calculator.py new file mode 100644 index 0000000..a55b4da --- /dev/null +++ b/pyLessons/calculator.py @@ -0,0 +1,34 @@ +a=0.0 +b=0.0 +c="" + +def calc()->float: + a=float(input("Введите число")) + b=float(input("Введите число")) + c=input("Введите знак(*,/,+,-,^,%)") + if c == "+": + return a+b + elif c == "-": + return a-b + elif c == "*": + return a*b + elif c == "/": + return a/b + elif c == "^": + return a**b + elif c == "%": + return a/100*b + else: + return "Что-то пошло не так" + + +while True: + print("Бобро поржаловать в мини калькулятор") + print("Хотите что-то посчитать?Y(Да)/N(Нет)") + ans=input().lower() + if ans== "да" or ans == "y": + print(calc()) + elif ans == "нет" or ans == "n": + break + else: + print("Непонятно...Перезапкуск") diff --git a/pyLessons/dragon.py b/pyLessons/dragon.py new file mode 100644 index 0000000..e69de29