HTML, CSS рдФрд░ JavaScript рдореЗрдВ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо

рдПрдХ рдмрд╛рд░, рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╣реЗрдХреНрд╕рдмрдЧ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рдЪрд╛рд░ рд╕рдорд╛рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдПрдХ рдЦрд┐рд▓реМрдирд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрджрд╛ рд╣реБрдЖред

рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╕рд╛рдп рд╕реЗ, рдореИрдВ рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЦреЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ HTML, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ - рд╣рд░ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рдЙрдкрдХрд░рдгред рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлреНрд▓реИрд╢ рдпрд╛ рдХреИрдирд╡рд╛рд╕ рднреА рдирд╣реАрдВред рдпрд╣ рдХрдЯреНрдЯрд░ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, HTML + CSS3 рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд▓рдЪреАрд▓рд╛ рджреГрд╢реНрдп рдЙрдкрдХрд░рдг рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЧреЗрдо рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдПрдХ рдЦреБрд╢реА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЦреЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЗ рд╕рд╛рде рд╣реЛ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ - рдХреЛрдИ рдбреНрд░рд╛рдлреНрдЯ, рдХрд╛рд░реНрдб рдЧреЗрдо, рдЯрд░реНрди-рдЖрдзрд╛рд░рд┐рдд рд░рдгрдиреАрддрд┐ рдирд╣реАрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ рдЖрдВрджреЛрд▓рди рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:







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







рдЧреЗрдордкреНрд▓реЗ



рдЦреЗрд▓ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреАрдбрд╝реЗ рдХреА рдЕрдкрдиреА рдХреЙрд▓реЛрдиреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рднреА рджреБрд╢реНрдорди рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рд╣реИред рдмреАрдЯрд▓реНрд╕ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рджреМрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдХрд╛рдо рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рднреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдмреЛрдирд╕ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдирдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИред



рдЦреЗрд▓ рдореЗрдВ рдмреЛрдирд╕:

рдХрдкрдХреЗрдХ - 5xp рджреЗрддрд╛ рд╣реИ, рдЬрдм 15xp рдмреАрдЯрд▓ рдЧреБрдгрд╛ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ

рд╕реЗрдм - 50hp рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдмреАрдЯрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд╕реНрде рд╣реИ рддреЛ рдпрд╣ 15 рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдЪрдкреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ

рдХрд╛рд▓реА рдорд┐рд░реНрдЪ - рд╣рдорд▓реЗ рдХреЛ 5MM рдмрдврд╝рд╛рддрд╛ рд╣реИ

рдмрд▓реВрдд - рдирд┐рдХрдЯрддрдо рджреБрд╢реНрдорди рдкрд░ 2xp рдФрд░ рдлреЗрдВрдХрддрд╛ рд╣реИ, рд╣рд┐рдЯ рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдкрд▓ рдХреНрд╖рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ

рдлреНрд▓рд╛рдИ рдПрдЧрд╛рд░рд┐рдХ - 1xp рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЬрд╝рд╣рд░реАрд▓реЗ рд╢реЙрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдм рд╣рд┐рдЯ 1/2 рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдкреАрдбрд╝рд┐рдд рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ





2 рд╕реЗ 4 рд▓реЛрдЧреЛрдВ рд╕реЗ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдмрд╕ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдпрд╣рд╛рдВ рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдЧреАрдереВрдм рдкрд░ рд╕реВрддреНрд░ред

рдЦреЗрд▓ рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рд▓реЗрдЦ ред



рдЧреНрд░рд╛рдлрд┐рдХреНрд╕



HTML рдФрд░ CSS рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИрдВ, рдЬрдм рдпрд╣ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЧреЗрдореНрд╕ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдПрдХ рдЦрд┐рд▓реМрдирд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд┐рдЦрдирд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЕрдВрдд рдореЗрдВ, рдЦреЗрд▓ рдХреЗ рдореБрдЦреНрдп рджреГрд╢реНрдп рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ "рд╕рдВрдХреАрд░реНрдг рдХреНрд╖рдг" рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



2 рдбреА рдЧреЗрдо рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╣рд┐рд▓рдиреЗ, рдШреБрдорд╛рдиреЗ рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ: рдкреВрд░реНрдг рдФрд░ рдмрд╛рдПрдВ рдФрд░ рд╢реАрд░реНрд╖ рдХреЛ рдмрджрд▓рдирд╛







рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : рд░реЛрдЯреЗрдЯ рдХрд░реЗрдВ ред рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде : рдЙрддреНрдкрддреНрддрд┐, рдЖрдк рд░реЛрдЯреЗрд╢рди рдХреА рдзреБрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣реИ)ред







рдкреИрдорд╛рдиреЗ рдкрд░, рдкреГрд╖реНрдарднреВрдорд┐-рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓реЗрдВ:







рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг



рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЗрд╕рд▓рд┐рдП рдЪрд┐рдХрдиреА рдПрдиреАрдореЗрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреАрди рдЖрдпрд╛рдореА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рдЕрдм рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди 3, рд░реЛрдЯрд╛ 3 рдбреА рдФрд░ рд╕реНрдХреЗрд▓ 3 рдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореВрд╡рд┐рдВрдЧ, рд░реЛрдЯреЗрдЯрд┐рдВрдЧ рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд░реЗрдВ:















рдпреЗ рд╕рднреА рдСрдкрд░реЗрд╢рди "рдкреЗрдВрдЯ" рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдХрдИ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рд╕реЗ рдЧреЗрдо рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереЗред



рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рди



рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рд╣реЛрдЧреАред

рдмреБрдбреЗрд╕реЗрд░реЗрдирд╛ рдореЗрдВ, рд╕рдВрдкреВрд░реНрдг рд╕рдВрдкрд░реНрдХ рд╕реНрдкреНрд░рд┐рдЯ рдЯрдХрд░рд╛рд╡реЛрдВ рд╕реЗ рдирд┐рдкрдЯ рд░рд╣рд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рдм рдХреБрдЫ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЦреБрдж рдХреЛ рд╕реНрдХреВрд▓реА рдЧрдгрд┐рдд рддрдХ рд╕реАрдорд┐рдд рд░рдЦрддреЗ рд╣реИрдВред

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







рд╣рдореЗрдВ рд╕реВрддреНрд░ рдорд┐рд▓рддрд╛ рд╣реИ:







рдЕрдм, рдЗрд╕ рд╕рд░рд▓ рд╕реВрддреНрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдХрдИ рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд╕реНрддреБ рдХреА рджреВрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛, рдирд┐рдХрдЯрддрдо рдФрд░ рд╕рдмрд╕реЗ рджреВрд░рд╕реНрде рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛, рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рддреНрд░рд┐рдЬреНрдпрд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЦреЛрдЬрдирд╛, рдФрд░ рдПрдХ рдЪрдХреНрд░ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЯрдХрд░рд╛рд╡ рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛рдирд╛ред

рдЦреЗрд▓ рдХреА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЖрдХрд╛рд░ 20x20 рдХреЗ рдЫреЛрдЯреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЯрдХрд░рд╛рд╡ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рд╕рднреА 20 рдХреЗ рд╡реНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ рдЦреБрджреЗ рд╣реБрдП рдереЗред рдлрд┐рд░ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ 2 рдСрдмреНрдЬреЗрдХреНрдЯ рдЯрдХрд░рд╛ рдЧрдП рдЬрдм рдЙрдирдХреЗ рдХреЗрдВрджреНрд░реЛрдВ рдХреА рджреВрд░реА рдЙрдирдХреЗ рд░реЗрдбреА рдХреЗ рдпреЛрдЧ рд╕реЗ рдХрдо рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИред







рдФрд░ рдХреБрдЫ рдФрд░ рдиреЛрдЯ:





рд╡реЗрдХреНрдЯрд░ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг
//  function Vec (x_, y_) { if (typeof x_ == 'object') { this.setV(x_); return; } this.x= typeof x_ == 'number' ? x_ : 0; this.y= typeof y_ == 'number' ? y_ : 0; } Vec.prototype = { //   0 setZero: function() { this.x = 0.0; this.y = 0.0; }, //   x  y set: function(x_, y_) {this.x=x_; this.y=y_;}, //     setV: function(v) { this.x=vx; this.y=vy; }, //   negative: function(){ return new Vec(-this.x, -this.y); }, //   copy: function(){ return new Vec(this.x,this.y); }, //    add: function(v) { this.x += vx; this.y += vy; return this; }, //   mubtract: function(v) { this.x -= vx; this.y -= vy; return this; }, //    multiply: function(a) { this.x *= a; this.y *= a; return this; }, //    div: function(a) { this.x /= a; this.y /= a; return this; }, //    length: function() { return Math.sqrt(this.x * this.x + this.y * this.y); }, //   (     = 1) normalize: function() { var length = this.length(); if (length < Number.MIN_VALUE) { return 0.0; } var invLength = 1.0 / length; this.x *= invLength; this.y *= invLength; return length; }, //    angle: function () { var x = this.x; var y = this.y; if (x == 0) { return (y > 0) ? (3 * Math.PI) / 2 : Math.PI / 2; } var result = Math.atan(y/x); result += Math.PI/2; if (x < 0) result = result - Math.PI; return result; }, //      (     ) distanceTo: function (v) { return Math.sqrt((vx - this.x) * (vx - this.x) + (vy - this.y) * (vy - this.y)); }, //      x,y     x,y   vectorTo: function (v) { return new Vec(vx - this.x, vy - this.y); }, //      rotate: function (angle) { var length = this.length(); this.x = Math.sin(angle) * length; this.y = Math.cos(angle) * (-length); return this; } };
      
      









рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд╛рд╕ рдкреИрдЯрд░реНрди



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

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



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдмреНрд▓реЙрдХ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЧреЗрдо рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рджрд┐рдП рдЧрдП рд╕реНрдерд╛рди рдкрд░ рд░рдЦреЗрдВ:

  game.create('Block', {x: 100, y: 150});
      
      







рд╡рд┐рдзрд┐ рдХреЛрдб рдмрдирд╛рдПрдБ:

  create: function (objectName, params) { //             Game.classes //       Game.classes var object = new Game.classes[objectName](params); //     object.id = ++this.idx; //       object.game = this; //        this.objects[object.id] = object; //          //        if (object.isColliding) this.collidingObjects[object.id] = object; //          //     birth,       object.birth(); //    return object; },
      
      







рдЧреЗрдо рдХрд╛рд░реНрдб рдмрдирд╛рдирд╛



рдЗрд╕рд▓рд┐рдП, рдЬрдм рдЦреЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдХрдИ рдЧреЗрдо рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рд╡рд┐рд╡рд┐рдзрддрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рднреА рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ (рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж рдХреЙрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐) рдмрд╣реБрдд рдердХрд╛ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдФрд░ рдкреНрд░рд┐рдп рд╣реИред рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░ рд╕рдВрдкрд╛рджрдХ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ - рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдпрд╛ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



  !function () { var WIDTH = 20; var HEIGHT = 12; var B = 'Block'; var P = 'Bonus'; var MAP = [ , , , , , , , , , , , , , , , , , , , , , B, , B, , B, B, B, , B, , , , B, , , , B, B, B, , B, , B, , B, , , , B, , , , B, , , , B, , B, , B, B, B, , B, B, B, , B, , , , B, , , , B, , B, , B, , B, , B, , , , B, , , , B, , , , B, , B, , B, , B, , B, B, B, , B, B, B, , B, B, B, , B, B, B, , , , , , , , , , , , , , , , , , , , , , B, , B, , B, B, B, , B, B, B, , B, B, B, , , , , , B, , B, , B, , B, , B, , B, , B, , B, , , , , , B, B, B, , B, B, B, , B, B, , , B, B, , , , , , , B, , B, , B, , B, , B, , B, , B, , B, , , , , , B, , B, , B, , B, , B, B, B, , B, , B, , P, , , ]; Game.maps['Hello'] = Game.Map.extend({ build: function () { var blockSize = 20; for (var i = 0; i < HEIGHT; i++) { for (var j = 0; j < WIDTH; j++) { var index = WIDTH * i + j; if (MAP[index]) this.game.create(MAP[index], {x: blockSize * j, y: blockSize * i}); } } } }) }();
      
      





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







рдиреЗрдЯрд╡рд░реНрдХ рдХреЛрдб



рдиреЗрдЯрд╡рд░реНрдХ рдХреЛрдб рдХреЛ рд╕реЙрдХреЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЧреЗрдо рд╕рд░реНрд╡рд░ рдиреЛрдбрдЬ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдиреЗрдЯрд╡рд░реНрдХ рдЧреЗрдо рдХрд╛ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕ рд╢рд░реНрдд рдХреЗ рд╕рд╛рде рдХрд┐ рдХреЗрд╡рд▓ рдЯреАрд╕реАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдпрд╣ рдЕрднреА рднреА рдПрдХ рдХрд╛рдо рд╣реИред

рдЕрдм рд╡реЗ рдРрд╕реЗ рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рдпреВрдбреАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдХреЛрдИ рдордЬрдмреВрдд рдЗрдЪреНрдЫрд╛ рд╣реИ рддреЛ рдЖрдк рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЦреЗрд▓ рдорд░реЛрдбрд╝рддреЗ рдмрд┐рдирд╛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдкрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕рд░рд▓ рд╣реЛрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рд╕реЗ рдирд┐рдкрдЯреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЦреЗрд▓ рдХрд╛ рдкрд╛рдареНрдпрдХреНрд░рдо рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╡рд╣ рдЦреЗрд▓ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рдЦреЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд┐рд░реНрдл рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ - рдЦрд┐рд▓рд╛рдбрд╝реА рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ / рдЦреЗрд▓ рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ



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







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



рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдЧреНрд░рд╛рд╣рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХреИрд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдП? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдмреЛрдирд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╣реА рдЬрдЧрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреАрдЯрд▓ рдмрд╣реБрдд рд╣реА рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдиреЗ рд░рди рдХреА рджрд┐рд╢рд╛ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдм "рдЕрд░рд╛рдЬрдХрддрд╛" рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рднреА рдХреЛ рдПрдХ рд╣реА рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрд╣рд╛рдВ рднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рд▓рд┐рдП Math.random рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ pseudorandom рдирдВрдмрд░ рдЬрдирд░реЗрдЯрд░ (PRNG) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ - рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдорд┐рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдирдВрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡реЗрдЬ PRNG рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдкрд░ pseudorandom рдирдВрдмрд░ рдХреЗ рд╕рдорд╛рди рдХреНрд░рдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рдРрд╕реЗ PRNG рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд┐рд▓рд░ рдкрд╛рд░реНрдХ рдЬреЗрдирд░реЗрдЯрд░ рд╣реИред

рдЬреЗрдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:



  var ParkMillerGenerator = function (initializer) { this.a = 16807; this.m = 2147483647; this.val = initializer || Math.round(2147483647 / 3); } ParkMillerGenerator.prototype = { next: function () { this.val = (this.a * this.val) % this.m; return (this.val / 1000000) % 1; } }
      
      







рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  var initializer = 333; //   ,        var gen = new ParkMillerGenerator(initializer); //   gen.next(); // 0.5967310000000001 gen.next(); // 0.46109599999999773 gen.next(); // 0.07891199999994569;
      
      







рд╣рдо рдиреЛрдбрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕реЗрд╡рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ



рд╢рд╛рдпрдж рдереЛрдбрд╝реА рджреВрд░, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдПрдХ рдЙрдкрдпреЛрдЧреА рдиреЛрдЯред рдЬрдм рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдирд┐рд░рдВрддрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдбрд╝рд╛рдИ рдорд╢реАрди рдкрд░ рдЪрд▓рд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдмрдВрдЯреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо /etc/init.d рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдмрдЧрд╕рд░реЗрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ "BEGIN INIT INFO" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдмреНрд▓реЙрдХ рдХреЗрд╡рд▓ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



 #!/bin/sh ### BEGIN INIT INFO # Provides: bugsarena # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the bugsarena servers # Description: starts the bugsarena servers ### END INIT INFO #        (  ) NODE=/usr/bin/node DAEMON_SERVER=/home/me/projects/bugs-arena/server/server.js SERVER_PARAMS="name=Arena-Dogfight map=Dogfight port=8090" NAME=bugsarena DESC="bugsarena servers" #    3  - start, stop  restart. #     start() { #  nodejs        pid   start-stop-daemon --start --make-pidfile --background --pidfile /var/run/$NAME-server.pid \ --exec $NODE -- $DAEMON_SERVER $SERVER_PARAMS } stop() { #  nodejs  echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME-server.pid } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 1 start ;; *) echo "Usage: $NAME {start|stop|restart}" >&2 exit 1 ;; esac exit 0
      
      







рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╣реИрдВред

 sudo chmod +x bugsarena
      
      







рдЕрдм рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕реЗрд╡рд╛ рдмрдЧрд╕рд░реЗрдирд╛ рд╢реБрд░реВ
рдФрд░
рд╕реЗрд╡рд╛ рдмрдЧрд╕рд░реЗрдирд╛ рдмрдВрдж рдХрд░реЛ
рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрдк рд╕рд┐рд╕реНрдЯрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЧреЗрдо рд╕рд░реНрд╡рд░ рд╕реНрдЯрд╛рд░реНрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЕрджреНрдпрддрди- rc.d рдмрдЧрд╕рд░реЗ рдЪреВрдХ




рдПрдХреНрд╕рдПрд╕рдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛!



рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рдмрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╣рдорд▓реЗ рдХреЛ рдпрд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд┐рд╡ рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИред рдФрд░ "<рд╕реНрдХреНрд░рд┐рдкреНрдЯ> рдЕрд▓рд░реНрдЯ" ('рд╡рд╛рд╕рд╛ рдЧреЗрдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ!') </ Script> рдирд╛рдо рд╡рд╛рд▓рд╛ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣рдорд╛рд░реЗ рдЧреЗрдо рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЙрдирдХрд╛ рдирд╛рдо рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде div рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдПрдХ рдХрд╖реНрдЯрдкреНрд░рдж рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИред рдФрд░ рдпреЗ рдЕрднреА рднреА рдлреВрд▓ рд╣реИрдВред XSS рднреЗрджреНрдпрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рд╕реНрдХреНрд░реАрдирд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред



All Articles