изучали json

This commit is contained in:
mega_krevetka committed 2026-04-09 18:27:03 +03:00
1 parent acd9bc0829
commit 541bb189ba
12 files changed
+200 -64

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml
+22 -5
View File
@@ -4,7 +4,10 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="aaf4cea1-996f-4616-a7e8-5aebcf6aea3e" name="Changes" comment="save to file wins, loose, draw and dif" />
<list default="true" id="aaf4cea1-996f-4616-a7e8-5aebcf6aea3e" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BotForTelegramm/Fox_hahBot.py" beforeDir="false" afterPath="$PROJECT_DIR$/BotForTelegramm/Fox_hahBot.py" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -44,6 +47,8 @@
&quot;keyToString&quot;: {
&quot;ASKED_SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
&quot;Python.Fox_hahBot.executor&quot;: &quot;Run&quot;,
&quot;Python.filemanager.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
@@ -60,10 +65,11 @@
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-python-sdk-890ed5b35930-d9c5bdb153f4-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-251.23774.444" />
<option value="bundled-python-sdk-0e3be3396995-c546a90a8094-com.jetbrains.pycharm.community.sharedIndexes.bundled-PC-242.23339.19" />
</set>
</attachedChunks>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="project-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="aaf4cea1-996f-4616-a7e8-5aebcf6aea3e" name="Changes" comment="" />
@@ -160,7 +166,15 @@
<option name="project" value="LOCAL" />
<updated>1775141509258</updated>
</task>
<option name="localTasksCounter" value="12" />
<task id="LOCAL-00012" summary="del commments">
<option name="closed" value="true" />
<created>1775199686999</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1775199686999</updated>
</task>
<option name="localTasksCounter" value="13" />
<servers />
</component>
<component name="UpdateCopyrightCheckinHandler">
@@ -171,7 +185,9 @@
<map>
<entry key="MAIN">
<value>
<State />
<State>
<option name="LONG_EDGES_VISIBLE" value="true" />
</State>
</value>
</entry>
</map>
@@ -187,7 +203,8 @@
<MESSAGE value="test3" />
<MESSAGE value="test4" />
<MESSAGE value="save to file wins, loose, draw and dif" />
<option name="LAST_COMMIT_MESSAGE" value="save to file wins, loose, draw and dif" />
<MESSAGE value="del commments" />
<option name="LAST_COMMIT_MESSAGE" value="del commments" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" />
<option name="REARRANGE_BEFORE_PROJECT_COMMIT" value="true" />
+3
View File
@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
@@ -0,0 +1,12 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N802" />
</list>
</option>
</inspection_tool>
</profile>
</component>
@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.12 (2)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (2)" project-jdk-type="Python SDK" />
</project>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/BotForTelegramm.iml" filepath="$PROJECT_DIR$/.idea/BotForTelegramm.iml" />
</modules>
</component>
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
-59
View File
@@ -1,59 +0,0 @@
import random
import telebot
import filemanager
token = "8379986047:AAGr74CT6Y2a8moIWL4Otsntu1CjozdF9ec"
bot = telebot.TeleBot(token)
wins = {}
loose = {}
draw = {}
dif = {}
def addUserIfNotExist(message):
if not wins[message.from_user.id]:
wins[message.from_user.id] = 0
filemanager.save_to_file(wins.txt, wins)
if not loose[message.from_user.id]:
loose[message.from_user.id] = 0
filemanager.save_to_file(loose.txt, loose)
if not draw[message.from_user.id]:
draw[message.from_user.id] = 0
filemanager.save_to_file(draw.txt, draw)
if not dif[message.from_user.id]:
dif[message.from_user.id] = 0
filemanager.save_to_file(dif.txt, dif)
@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()
+103
View File
@@ -0,0 +1,103 @@
import telebot
import random
from telebot import types
import filemanager
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 #персональный счётчик
filemanager.save_to_file(uid.txt, uid)
if uid not in wins: wins[uid] = 0
filemanager.save_to_file(wins.txt, wins)
if uid not in looses: looses[uid] = 0
filemanager.save_to_file(looses.txt, looses)
if uid not in draws: draws[uid] = 0
filemanager.save_to_file(draws.txt, draws)
if uid not in Rock: Rock[uid] = 0
filemanager.save_to_file(Rock.txt, Rock)
if uid not in Paper: Paper[uid] = 0
filemanager.save_to_file(Paper.txt, Paper)
if uid not in Scissors: Scissors[uid] = 0
filemanager.save_to_file(Scissors.txt, Scissors)
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 = "Бумага": бот делает ход, который побеждает ваш самый популярный вариант.
+22
View File
@@ -0,0 +1,22 @@
{
"first_name": "Name",
"last_name": "Surname",
"is_alive": true,
"age": 1000,
"address": {
"street": "street",
"city": "city",
"post": "100-100-100"
},
"phone_numbers": [
{
"type": "personal",
"number": "+7-(999)-999-99-99"
},
{
"type": "work",
"number": "+7-(999)-999-99-00"
}
]
}
}