рдЬреЗрдПрд╕ рдкрд░ рдХреЙрдирд╡реЗ рдХреЗ рдЬреАрд╡рди рдХрд╛ рд▓реЗрдЦрди рдФрд░ рдЕрдиреБрдХреВрд▓рди

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдиреЗ рд╣рдореНрд╕рдЯрд░ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ - рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдореБрдЭреЗ 404 рд╡реАрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрд╕рд╛рдорд╛рдиреНрдп рдкреЗрдЬ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЪреВрдВрдХрд┐ рдореИрдВ рдмрдЪрдкрди рдореЗрдВ рдХреЙрдирд╡реЗ рдХреЗ рдЬреАрд╡рди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдерд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ), рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬреЗрдПрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреАрд╡рди рдореЗрдВ рдХреНрдпрд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ: рдпрджрд┐ рдПрдХ рд╡реНрдпрд╕реНрдд рд╕реЗрд▓ рдореЗрдВ 2 рдпрд╛ 3 рдкрдбрд╝реЛрд╕реА рд╣реИрдВ, рддреЛ рдпрд╣ рд░рд╣рддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ 3 рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдкреИрджрд╛ рд╣реЛрддрд╛ рд╣реИ? рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдореЗрд░реЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ / рдмрд╛рдЗрдирд░реА рдЕрдВрдХрдЧрдгрд┐рдд рдХреЗ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдХреНрд╖рдг рдирд╣реАрдВред

рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рд╕реНрд░реЛрдд рд╡рд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реАрд╕реА рдмреАрд╡рд╛рдИ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд)ред

рд╣рдо рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ


for(y=1;y<maxy-1;y++)//We do not process 1px border for(x=1;x<maxx-1;x++) { sum = data[readpage][y-1][x-1] + data[readpage][y-1][x ] + data[readpage][y-1][x+1] + data[readpage][y ][x-1] + data[readpage][y ][x+1] + data[readpage][y+1][x-1] + data[readpage][y+1][x ] + data[readpage][y+1][x+1]; if(sum==3 || (sum==2 && data[readpage][y][x])) data[writepage][y][x] = 1; else data[writepage][y][x] = 0; setColor(data[writepage][y][x]); drawCell(x,y); } 

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ - i7-3820@4.3Ghz рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 12 рдкрд░ - рдпрд╣ рдХреЛрдб рдХреЗрд╡рд▓ 8.5 рдПрдлрдкреАрдПрд╕ (рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб) рдХреА рдЧрдгрдирд╛ рдФрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реИ рдЬреЛ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди


рд╣рдо рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рддрднреА рдЦреАрдВрдЪреЗрдВрдЧреЗ рдЬрдм рд╡рд╣ рдмрджрд▓ рдЧрдпрд╛ рд╣реЛ - 67 FPSред

рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░рдВрдЧ рдХреЛ рдмрджрд▓рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдСрдкрд░реЗрд╢рди рд╣реИ, рд╣рдо 2 рдкрд╛рд╕ рдореЗрдВ рдбреНрд░рд╛ рдХрд░реЗрдВрдЧреЗ, рдкрд╣рд▓реЗ рд╕рднреА рдЬрдиреНрдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ, рдлрд┐рд░ рд╕рднреА рдореГрдд: 80 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдбред рдЪреВрдВрдХрд┐ рд╕рднреА рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдлрд╝реАрд▓реНрдб рдореБрдЭ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ (рддрд╛рдХрд┐ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдВрдд рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рд╕реЗ "рдЧреНрд▓рд┐рдЪ" рджрд┐рдЦрд╛рдИ рди рджреЗрдВ), рдореИрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрджреГрд╢реНрдп рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - 125 рдПрдлрдкреАрдПрд╕ред

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдПрдХ рдСрдл-рд╕реНрдХреНрд░реАрди рдХреИрдирд╡рд╕ рдореЗрдВ рдЖрд░реЗрдЦрдг рдиреЗ рдХреЛрдИ рддреНрд╡рд░рдг рдирд╣реАрдВ рджрд┐рдпрд╛, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдПрдХ рджреГрд╢реНрдпрдорд╛рди рдХреИрдирд╡рд╛рд╕ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдереЛрдбрд╝реА рдЧрд┐рд░рд╛рд╡рдЯ рдЖрдИред

