|
Zombot (Клиент для игры Зомби ферма) [Обсуждение] - Свободное обсуждение - Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей |
18.01.2015, 20:38
|
#3916
|
|
|
|
Разведчик
|
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
не понял , ну и что случится если здание того же размера что и дерево, после того как срубишь эти дефолтные деревья на то место уже не поставить ни здание размером с это срубленное дерево ни декор ни то же самое дерево |
|
|
|
|
|
вот именно
пока не срубил эти деревья, то проверять надо по одним координатам (они шире)
а когда бот будет ставить здание или садить дерево, то проверять надо по другим координатам
|
|
|
18.01.2015, 20:53
|
#3917
|
|
|
|
Разведчик
|
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
а когда бот будет ставить здание или садить дерево, то проверять надо по другим координатам |
|
|
|
|
|
ну вобщем то да, я выставление либо посадку не включал когда у меня там деревья росли, да и вырубились они быстро, нужно проверить выставление за забором когда там деревья есть чтобы посмотреть воткнется ли он в это дерево, что стоит левее, ведь его координат получается не будет в составленной карте острова либо если размер у этого дерева 1х1 никакой проблемы не будет
Добавлено через 32 минуты
|
Цитата: |
|
|
|
|
|
|
|
|
править все модули - только то, что мне нужны по ходу игры, а писать то, что мне не нужно бесплатно я не буду |
|
|
|
|
|
про то и разговор, что те люди(без опыта программирования) которые пытаются править существующего бота худо бедно разобрались как чего, и что то могут сделать сами, а с твоим либо опять разбираться что к чему либо платить тебе деньги за нужный модуль(а зачем? если есть бесплатное!) либо ждать когда тебе по ходу игры понадобится та или иная функция, так что пишешь ты пока исключительно для себя. только пойми меня правильно ,я не против твоего изменения бота, вовсе нет и если нужна будет помощь по модулям приму участие, я про то что "удобно читать и править" для всех понятия разные
Последний раз редактировалось greyzza; 18.01.2015 в 21:25.
Причина: Добавлено сообщение
|
|
|
18.01.2015, 21:52
|
#3918
|
|
|
|
Разведчик
|
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
за это приходится расплачиваться game_types.py
|
|
|
|
|
|
Так ну же неправда Ваша, я ж говорил уже. Game Types нужен чтобы не отправить на сервер ереси, для криворуких дописывателей конечных модулей. Есть и половинчатое решение, с точкой но без game_types ...
Не, он автоматом сгеренён, и исходник генерации его рядом там валялся или в корне..
|
Цитата: |
|
|
|
|
|
|
|
|
|
как это получше сделать
|
|
|
|
|
|
Как вариант -- описать отдельно основную Area , либо вообще отдельно доступность ресурсов и доступность площади (доступность ресурсов расширить по сравнению с доступностью площади, даже и до 0,0 ). Вообще такие неоднозначности только на main ведь?
|
Цитата: |
|
|
|
|
|
|
|
|
|
уж не знаю за какой вы скоростью гонитесь
|
|
|
|
|
|
У меня в кладовке стоит AMD-K6-450 с 256M оперативы. Когда его можно будет запустить серваком под 10 акков с рыбаками, я подумаю, что бот хороший : ))
Или, как вариант, чтобы фильмы не мешал смотреть на сборе дропа, а то сейчас получается или фильм или бот.
|
Цитата: |
|
|
|
|
|
|
|
|
|
бота пытаются править люди без опыта программирования
|
|
|
|
|
|
Ладно Вам. Программистов тут штуки 3-4-5, из тех, кто пишет, остальные признают, что не программисты, хотя умеют. Моя же задача, одна из, сделать бота "для блондинок", повторяюсь. self.craft , self.buy, self.place и т д и максимально облегчить конечные модули. Возможно, через наследование ( class HarvestExchange(Craft) , а Craft абстрактный , например.) , то есть максимально облегчить написание конечных модулей. Настолько, чтобы и программистом не особо надо было быть. Заодно тема почистится от подобных запросов.
|
Цитата: |
|
|
|
|
|
|
|
|
|
писать то, что мне не нужно бесплатно я не буду
|
|
|
|
|
|
Да ну, бросьте. Сделайте тогда обратную поддержку существующих модулей, чтоли?
|
Цитата: |
|
|
|
|
|
|
|
|
|
and x>=0 and x<=48
|
|
|
|
|
|
Ещё одна "вкусность" питона -- двойные неравенства
and 0<=x<=48 . Попробуйте
|
Цитата: |
|
|
|
|
|
|
|
|
|
Взять текущий zombiefarm.swf посчитать его md5
|
|
|
|
|
|
digests.txt посмотрите при загрузке оф. клиента? Там они все посчитаны...
Последний раз редактировалось megabyte0; 18.01.2015 в 21:57.
|
|
|
18.01.2015, 22:17
|
#3919
|
|
|
|
Разведчик
|
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
про то и разговор, что те люди(без опыта программирования) которые пытаются править существующего бота худо бедно разобрались как чего, и что то могут сделать сами, а с твоим либо опять разбираться что к чему либо платить тебе деньги за нужный модуль(а зачем? если есть бесплатное!) либо ждать когда тебе по ходу игры понадобится та или иная функция, так что пишешь ты пока исключительно для себя. только пойми меня правильно ,я не против твоего изменения бота, вовсе нет и если нужна будет помощь по модулям приму участие, я про то что "удобно читать и править" для всех понятия разные |
|
|
|
|
|
Трудно не согласиться, это можно отнести почти к любому опенсорц проекту (кикстартер не в счет, там чисто комерц).
Добавлено через 17 минут
|
Цитата: |
|
|
|
|
|
|
|
|
Или, как вариант, чтобы фильмы не мешал смотреть на сборе дропа, а то сейчас получается или фильм или бот. |
|
|
|
|
|
А какие проблемы при сборе дропа? Забивается канал или проц?
|
Цитата: |
|
|
|
|
|
|
|
|
Моя же задача, одна из, сделать бота "для блондинок", повторяюсь. self.craft , self.buy, self.place и т д и максимально облегчить конечные модули |
|
|
|
|
|
боюсь, если так сделать, то потеряется гибкость и при больших изменениях в клиенте будет печально за потраченное время; либо код будет очень громоздким и сложным, в котором потом фиг че разберешь.
|
Цитата: |
|
|
|
|
|
|
|
|
Да ну, бросьте. Сделайте тогда обратную поддержку существующих модулей, чтоли? |
|
|
|
|
|
Это я не конкретно про бота, я вообще. Тратить свое свободное время хочется на себя. Правильно greyzza подметил, что пишу я пока для себя, а если что толковое выйдет - увидит свет.
|
Цитата: |
|
|
|
|
|
|
|
|
Ещё одна "вкусность" питона -- двойные неравенства
and 0<=x<=48 . Попробуйте |
|
|
|
|
|
крутяк, так нагляднее, спасибо
|
Цитата: |
|
|
|
|
|
|
|
|
digests.txt посмотрите при загрузке оф. клиента? Там они все посчитаны... |
|
|
|
|
|
хм, да, не подумал об этом
Последний раз редактировалось ruslanische; 18.01.2015 в 22:34.
Причина: Добавлено сообщение
|
|
|
18.01.2015, 23:20
|
#3920
|
|
|
|
Разведчик
|
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
то потеряется гибкость
|
|
|
|
|
|
Не знаю, у меня получалось. Посмотрите self.craft ? Там специально же отходные пути сделаны, для коллекций pass поставлен, комментами написано, какие проверки не сделаны. Мне туда с очень маленькими усилиями удалось впихнуть и коллекции, после.
Я бы сказал даже "спрятать очевидную обвязку и проверки", в эти "простые" функции. При изменениях в протоколе, опять, поменяется только отсылка, обвязка же та же и останется?
|
Цитата: |
|
|
|
|
|
|
|
|
|
Забивается канал или проц?
|
|
|
|
|
|
Проц. Похоже, на преобразовании в dict2obj либо на цикле по евентам. И туда и туда влом лезть, а больше негде, вроде. Да, впрочем, лог выше я ж кидал? Открывал он silently, одним сообщением. Остальное время собирал дроп. Потом только его показал. Гляньте..
|
Цитата: |
|
|
|
|
|
|
|
|
|
либо код будет очень громоздким и сложным
|
|
|
|
|
|
Ну, опять же, гляньте крафт? : )) Да, проверок и обвязки там до жути, но, имхо, вполне читабелен. Я не говорю все базовые пользовательские функции делать по образу и подобию.. Но таки можно "облегчить жизнь рядовым пользователям..."
|
Цитата: |
|
|
|
|
|
|
|
|
|
Тратить свое свободное время хочется на себя.
|
|
|
|
|
|
|
Цитата: |
|
|
|
|
|
|
|
|
|
править все модули - только то, что мне нужны по ходу игры
|
|
|
|
|
|
А мне нравится решение, типа bridge.py , при подключении которого теряется скорость, но становится возможным подключение уже написанных модулей. Так Ваш проект будет обречён на юзабельность в любом случае (опечатки нет). Больше того, если писать модули захотят больше под Вашу модификацию бота, то, понятно, какой бот будет пользовать большинство, в конце концов.
Мне, как параноику, трудно будет сразу взять и использовать, я ж почитаю всё сначала, а 1-2 дня на такое я могу и не найти...
Мне в любом случае надо будет представлять все подводные камни кода или их отсутствие/предусмотренность, чтобы легко использовать код. Так что, про себя я даже не говорю. Но было бы интересно посмотреть ещё не рассмотренные выше решения
Что бы я ещё хотел предложить -- перегрузить __getitem__ в item_reader , банально на get, куда приятнее выглядело бы self.reader[obj.item] , чем .get(obj.item) . И, опять, по функциям, можно же написать "обратное ТЗ", что пользователям может быть надо, и двигаться от него? Возможно, мне было бы даже приятно в таком поучаствовать (в написании потом подобных функций с обвязкой)
Но, конечно, не настолько детальное, чтобы это могло вылиться в game_types_2 : ))) Пусть сами dictы новых событий/actionов из перехватов обмена со стандартным клиентом ковыряют
|
|
|
18.01.2015, 23:39
|
#3921
|
|
|
|
Разведчик
|
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
Не знаю, у меня получалось. Посмотрите self.craft ? |
|
|
|
|
|
посмотрю, было б где
|
Цитата: |
|
|
|
|
|
|
|
|
Да, проверок и обвязки там до жути, но, имхо, вполне читабелен |
|
|
|
|
|
и туда мало кто полезет кроме вас, ибо сломают
|
Цитата: |
|
|
|
|
|
|
|
|
Но таки можно "облегчить жизнь рядовым пользователям..." |
|
|
|
|
|
сильно сомневаюсь в необходимости делать API для "блондинок", надо сделать так, чтобы было читабельно, но если где и накосячил, то по трейсу легко было понять в чем причина и как исправить
|
Цитата: |
|
|
|
|
|
|
|
|
А мне нравится решение, типа bridge.py |
|
|
|
|
|
шаблон мост? я его обожаю, на с++ время перекомпиляции снижает, интерфейс упрощает, скорость работы немного снижает
|
Цитата: |
|
|
|
|
|
|
|
|
Мне, как параноику, трудно будет сразу взять и использовать, я ж почитаю всё сначала, а 1-2 дня на такое я могу и не найти... |
|
|
|
|
|
вот по этому я и взялся переписывать, а время пока есть
|
|
|
19.01.2015, 01:54
|
#3922
|
|
|
|
Разведчик
|
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
посмотрю, было б где
|
|
|
|
|
|
google.com/search?q=site:zhyk.ru+self.craft
http://zhyk.ru/forum/showpost.php?p=...postcount=3030
|
Цитата: |
|
|
|
|
|
|
|
|
|
и туда мало кто полезет
|
|
|
|
|
|
Хуже. Туда и лезть не надо, потому что всё предусмотрено. Пользуйте на здоровье :)
И ломать там нечего :DD Только дописывать, причём, там же и написано, что именно, и куда.
|
Цитата: |
|
|
|
|
|
|
|
|
|
сильно сомневаюсь в необходимости делать API для "блондинок"
|
|
|
|
|
|
Хорошо, вот Вам другое обоснование: мы прячем дублирующийся код в легкодоступные понятные функции.
Да не хотите, не делайте, я ж выше написал, что такие функции, с обвязкой из "кепских" вещей, но, которые, если какую-нибудь из них упустишь, может всё полететь, мне писать было бы, возможно, приятно. В отличие от уважаемого greyzza я не буду обещать именно написать их, или даже что мне было бы приятно писать их даже поверх [' '] , но сама идея рассмотренности всех краевых случаев, может вдохновлять.
У меня даже было и более сильное возражение, но я придержу его пока почитаете craft.
|
Цитата: |
|
|
|
|
|
|
|
|
|
надо сделать так, чтобы было читабельно
|
|
|
|
|
|
А я что, не согласен, чтоли? :)
|
Цитата: |
|
|
|
|
|
|
|
|
|
максимально простым для разработчиков конечных модулей и максимально понятным для остальных.
|
|
|
|
|
|
|
Цитата: |
|
|
|
|
|
|
|
|
|
но если где и накосячил
|
|
|
|
|
|
Да, сложность может быть, что такие функции желательно бы писать с просмотром всех вариантов, то есть, чтобы накосячить было негде.
|
Цитата: |
|
|
|
|
|
|
|
|
|
то по трейсу легко было понять в чем причина и как исправить
|
|
|
|
|
|
А этого никто не отменял :DD
Ннет, или я не понял. Back-поддержка готовых модулей. Типа import bridge и можно подключать к Вашему. Или что-нибудь в этом роде, додумывать надо. Более того, несложно же выделить (self\.[^(]+)\( и посмотреть, что вообще может быть надо конечным модулям кроме того, что они импортят.
Навскидку, что может требовать обвязки и при этом требоваться не в одном модуле: buy, sell (грядки, ракеты, декор), visit (копка, стучание), knock (если оно вообще пишется универсально..), magic (в одном модуле хотя оно) . Народ, зачем вы бот используете ещё? :) chop (проверка, что не в "тени", но опять 1 модуль только)
Последний раз редактировалось megabyte0; 19.01.2015 в 02:58.
|
|
|
19.01.2015, 08:41
|
#3923
|
|
|
|
Разведчик
|
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
megabyte0
Ок, но это все позже, щас я старые модули переделываю.
После очередного ночного запуска бот встал под утро, на этот раз без ingame error - дерево не закончилось. Склад зомбика переполнился и работа встала, опять не сработала проверка EndJob...
Че ж делать? Может перенести проверку на конец работ в сам workers.perform_action? Странно, что у меня время потихоньку отстает от серверного.
Добавлено через 2 часа 38 минут
Похоже были правы те, кто говорил, что таймер в воркере - зло. Действительно, пока не решена проблема с таймером (как минимум у меня есть эта проблема), то в воркере лучше доверять doneCounter...
Видимо проблема со сбором недозретого урожая тоже с таймером связана?
Последний раз редактировалось ruslanische; 19.01.2015 в 11:19.
Причина: Добавлено сообщение
|
|
|
19.01.2015, 16:54
|
#3924
|
|
|
|
Разведчик
|
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Последний раз редактировалось megabyte0; 19.01.2015 в 16:58.
|
|
|
19.01.2015, 17:20
|
#3925
|
|
|
|
Разведчик
|
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Клиент игры обновился, если кого это волнует. Я перепроверяю все запросы-ответы.
Код для проверки на изменения клиента:
Код:
import re
from connection import Connection
...
CLIENT_DIGEST = u'00e054cdd461166cb9e796f7582191b5fa61f097'
...
def validate_client_version(self):
all_digests = Connection(u'http://s.shadowlands.ru/zombievk-res/digests.txt').download()
pattern = re.compile(u'^zombiefarm.swf=(.*)')
matched = re.match(pattern, all_digests)
if not matched:
logger.info(u'Не удалось получить digest.txt с сервера игры')
raise
zf_digest = matched.groups()[0]
if zf_digest != self.CLIENT_DIGEST:
logger.info(u'Известная подпись zombiefarm.swf не совпадает с подписью с сервера')
raise
...
validate_client_version()
мой connection.py:
Код:
# -*- coding: utf-8 -*-
import logging
import requests
import zlib
from game_exceptions import zlibError
logger = logging.getLogger('connection')
class Connection(object):
def __init__(self, url):
self.__url = url
self.__session = requests.session()
self.__session.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'
self.__session.headers['Accept'] = 'text/html,application/xhtml+xml,application/zip,application/xml;q=0.9,*/*;q=0.8'
self.__session.headers['Accept-Language'] = 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3'
self.__session.headers['Accept-Encoding'] = 'gzip, deflate'
self.__session.headers['Connection'] = 'keep-alive'
self.__session.headers['Pragma'] = 'no-cache'
self.__session.headers['Cache-Control'] = 'no-cache'
# Нужно для обработки редиректа
def setUrl(self, new_url):
self.__url = new_url
# Скачать документ по ссылке
def download(self, data=None):
response = self.__getResponse(data)
if u'content-type' in response.headers and response.headers[u'content-type'] == u'application/zip':
try:
decompressed_content = zlib.decompress(response.content)
return decompressed_content
except:
raise zlibError
response.encoding = 'utf-8'
return response.text
def sendRequest(self, data=None):
logger.info('request: ' + self.__url + ' : ' + unicode(data))
response = self.__getResponse(data)
if u'gz' in data and data[u'gz'] == u'y':
try:
decompressed = zlib.decompress(response.content)
except:
raise zlibError
content = unicode(decompressed.decode(u'utf-8'))
logger.info(u'response: ' + content)
return content
logger.info(u'response: ' + response.text)
return response.text
def __getResponse(self, data):
response = self.__session.get(self.__url, params=data)
response.encoding = 'utf-8'
return response
Добавлено через 5 минут
|
Цитата: |
|
|
|
|
|
|
|
|
И правда странно. Может, ввести множитель или адаптивную подстройку?
Значит, был неправ в том, чтобы считать его правильным... |
|
|
|
|
|
Пока не знаю что делать, кроме как насильно перезапускать бота по таймеру (например, каждые 3 часа)
возможно time.time() имеет другую точность, нежели во флеше
А множитель и так х1000 (т.е. мы секунды с сотыми переводим в милисекунды)
Последний раз редактировалось ruslanische; 19.01.2015 в 23:41.
Причина: Добавлено сообщение
|
|
|
19.01.2015, 19:47
|
#3926
|
|
|
|
Разведчик
|
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
возможно time.time() имеет другую точность, нежели во флеше
|
|
|
|
|
|
Код:
>>> import time
>>> time.time()
1421684212.265
>>> import math
>>> math.modf(time.time())
(0.7179999351501465, 1421684476.0)
>>> math.modf(time.time())
(0.812000036239624, 1421684483.0)
То есть оно насильно округляется до 3 знаков питоном.
Больше того, даже на 6и пакетах подряд, разница "time": запроса и времени отправки запроса ходит +-90мс , у меня, по перехватам из оф.клиента.
Если другая точность в другом плане, то вроде как не особо верится, они ж по идее должно одно и то же API для этого использовать? Тут только доки курить или реализацию смотреть...
Пока что идея только при перезапуске бота куда-нибудь логгать serverTime вместе с time.time() , ну, и посмотреть потом разницу, уходит или нет. Хотя, правда ли, что ingame time считается просто вычитанием из серверного текущего системного времени какого-то значения, я опять не знаю. Вроде, это может быть дорого по ресурсам.
А про перезапуск бота, да, он стоял раз в 10-25 минут, у кого как, я не знал вообще зачем это может быть нужно и выпилил. Теперь ясно.
|
Цитата: |
|
|
|
|
|
|
|
|
|
self.__session.headers['
|
|
|
|
|
|
forом по словарику либо по списку tupleов мне бы больше понравилось.
|
Цитата: |
|
|
|
|
|
|
|
|
|
Я перепроверяю все запросы-ответы.
|
|
|
|
|
|
Вроде теперь в START и id отдаётся, и serverTime, серверу.
P.S. Ах да, craft "неограниченный" в постройках -- просто навеска на клиент, с ограничением в 500 и жуткими тормозами. При этом неочевидно, что считаются разы крафта, а не скрафченные итемы. Вообщем, бот это не трогает.
Последний раз редактировалось megabyte0; 19.01.2015 в 20:01.
|
|
|
19.01.2015, 20:03
|
#3927
|
|
|
|
Разведчик
|
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
Вроде теперь в START и id отдаётся, и serverTime, серверу. |
|
|
|
|
|
а что, было по-другому? О_о
data {"lang": "en", "info": {"city": "Москва", "first_name": "ххх", "last_name": "ххх", "uid": ххх, "country": "Россия", "sex": 2, "bdate": null}, "ad": "user_apps", "serverTime": 1421686824660, "clientTime": 40844, "sig": "47f01ae23cb58535072e0cd8a446e864", "user": ххх "type": "START", "id": 1421686824660}
|
|
|
19.01.2015, 22:20
|
#3928
|
|
|
|
Разведчик
|
Регистрация: 23.08.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
19.01.2015, 22:23
|
#3929
|
|
|
|
Разведчик
|
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.01.2015, 10:19
|
#3930
|
|
|
|
Пехотинец
|
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Питон не округляет. time() - 32 битная и чем дальше, тем меньше точность дробной части. На сегодняшний день это 3 знака после запятой, как раз 1 мс выходит.
>>> print "time.time(): %f " % time.time()
time.time(): 1421737003.031000
А math просто начинает ломать из-за внутреннего ограничения точности.
>>> math.modf(3.2)
(0.20000000000000018, 3.0)
>>> math.modf(1421684212.265)
(0.2650001049041748, 1421684212.0)
В более ранних питонах это же было и в встроенных функциях. Сейчас там коррекция стоит.
Это я про точность в питоне где-то читал пару месяцев назад.
Последний раз редактировалось vintets; 20.01.2015 в 10:22.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 23:30.
|
|