Требования к уровню для Pokemon Go От 40 до 50
5 марта 2023 г.Прокачиваться с 41 по 50 уровень непросто, но, увидев игроков 50-го уровня в своем списке друзей, вы задаетесь вопросом, когда же вы когда-нибудь окажетесь в «клубе PoGo mile-50».
Как специалист по данным, ваше рефлекторное действие – поиск в Google (или, возможно, поиск)
<цитата>требования к уровню pokemon go 40-50
Или, если вы предпочитаете спросить барда / chatgpt, вы бы набрали:
<цитата>Каковы требования к уровню для Pokemon Go с 40 по 50 уровень?
Вырезка: мы обычно разговаривали, пока не вернулись к общению с компьютерами, отбрасывая «стоп-слова» и SEO-нажатия клавиш. А теперь вы хотите, чтобы мы снова начали печатать предложения целиком, чтобы компьютеры могли попытаться выучить человеческий язык?! Возможно, эти модели ИИ должны начать понимать:
<цитата>(╯°□°)╯︵◓ 🪜 как?
Хорошо, вернемся к правильному графику...
Это руководство GameRadar — хорошее начало, но оно просто неудобно для данных, давайте преобразуем информацию в JSON.
https://www.gamesradar.com/pokemon-go-level- задачи-требования-41-50/
level_guide = {
41: {
'xp': 6_000_000,
'rewards': {
'ultra_balls': 20,
'max_potions': 20,
'max_revives': 20,
'razz_berries': 20,
'incubator': 1,
'xl_candy': 1
},
'tasks': ['Power up a Legendary Pokemon 20 times',
'Win 30 raids',
'Catch 200 Pokemon in a single day',
'Earn 5 gold medals'
]
},
42: {
'xp': 7_000_000,
'rewards': {
'ultra_balls': 20,
'max_potions': 20,
'max_revives': 20,
'nanab_berries': 20,
'incubator': 1,
'premium_pass': 1,
'xl_candy': 1
},
'tasks': ['Evolve Eevee into each of its unique evolutions',
'Use items to evolve Pokemon 15 times',
'Make 3 Excellent Throws',
'Use 200 berries to help catch Pokemon'
]
}, ...,
50: {
'xp': 30_000_000,
'rewards': {
'ultra_balls': 50,
'max_potions': 50,
'max_revives': 20,
'super_incubator': 5,
'xl_candy': 2,
'elite_charged_tm': 1,
'incense': 5,
'lucky_egg': 5,
'lure': 5
},
'tasks': ['Make 999 Excellent throws',
'Catch a Legendary Pokemon in your next five Legendary Pokemon encounters',
'Defeat a Team Go Rocket Leader three times using only Pokemon with 2,500 CP or less',
'Reach Rank 10 in the Go Battle League'
]
},
}
from pprint import pprint
pprint(level_guide[42])
{'rewards': {'incubator': 1,
'max_potions': 20,
'max_revives': 20,
'nanab_berries': 20,
'premium_pass': 1,
'ultra_balls': 20,
'xl_candy': 1},
'tasks': ['Evolve Eevee into each of its unique evolutions',
'Use items to evolve Pokemon 15 times',
'Make 3 Excellent Throws',
'Use 200 berries to help catch Pokemon'],
'xp': 7000000}
Давайте посмотрим, сколько еще усилий мне потребуется, чтобы перейти на следующий уровень
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")
plt.ticklabel_format(style='plain')
xp_needed = {k:level_guide[k]['xp'] for k in level_guide}
df_xp = pd.DataFrame(xp_needed.items(), columns=['Level', 'XP'])
ax = sns.lineplot(data=df_xp, x="Level", y="XP")
ax.yaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlim(40, 51)
plt.show()
Что?! Это экспоненциальное увеличение числа нет. ХР нужно?!!
О, PoGo, ваши игровые дизайнеры и разработчики действительно знают, как удерживать игроков «привязанными» к приложению и покупать эти вечно инфляционные Pokecoins!
Столько жертв, чтобы удовлетворить мою детскую ностальгию по милым маленьким монстрам на моноблоке.
Какие сочные бинарные награды я получу за свои усилия?
pprint(level_guide[42]['rewards'])
{'incubator': 1,
'max_potions': 20,
'max_revives': 20,
'nanab_berries': 20,
'premium_pass': 1,
'ultra_balls': 20,
'xl_candy': 1}
Даже читать список наград больно, чтобы точно знать, сколько горшков, шаров и возрождений я получу после повышения уровня...
Давайте попробуем изобразить их на картинках. Сначала соберите список URL-адресов изображений и автоматизируйте загрузку.
import shutil
import requests
import imageio.v2 as imageio
import numpy as np
import PIL
from PIL import Image
from IPython.display import Image as JupyterImage
def download_image(img_url, save_to, thumbnail_size=(25,25)):
response = requests.get(img_url, stream = True)
response.raw.decode_content = True
with open(save_to,'wb') as fout:
shutil.copyfileobj(response.raw, fout)
# Create thumbnail
if thumbnail_size:
image = Image.open(save_to)
image.thumbnail(thumbnail_size)
image.save(save_to.rpartition('.')[0] + '.thumbnail.png')
img_urls = {'golden_razz_berries': "https://www.serebii.net/brilliantdiamondshiningpearl/berries/16.png",
'max_potions': 'https://static.wikia.nocookie.net/pokemon/images/a/a2/Dream_Max_Potion_Sprite.png',
'max_revives': 'https://static.wikia.nocookie.net/pokemon/images/4/45/Dream_Max_Revive_Sprite.png',
'nanab_berries': 'https://static.wikia.nocookie.net/pokemon/images/f/f6/NanabBerry-GO.png',
'razz_berries': "https://static.wikia.nocookie.net/pokemon/images/3/32/Dream_Razz_Berry_Sprite.png",
'silver_pinap_berries': 'https://pokemongohub.net/wp-content/uploads/2018/08/Item_0707.png',
'pinap_berries': 'https://pokemongohub.net/wp-content/uploads/2018/03/Item_0705.png',
'ultra_balls': 'https://static.wikia.nocookie.net/pokemon/images/f/f1/UltraBallArt.png'}
for i, url in img_urls.items():
download_image(url, f'{i}.png')
А, я могу использовать точечный график и add_artist
, чтобы представить награды.
Из https://stackoverflow.com/questions/22566284/ matplotlib-как-строить-изображения-вместо-точек
def fetch_num_items(level_guide_l, x):
for r in level_guide_l['rewards']:
if r.endswith(x):
return level_guide_l['rewards'][r]
return 0
ball_pots_revs = [{'levels': l,
'potions': fetch_num_items(level_guide[l], '_potions'),
'revives': fetch_num_items(level_guide[l], '_revives'),
'balls': fetch_num_items(level_guide[l], '_balls'),
'berries': fetch_num_items(level_guide[l], '_berries'),
'balls_img': next(r for r in level_guide[l]['rewards']
if r.endswith('_balls')) + '.thumbnail.png',
'potions_img': next(r for r in level_guide[l]['rewards']
if r.endswith('_potions')) + '.thumbnail.png',
'revives_img': next(r for r in level_guide[l]['rewards']
if r.endswith('_revives')) + '.thumbnail.png',
} for l in level_guide
]
df_bpr = pd.DataFrame.from_dict(ball_pots_revs)
df_bpr
И сюжет…
import matplotlib.pyplot as plt
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
def getImage(path, zoom=1):
return OffsetImage(plt.imread(path), zoom=zoom)
# Substitute with `df_bpr['potions_img']` or `df_bpr['revives_img']`
paths = df_bpr['balls_img']
x = df_bpr['levels']
y = df_bpr['balls'] # Substitute with `df_bpr['potions']` or `df_bpr['revives']`
fig, ax = plt.subplots()
ax.scatter(x, y)
for x0, y0, path in zip(x, y,paths):
ab = AnnotationBbox(getImage(path), (x0, y0), frameon=False)
ax.add_artist(ab)
п
Да, хорошо, теперь займись зельями.
И оживает!
Что?! Я получаю только 20 максимальных возрождений за каждый уровень
Интересно, как разработчики игры решают, сколько наградных предметов давать за уровни. Может быть, они делали то же, что и мой учитель: оценивал наши работы, держал сочинения учеников, подходил к лестнице, бросал их вниз по лестнице, ближайший получал пятерку, самый дальний — пятерку.
Разработчики игры, должно быть, сделали то же самое с наградными предметами, и все плюшевые игрушки с максимальным оживлением падают с нижней части лестницы.
Если подумать, почему Pokemon Company не выпускает плюшевых игрушек для покемонов?
Я хотел бы смешать кучу разных плюшевых ягод и положить их в холодильник всякий раз, когда у нас закончатся фрукты, прежде чем я пойду в магазин, чтобы пополнить их.
Думаю, я мог бы сгенерировать их с помощью «не-стабильной диффузии< /em>» на обнимает лицо пока…
Читать сюжеты по отдельности утомительно...
Разве вы не можете собрать все предметы вместе?
paths = list(df_bpr['revives_img']) + list(df_bpr['potions_img']) + list(df_bpr['balls_img'])
x = list(df_bpr['levels']) + list(df_bpr['levels']) + list(df_bpr['levels'])
y = list(df_bpr['revives']) + list(df_bpr['potions']) + list(df_bpr['balls'])
fig, ax = plt.subplots()
ax.scatter(x, y)
for x0, y0, path in zip(x, y,paths):
ab = AnnotationBbox(getImage(path), (x0, y0), frameon=False)
ax.add_artist(ab)
Выглядит лучше! Ммм, что-то не то...
Привет! (Подождите!) Изображения накладывались друг на друга, когда они находились в одной точке?!
В: Нельзя ли попробовать просто сгруппировать их, если они попадают в одну точку?!
О: Наверное, да, но вам действительно нужна "красивая" инфографика, чтобы знать, стоит ли вам прокачиваться до 50-го уровня?
Давайте попробуем объединить несколько изображений и сгруппировать их вместе
От https://stackoverflow.com/questions/30227466/combine-several- изображения-горизонтально-с-питоном
def combine_images(image_filenames, output_filename, pilmode='RGBA', how='v'):
imgs = [Image.fromarray(imageio.imread(i, pilmode=pilmode))
for i in image_filenames]
max_shape = sorted( [(np.sum(i.size), i.size) for i in imgs])[-1][-1]
# Vertical
if how[0].lower()=='v':
imgs_comb = np.vstack([i.resize(max_shape) for i in imgs])
# Horizontal
elif how[0].lower()=='h':
imgs_comb = np.hstack([i.resize(max_shape) for i in imgs])
# Square
elif how[0].lower()=='s':
if len(image_filenames) % 2 != 0: # If odd, add a blank image.
Image.new('RGBA', max_shape).save('blank.png')
image_filenames += ['blank.png']
combine_images(image_filenames[:len(image_filenames)//2], 'part1.png', how='h')
combine_images(image_filenames[len(image_filenames)//2:], 'part2.png', how='h')
imgs = [Image.fromarray(imageio.imread('part1.png', pilmode=pilmode)),
Image.fromarray(imageio.imread('part2.png', pilmode=pilmode))]
scale = len(image_filenames[:len(image_filenames)//2])
max_shape =(max_shape[0]*scale, max_shape[1]*1)
imgs_comb = np.vstack([i.resize(max_shape) for i in imgs])
imgs_comb = Image.fromarray(imgs_comb)
imgs_comb.save(output_filename)
Использование функции combine_images
list_im = ['max_revives.thumbnail.png', 'max_potions.thumbnail.png',
'ultra_balls.thumbnail.png', 'golden_razz_berries.thumbnail.png']
combine_images(list_im, output_filename='rewards-s.png', how='square')
display(JupyterImage(filename='rewards-s.png'))
Круто! Теперь снова сделайте графики.
Нам придется сгруппировать изображения по точкам (x,y) вместо того, чтобы хранить их в красивой таблице.
def fetch_num_items(level_guide_l, x):
for r in level_guide_l['rewards']:
if r.endswith(x):
return level_guide_l['rewards'][r]
return 0
ball_pots_revs_ber = [{'levels': l,
'potions': fetch_num_items(level_guide[l], '_potions'),
'revives': fetch_num_items(level_guide[l], '_revives'),
'balls': fetch_num_items(level_guide[l], '_balls'),
'berries': fetch_num_items(level_guide[l], '_berries'),
} for l in level_guide
]
df_bprb = pd.DataFrame.from_dict(ball_pots_revs_ber)
from collections import defaultdict
data_points = defaultdict(list)
for idx, row in df_bprb.iterrows():
x = row['levels']
for i in row.index:
if i != 'levels':
y = row[i]
if y == 0:
continue
data_points[(x,y)].append(
next(r for r in level_guide[x]['rewards'] if r.endswith(i)) + '.thumbnail.png'
)
print(data_points)
[выход]:
defaultdict(list,
{(41, 20): ['max_potions.thumbnail.png',
'max_revives.thumbnail.png',
'ultra_balls.thumbnail.png',
'razz_berries.thumbnail.png'],
(42, 20): ['max_potions.thumbnail.png',
'max_revives.thumbnail.png',
'ultra_balls.thumbnail.png',
'nanab_berries.thumbnail.png'],
...,
(50, 50): ['max_potions.thumbnail.png',
'ultra_balls.thumbnail.png'],
(50, 20): ['max_revives.thumbnail.png']})
Теперь у нас есть изображения, которые мы хотим объединить для каждой точки рассеивания
data_points_imgs = {}
for k, v in data_points.items():
fname = f"{'-'.join(map(str, k))}.png"
if len(v) in [1,2]:
combine_images(v, output_filename=fname, how='horizontal')
else:
combine_images(v, output_filename=fname, how='square')
data_points_imgs[k] = fname
Иди, иди, иди. Сюжет!
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
import seaborn as sns
sns.set(rc={'figure.figsize':(11.7,8.27)})
x, y = zip(*data_points_imgs)
fig, ax = plt.subplots()
ax.scatter(x, y, s=0.01)
plt.xlabel('Level')
plt.ylabel('Rewards')
plt.xlim([40, 51])
ppp = data_points_imgs.values()
for x0, y0, path in zip(x, y,ppp):
ab = AnnotationBbox(
OffsetImage(plt.imread(path), zoom=1),
(x0, y0), frameon=False)
ax.add_artist(ab)
Теперь вы видите экспоненциальный рост и награды, что вы будете делать?
https://youtu.be/MpaHR-V_R-o?embedable=true р>
:::информация Также опубликовано здесь.
:::
Оригинал