рдпрд╣ рдХреЗрд╡рд▓ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдлреНрд░реЗрдо рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реА рд░рд╣рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд░рд┐рдХреНрд╡реЗрд╕реНрдЯрдПрдирд┐рдореЗрд╢рди рдлрд╝реНрд░реЗрдо - рддрд╛рдХрд┐ рдПрдиреАрдореЗрд╢рди рдХреЛ рддрдм рди рдЦреАрдВрдЪрд╛ рдЬрд╛рдП рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдкреГрд╖реНрда рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдореЗрдВ рд╣реИ)

рд╢рд╛рдпрдж рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рд╣реИ ...

рдореМрдЬреВрджрд╛ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдзрд┐рдпрд╛рдБ


Hashlife рдХреЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ рдЕрдирдВрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЧрддрд┐ рдореЗрдВ рдЪреИрдореНрдкрд┐рдпрдирд╢рд┐рдк рд╣реИ - рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓рддреЗ рд╣реБрдП, рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХреНрд╡рд╛рдб-рдЯреНрд░реА рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕рдорд╛рди рдмреНрд▓реЙрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдХреИрд╢ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рддреБрд░рдВрдд рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо "рдзреАрд░реЗ рд╕реЗ рдкреЙрдк" рд╣реЛрддрд╛ рд╣реИ, рд╕реНрдореГрддрд┐ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдХреНрд╖реЗрддреНрд░ (256 * 192) рдХреЗ рд▓рд┐рдП - рдпрд╣ рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдорд╛рдЗрдХреНрд░реЛрд╕реНрдХреЛрдк рдХреЗ рд╕рд╛рде рдирд╛рдЦреВрдиреЛрдВ рдХреЛ рд╣рдереМрдбрд╝рд╛ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдПрдХ рдФрд░ рд╕рдореВрд╣ рдЧрдгрдирд╛ рд╕реЗ рдлрд╝реАрд▓реНрдб рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЦрд╛рд▓реА рд╣реИ (рдпрд╛ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрджрд╛рди рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реЗ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд╢рд╛рдирджрд╛рд░ рдирд╣реАрдВред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмрджрд▓рддреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рдХрддрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╕рд░рдгреА рдореЗрдВ рд░рд╛рд╢рд┐ рдХреЛ рддреБрд░рдВрдд рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╛рдиреА X * Y * 8 рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХреЗрд╡рд▓ (рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) * 8 рдХрд░рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХрддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдУрд╡рд░рд╣реЗрдб рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдШрдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП, 3-5 рдЧреБрдирд╛ рдХрд╛ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ (рдмрдбрд╝реЗ рдХрдордЬреЛрд░ рднрд░реЗ рдЦреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИ)ред

рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдКрдВрдЧрд╛


рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рдЬреЗрдПрд╕ рд╕рд░рдгрд┐рдпрд╛рдВ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдмрдиреА рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдзреАрдореА рд╣реЛрддреА рд╣реИред рдЦреИрд░, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрд▓ рдХреЗ рдирдП рд░рд╛рдЬреНрдп рдХреА рдЧрдгрдирд╛ рд╣рдореЗрд╢рд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рд░рдгреА рдХреЛ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдмрд┐рдирд╛ рд╢рд╛рдЦрд╛ рдХреЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛ред

рдореИрдВ рдлрд╝реАрд▓реНрдб рдХреЛ рдмрд┐рдЯ рдлреЙрд░реНрдо (32 рдорд╛рди рдкреНрд░рддрд┐ рддрддреНрд╡ рддрддреНрд╡) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реВрдВрдЧрд╛ред рдЬреЗрдПрд╕ рдореЗрдВ 32-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд (!) рдкреВрд░реНрдгрд╛рдВрдХ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо 32 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЗрдХрд╛рдИ рдХреЛ рдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ JS, >> рдФрд░ >>> рдореЗрдВ 2 рд░рд╛рдЗрдЯ рд╢рд┐рдлреНрдЯ рдХрдорд╛рдВрдб рд╣реИрдВред >>> рдЗрд╕ рдмрд╛рдд рдореЗрдВ рднрд┐рдиреНрди рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдФрд░ рд╢реВрдиреНрдп рд╕реНрдерд╛рди рдХреЛ "рдзрдХреЗрд▓ рджреЗрддрд╛ рд╣реИ, рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдирд╣реАрдВ)ред" рдпрд╣ рдПрдХ рдРрд╕реА рдкрд╛рд░реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рд╣рдо рд╕рднреА 32 рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рдЬрдм рд╣рдо рдмрд╛рдИрдВ рд╕реЗ рджрд╛рдИрдВ рдУрд░ рдХреА рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рддреБрд░рдВрдд 3 рд▓рдЧрд╛рддрд╛рд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдорд╛рди рдФрд░ 7ред рдЗрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд╣рдо 8 рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реБрдХрдЕрдк рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рдХреНрд░рдордмрджреНрдз рд╕рд░рдгреА рдХреЛ рдПрдХ рдмрд╛рд░ рднреА рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдзрдХреЗрд▓реЗрдВрдЧреЗ:

 // Bitcounting trick: // IN CNT CNTBIN // 000 0 00 // 001 1 01 // 010 1 01 // 011 2 10 // 100 1 01 // 101 2 10 // 110 2 10 // 111 3 11 // Magik lookup number = 0b00000000000000001110100110010100 // Least significant ^ // in octal 0164624 


рдЕрдм рд╣рдо рд╕рд░рдгреА рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдмрд╛рд░ рдореЗрдВ 3 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 sum = (0164624 >> ((value& 7)<<1)) & 3; 


рдЗрд╕реА рддрд░рд╣, рд╣рдо рдКрдкрд░реА рдФрд░ рдирд┐рдЪрд▓реА рд░реЗрдЦрд╛рдУрдВ рдкрд░ рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕ рд╕реЗрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╣рдо рдпреЛрдЧ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ - рдордзреНрдп рд░реЗрдЦрд╛ рдореЗрдВ рд╣рдо & 7 рдХреЗ рдмрдЬрд╛рдп 5 рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдПрд░реЗ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдмрд┐рдирд╛ 3 рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ 3 sums рдорд┐рд▓рд╛ред

рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рд╕реЗрд▓ рдХреА рдирдИ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдлрд┐рд░ рд╕реЗ рд╣рдо рдПрдХ рд▓реБрдХрдЕрдк рдЯреЗрдмрд▓ рдХрд░реЗрдВрдЧреЗ, 3 рдмрд┐рдЯреНрд╕ рд░рд╛рд╢рд┐ (рдЕрдзрд┐рдХрддрдо 8), 1 рдмрд┐рдЯ - рдкреБрд░рд╛рдиреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗ:

 /*state_lookup = [ //Old cell state //0 1 0 , 0 // 0 SUM , 0 , 0 // 1 , 0 , 1 // 2 , 1 , 1 // 3 , 0 , 0 // 4 , 0 , 0 // 5 , 0 , 0 // 6 , 0 , 0 // 7 , 0 , 0 // 8 ];*/ state_lookup = 0340; //0b0000000011100000; 


рдЕрдм рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рд╢рд╛рдЦрд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдирдпрд╛ рд░рд╛рдЬреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 (0340 >>> ((sum<<1) | (v2&1)))&1 


рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рд╕реЛрдЪрдирд╛ рд░рд╣ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рднреА 32 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рд╕реЗрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдореЗрдВ рдХрд╛рдо рдХреЛ 2 рднрд╛рдЧреЛрдВ, 16 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдмрд╛рдИрдВ рдУрд░ рджрд╛рдИрдВ рдУрд░ рдХрдо рд╕реЗ рдХрдо 1 рд╕реЗрд▓ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рджрд╛рдПрдВ рд╢рд┐рдлреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрдВрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдЪреНрдЪ рдЕрдВрдХреЛрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╛рдкреНрдд рди рдХрд░реЗрдВ)ред рджреЛрдиреЛрдВ 16-рд╕реЗрд▓ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╛рдкреНрдд 32-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдиреНрдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 need_draw = (new_state ^ data[readpage][y ][x]) & new_state; 

