"Oсновните форми трябва да се оцветяват (само тези в табличката)."
Само конкретните фигури,които са дадени, или и всичките им симетрични,които, разбира се, могат да се получат?
Благодаря
Програмиране с Python » Форуми » Задачи
Game Of Life
(16 posts)-
Posted 1 year ago #
-
Да, това е доста интелигентен въпрос, на някои от фигурите освен това различните им форми не са и симетрични дори...
Аз успях да го напи
Posted 1 year ago # -
Написах си задачата без частта с оцветяването.
Posted 1 year ago # -
150-200 точки, дисплейвам 20x20 (но смятам всичко) - 20 кадъра в секунда.
Колкото до оцветяването - и моята идея е такава - мъчно е да обаче ако го няма всичко е супер лесно.
Като някой подкараPosted 1 year ago # -
Еее ти си голям бързак бе :) Аз като дисплейвам 20x20, за 150-200 точки вадя 6-7 кадъра в секунда, щото ми е балъ
Posted 1 year ago # -
Кое е бавно при вас — смятането или изчертаването?
Смятането на новото състояние на дори хиляди точки отнема малко време (линейно е). Търсенето на фигури е абсолютен максимум квадратично, което значи, че би трябвало да имате проблем да вадите 20 кадъра в секунда чак над 500-1000 точки.
След като сметнете новите състояния, само гледате кои влизат в текущо видимата област и прерисувате.
Горните размисли предполагат, че не пазите просто една матрица с флагове, къде има и къде няма точка, а отделна структура от точките.
Posted 1 year ago # -
Да абсолютно си прав, линейно е търсенето на точките, пазя си структура set(достъпа до set и dict, трябва да е константен ?) от точки по-точно защото света трябва да е безкраен нали... Не мога да го измисля с матричка с нули и единици как ще стане безкраен...
Прерисуването на точки първо маха всички нарисувани с find_withtag, после нанася новите като достъпва точките чрез координатите им, през речник от тип {coords : rect}, който се създава, когато се рисува дъската. Проверява дали точката е върху видимата част на дъската и я рисува ако е там. Това също трябва да е линейно, но сега пуснах програмата през - cProfile, и излезе че за 64x48 дъска, за около 100-150 точки със 6 кадъра в секунда, прерисуването отнема 44.749, а смятането на ново състояние 42.625, което не мога да си обясня защо е толкова бавно... Дори не съм тръгвал да пи
Posted 1 year ago # -
Не разбрах частта с оцветяването на фигурките от таблицата. Само тези, които са в таблицата или симетричните? А тези с 2-3 състояния докато се движат?
Posted 1 year ago # -
Ми то никой не каза в крайна сметка, но според мен би било по нагледно с всичките им 2-3 състояния да ги оцветяваме. Така или иначе ако го направи
Posted 1 year ago # -
бях ре
Posted 1 year ago # -
я, всъщност съм направил и 2стъпковия осцилатор, който има едва 8 състояния.
_xxx
xxx_Posted 1 year ago # -
Всички състояния трябва да се оцветяват.
Posted 1 year ago # -
Най-накрая сметнах координатите на всички състояния на фигурките и тези на точките около тях, които трябва да са мъртви, иначе можем да хващаме разни неща, които не са това което ни трябва, от сорта на тази фигура долу която би хванало за блинкър:
_xxxx_
Целият, файл с координатите е 12KB :D, а цялата проверка не забавя колкото аз си мислех, но е очевидно по-бавно дори и от преди. Колкото до симетрията, не мисля че би помогнала, особено в моят случай, когато не пазя матрица с 0 и 1, ами структурка с точките, а и правя проверката за оцверяване само в малко по-
Posted 1 year ago # -
Аз направих
Posted 1 year ago # -
Реализацията ми на C++ за тази сцена прави 2000 цикъла за 6.125сек, като пазя безкрайно поле и всички точки.
Posted 1 year ago # -
espr1t: Защо не погледне
Posted 1 year ago #
Reply
You must log in to post.