
рд╢реБрдн рджрд┐рди, рджреЛрд╕реНрддреЛрдВ!
рд╣рд╛рд▓ рд╣реА рдореЗрдВ "рдореИрдЯреНрд░рд┐рдХреНрд╕" рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ред рдПрдХ рд╢рд╛рдВрдд рдлрд┐рд▓реНрдо рдХреНрдпрд╛ рд╣реИ (рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рднрд╛рдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ) рд╕реБрдиреЛред рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдореИрдВрдиреЗ рдЙрдирдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд┐рддреНрд░рд▓рд┐рдкрд┐ рдХреЗ рд╕рд╛рде "рдЧрд┐рд░ рд░рд╣реА" рд▓рд╛рдЗрдиреЛрдВ рдХреА рдУрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ (рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ "рдЙрдирдХреЗ" рд╢рдмреНрдж рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛)ред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ... рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓ (рдХреНрдпреЛрдВрдХрд┐ рдЖрд▓рд╕реНрдп)ред рдореБрдЭреЗ рдпрд╣реА рдорд┐рд▓рд╛ рд╣реИред
рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ
рдорд╛рд░реНрдХрдЕрдк рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<body style="margin: 0; background: #000; overflow: hidden;"> <canvas></canvas> </body>
рдХреИрдирд╡рд╕, рд╕рдВрджрд░реНрдн, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рдмрд╛рдж рдмрдирд╛рддреЗ рд╣реИрдВ:
const C = document.querySelector("canvas"), $ = C.getContext("2d"), W = C.width = innerWidth, H = C.height = innerHeight
рд╣рдо рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдореБрдЭреЗ рдЪрд┐рддреНрд░рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП, рдореБрдЭреЗ рд╕рд╛рдЗрд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдЪрд╛рд╣рд┐рдП!)ред рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рдЕрд░реИ рдореЗрдВ рдмрджрд▓реЗрдВред рд╕реНрдерд╛рди рд╕реНрддрдВрднреЛрдВ рдореЗрдВ voids рджреЗрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:
const str = "+0-1=2 3 4 5 6 7 8 9 ! ? ., :;", matrix = str.split('')
рд╣рдо рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░, рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╕рд╛рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ y рд╕рдордиреНрд╡рдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ:
let font = 11,
рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рднрд░реЗрдВ:
for(let i = 0; i < col; i++) arr[i] = 1
рд╕рдм рдХреБрдЫ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЖрд░рдВрдн рдХрд░рдирд╛:
function draw() {
рд╣рдо рдкреНрд░рддреНрдпреЗрдХ 123 рдорд┐рд▓реАрд╕реЗрдХрдВрдб (рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛) рдбреНрд░рд╛рдЗрдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
setInterval(draw, 123)
рдЕрдВрдд рдореЗрдВ, рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддреЗ рд╕рдордп, рд╣рдо рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ (рдЖрд▓рд╕реНрдп рдХреЗ рд▓рд┐рдП):
window.addEventListener('resize', () => location.reload())
рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рд╕рдордп-рд╕рдордп рдкрд░ рдХреЙрд▓рдо рдПрдХ рд╕рд╛рде рдЪрд┐рдкрдХрддреЗ рд╣реИрдВ, рд╡реЗ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд▓рдЧрднрдЧ рдлреНрд▓рд╢ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдзрд╛рд░рдгрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ: рдЖрдВрдЦ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рдкрдХ рдЬрд╛рддреА рд╣реИред рдЕрд░рд╛рдЬрдХрддрд╛, рдпрд╛ рдХреБрдЫ рдФрд░ рдХреА рдХрдореА рд╣реИред рдПрдХ рдпреЛрдЧреНрдп рд╕рдорд╛рдзрд╛рди рдЕрднреА рддрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдСрд▓ рдж рдмреЗрд╕реНрдЯред