рдФрд░ рдореГрдд:

 need_draw = (new_state ^ data[readpage][y ][x]) & ~new_state; 


рдЕрдЧрд░ рдЬрд╝рд░реВрд░рдд_ рд╡рд╛рдкрд╕ == 0 рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛, рд╣рдо 32 рдмрд┐рдЯреНрд╕ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЕрдВрддрд┐рдо рдХреЛрдб рджреГрд╢реНрдп рд╕реНрд░реЛрдд рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдпрд╣рд╛рдВ рдирд╣реАрдВ рдЖрдЙрдВрдЧрд╛ред

рдореИрдВ рдпрд╣ рднреА рдиреЛрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рджреЗрд╢реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЦреБрд╢ рд▓реЗрдЦрдХреЛрдВ рдореЗрдВ 512 рдПрдХрд▓-рдмрд┐рдЯ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рджреЗрдЦрдиреЗ рдХреА рдореЗрдЬ рд╣реЛ рд╕рдХрддреА рд╣реИ - рд╕реАрдзреЗ 9-рдмрд┐рдЯ рдкреБрд░рд╛рдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдПрдХ рдирдпрд╛ рд░рд╛рдЬреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдПрдХ рд▓реБрдХрдЕрдк рдЯреЗрдмрд▓ 64 рдмрд╛рдЗрдЯреНрд╕ рд▓реЗрддреА рд╣реИ, рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ L1 рдХреИрд╢ рд▓рд╛рдЗрди рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдЧреА ... рдПрд╣, рд╕рдкрдиреЗ, рд╕рдкрдиреЗ ...

рдкрд░рд┐рдгрд╛рдо


рдЕрдВрддрд┐рдо рдЧрддрд┐ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░рддреА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреБрд░рд╛рдиреЗ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рднреА рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░ рд╣реИ (рдПрдиреАрдореЗрд╢рди рдХреЛрдб рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 30 рд╕реЗ рдЕрдзрд┐рдХ рдлреНрд░реЗрдо рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред

рдмреНрд░рд╛рдЙрдЬрд╝рд░рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде рдПрдлрдкреАрдПрд╕рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмрд┐рдирд╛ рдПрдлрдкреАрдПрд╕
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 124731545
IE 9209451
рдХреНрд░реЛрдо 192741210
рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде рдЧрддрд┐ ~ 1.5 рдЧреБрдирд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдлреЙрдХреНрд╕ рдХреНрд░реЛрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИред

рдЖрдк рдпрд╣рд╛рдВ рдЦреБрдж рдХреЛ рдкрд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде , рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ ред

рддреИрдпрд╛рд░ рдлреЙрд░реНрдо рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ ред рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдореЗрд░реА рд╕рд╛рдЗрдЯ рдкрд░ рдХреНрдпрд╛ рдЬрд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВ - рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 3@14.by рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рдореИрдВ рдЖрдкрд╕реЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ...

рдЖрдЧреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЬреАрд╡рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ!

Source: https://habr.com/ru/post/In144237/


All Articles