DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛

"рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддрд╛" рд╕реБрдХрд░рд╛рдд

рдХрд┐рд╕рдХреЗ рд▓рд┐рдП: рдЙрди рдЖрдИрдЯреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдереВрдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЧреЗрдо рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ!

рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдБ: рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ C/C++ рдореЗрдВ рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ!

рдЖрдкрдХреЛ рдпрд╣ рдХреНрдпреЛрдВ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП: рдРрдк рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрд░реА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╣рд░ рд╣рдлреНрддреЗ рдХреЛрдбрд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЦреЗрд▓ рдкрд╕рдВрдж рд╣реИрдВ!

рд╣реИрд▓реЛ рдореЗрд░рд╛ рдирд╛рдо рд╣реИ рдПрдВрдбреНрд░реА рдЧреНрд░реИрдирдХрд┐рди, рдореИрдВ рд▓рдХреНрд╕реЙрдлреНрдЯ рдореЗрдВ рдПрдХ рдбреЗрд╡рдСрдкреНрд╕ рд╣реВрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрд░реА рдХрд╛рд░реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╣рд░ рд╕рдкреНрддрд╛рд╣ рдХреЛрдбрд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЦреЗрд▓ рдкрд╕рдВрдж рд╣реИрдВ!

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

рд╕рд╛рде рд╣реА, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдЧреЗрдо рдЦреЗрд▓рддреЗ рд╕рдордп, рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдЙрди рд╕реНрдерд╛рдиреЛрдВ, рдХрдерд╛рдирдХ, рдкрд╛рддреНрд░реЛрдВ, рдЧреЗрдо рдореИрдХреЗрдирд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдП рдереЗред рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐...

...рдпрд╣ рдЕрдкрдиреА рдЦреБрдж рдХреА рджреБрдирд┐рдпрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдХреЗрд╡рд▓ рдореЗрд░реЗ рдЕрдзреАрдиред рд╡реЗ рд╕рдВрд╕рд╛рд░ рдЬрд╣рд╛рдБ рдореИрдВ рдкрд┐рддрд╛, рдФрд░ рдкреБрддреНрд░, рдФрд░ рдкрд╡рд┐рддреНрд░ рдЖрддреНрдорд╛ рд╣реВрдБ!

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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ C/C++ рдореЗрдВ рдЫреЛрдЯреЗ рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рд╡реНрдпрд╕реНрдд рдорд╛рд╣реМрд▓ рдореЗрдВ рдореБрдЭреЗ рд╢реМрдХ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХрд╣рд╛рдВ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╣реИ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢реБрд░реБрдЖрдд рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдЕрдЬреНрдЮрд╛рдирддрд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА, рдЗрд╕ рд╕рдордп рджреБрдирд┐рдпрд╛ рдХреА рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрд╕реНрд╡реАрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, "рдкреНрд░рд╢рд╛рд╕рди рдЖрдкрдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рджрд┐рдорд╛рдЧ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИ!"ред

рдЕрднреНрдпрд╛рд╕

"рдЕрднреНрдпрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рдЬреНрдЮрд╛рди рдмреЗрдХрд╛рд░ рд╣реИ, рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рдЕрднреНрдпрд╛рд╕ рдЦрддрд░рдирд╛рдХ рд╣реИред" рдХрдиреНрдлреНрдпреВрд╢рд┐рдпрд╕

рдореЗрд░реА рдиреЛрдЯрдмреБрдХ рдореЗрд░реА рдЬрд┐рдВрджрдЧреА рд╣реИ!


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

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдореЗрд░реА (рдкрд╣рд▓реЗ рд╕реЗ рднрд░реА рд╣реБрдИ) рдиреЛрдЯрдмреБрдХред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ. рдЗрд╕рдореЗрдВ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рд░реНрдп, рд╡рд┐рдЪрд╛рд░, рд░реЗрдЦрд╛рдЪрд┐рддреНрд░, рдЖрд░реЗрдЦ, рд╕рдорд╛рдзрд╛рди, рдХрд╛рд▓реА рдмрд╣реАрдЦрд╛рддрд╛ рдкрджреНрдзрддрд┐, рдХреЛрдб рдЗрддреНрдпрд╛рджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореИрдВ рддреАрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ (рдпрд╣ "рдЕрдВрддрд┐рдорддрд╛" рдХреА рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА рдЙрддреНрдкрд╛рдж рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрдВрддрд╣реАрди рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

  • рдкреНрд░реЛрдЬреЗрдХреНрдЯ 0: рдпрд╣ рдпреВрдирд┐рдЯреА рдЧреЗрдо рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C# рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдбреЗрдореЛ 3D рджреГрд╢реНрдп рд╣реИред MacOS рдФрд░ Windows рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП.
  • рдЧреЗрдо 1: рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЧреЗрдо рд╕рд┐рдВрдкрд▓ рд╕реНрдиреЗрдХ (рдЬрд┐рд╕реЗ рд╕рднреА рд▓реЛрдЧ "рд╕реНрдиреЗрдХ" рдХреЗ рдирд╛рдо рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ)ред рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ
  • рдЧреЗрдо 2: рдХрдВрд╕реЛрд▓ рдЧреЗрдо рдХреНрд░реЗрдЬрд╝реА рдЯреИрдВрдХ (рд╕рднреА рдХреЛ "рдЯреИрдВрдХ" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ), рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C++ (рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ 0 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдбреЗрдореЛ

  • рдордВрдЪ: рд╡рд┐рдВрдбреЛрдЬрд╝ (рд╡рд┐рдВрдбреЛрдЬрд╝ 7, 10), рдореИрдХ рдУрдПрд╕ (рдУрдПрд╕ рдПрдХреНрд╕ рдПрд▓ рдХреИрдкрд┐рдЯрди рд╡реА. 10.11.6)
  • рднрд╛рд╖рд╛: C#
  • рдЦреЗрд▓ рдпрдВрддреНрд░: рдПрдХрддрд╛
  • рдкреНрд░реЗрд░рдгрд╛: рдбреИрд░рд┐рди рд▓рд┐рд▓
  • рднрдВрдбрд╛рд░: GitHub

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
3рдбреА рд╕реАрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдбреЗрдореЛ

рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ C/C++ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдпреВрдирд┐рдЯреА рдЧреЗрдо рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C# рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЗрдВрдЬрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдЙрддрдиреА рдорд╛рдВрдЧ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рдерд╛ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди, рдФрд░ рдореБрдЭреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд▓рдЧрд╛ред рдореИрдВрдиреЗ рдЕрдиреНрдп рдЗрдВрдЬрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

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

рдореИрдВрдиреЗ рдпреВрдЯреНрдпреВрдм рдкрд░ 3рдбреА рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╡реАрдбрд┐рдпреЛ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХреА рдмреНрд▓реЗрдВрдбрд░. рдмреНрд▓реЗрдВрдбрд░ 3рдбреА рдореЙрдбрд▓рд┐рдВрдЧ (рдФрд░ рдЕрдзрд┐рдХ) рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░реАрди рдореБрдлреНрдд рдЯреВрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдЭрдЯрдХрд╛ рдореЗрд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ ... рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЙрдбрд▓рд┐рдВрдЧ, рдПрдиреАрдореЗрд╢рди, рдЯреЗрдХреНрд╕рдЪрд░рд┐рдВрдЧ рдмрд╣реБрдд рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИрдВ рдЬрд┐рди рдкрд░ рдЖрдк рдХрд┐рддрд╛рдмреЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред рдЙрдВрдЧрд▓рд┐рдпреЛрдВ, рджрд╛рдВрддреЛрдВ, рдЖрдВрдЦреЛрдВ рдФрд░ рд╢рд░реАрд░ рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдореЙрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢рд░реАрд░ рд░рдЪрдирд╛ рд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЪреЗрд╣рд░реЗ рдХреА рдорд╛рдВрд╕рдкреЗрд╢рд┐рдпрд╛рдБ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИрдВ? рд▓реЛрдЧ рдХреИрд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рд╣рд╛рде, рдкреИрд░, рдЙрдВрдЧрд▓реА, рдкреЛрд░ рдореЗрдВ рд╣рдбреНрдбрд┐рдпрд╛рдБ "рдбрд╛рд▓рдиреА" рдкрдбрд╝реАрдВ!

рд╣рдВрд╕рд▓реА, рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдбреНрдбреА рд▓реАрд╡рд░ рдХреЛ рдореЙрдбрд▓ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдПрдиреАрдореЗрд╢рди рдкреНрд░рд╛рдХреГрддрд┐рдХ рджрд┐рдЦреЗред рдРрд╕реЗ рдкрд╛рдареЛрдВ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ 30 рд╕реЗрдХрдВрдб рдХрд╛ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирд┐рдореЗрдЯреЗрдб рдлрд┐рд▓реНрдореЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди 3рдбреА рдлрд┐рд▓реНрдореЗрдВ рдШрдВрдЯреЛрдВ рддрдХ рдЪрд▓рддреА рд╣реИрдВ! рдФрд░ рдлрд┐рд░ рд╣рдо рд╕рд┐рдиреЗрдорд╛рдШрд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рдХрд╣рддреЗ рд╣реИрдВ: тАЬрддрд╛, рдПрдХ рдШрдЯрд┐рдпрд╛ рдХрд╛рд░реНрдЯреВрди/рдлрд┐рд▓реНрдо! рд╡реЗ рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рдереЗ...'' рдореВрд░реНрдЦ!

рдФрд░ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдФрд░ рдмрд╛рддред рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдЧрдгрд┐рддреАрдп рдерд╛ред рдпрджрд┐ рдЖрдк рджреГрд╢реНрдп рдЪрд▓рд╛рддреЗ рд╣реИрдВ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдВрдХ), рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрдорд░рд╛ рдПрдХ рдЧреЛрд▓реЗ рдореЗрдВ рд▓рдбрд╝рдХреА рдХреЗ рдЪрд░рд┐рддреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдорддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреИрдорд░рд╛ рд░реЛрдЯреЗрд╢рди рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕рд░реНрдХрд▓ (2 рдбреА) рдкрд░ рд╕реНрдерд┐рддрд┐ рдмрд┐рдВрджреБ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рдереА, рдФрд░ рдлрд┐рд░ рдЧреЛрд▓реЗ (3 рдбреА) рдкрд░ред рдордЬреЗрджрд╛рд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдХреВрд▓ рдореЗрдВ рдореБрдЭреЗ рдЧрдгрд┐рдд рд╕реЗ рдирдлрд░рдд рдереА рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╢реВрдиреНрдп рднрд╛рд╡ рд╕реЗ рдЬрд╛рдирддрд╛ рдерд╛ред рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ, рд╢рд╛рдпрдж, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреВрд▓ рдореЗрдВ рд╡реЗ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрд╛рддреЗ рдХрд┐ рдпрд╣ рдЧрдгрд┐рдд рдЬреАрд╡рди рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп, рд╕рдкрдиреЗ рдХреЗ рдкреНрд░рддрд┐ рдЖрд╕рдХреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдорди рд╕рд╛рдлрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рдХрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ! рдФрд░ рдЖрдк рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд░реЛрдорд╛рдВрдЪрдХ рд╕рд╛рд╣рд╕рд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ: "рдареАрдХ рд╣реИ, *рдкреНрд░рд┐рдп* рдЧрдгрд┐рддрдЬреНрдЮ рдЖрдо рддреМрд░ рдкрд░ рдпрд╣ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХреЗ рдХрд┐ рдЗрди рд╕реВрддреНрд░реЛрдВ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рдХрд╣рд╛рдБ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?"

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдПрдХ рд╡реГрддреНрдд рдФрд░ рдПрдХ рдЧреЛрд▓реЗ рдкрд░ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░реЛрдВ рдХреА рдЧрдгрдирд╛ (рдореЗрд░реА рдиреЛрдЯрдмреБрдХ рд╕реЗ)

рдЦреЗрд▓ 1

  • рдордВрдЪ: рд╡рд┐рдВрдбреЛрдЬрд╝ (рд╡рд┐рдВрдбреЛрдЬрд╝ 7 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛)
  • рднрд╛рд╖рд╛: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢реБрджреНрдз рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛
  • рдЦреЗрд▓ рдпрдВрддреНрд░: рд╡рд┐рдВрдбреЛрдЬрд╝ рдХрдВрд╕реЛрд▓
  • рдкреНрд░реЗрд░рдгрд╛: javidx9
  • рднрдВрдбрд╛рд░: GitHub

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рд╕рд░рд▓ рд╕рд╛рдБрдк рдЦреЗрд▓

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

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

рдЧреЗрдо рд▓реВрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

int main()
   {
      Setup();
      // a game loop
      while (!quit)
      {
          Input();
          Logic();
          Draw();
          Sleep(gameSpeed);  // game timing
      }
      return 0;
   }

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

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдЦреЗрд▓ рдЪрдХреНрд░. рдиреЛрдЯрдкреИрдб рдореЗрдВ рд╕рд╛рдБрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ

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

рд╕реНрдХреНрд░реАрди рдмрдлрд╝рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (рдпрджрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд╣ рд╕рдХреВрдБ):

// create screen buffer for drawings
   HANDLE hConsole = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0,
 							   NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
   DWORD dwBytesWritten = 0;
   SetConsoleActiveScreenBuffer(hConsole);

рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рд╛рдЗрди рд╕реНрдХреЛрд░рд▓рд╛рдЗрди (рд╕реНрдХреЛрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди) рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реАрдзрд╛ рдЖрдЙрдЯрдкреБрдЯ:

// draw the score
   WriteConsoleOutputCharacter(hConsole, scoreLine, GAME_WIDTH, {2,3}, &dwBytesWritten);

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

рдЦреЗрд▓ 2 рдкрд╛рдЧрд▓ рдЯреИрдВрдХ

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдкрд╛рдЧрд▓ рдЯреИрдВрдХ рдЦреЗрд▓

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

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

рддреЛ, рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдЬреЛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдХреЗрд╡рд▓ рдЧрддрд┐рд╢реАрд▓ рд░рдВрдЧреАрди рдЖрдпрддреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдЖрдпрддрд╛рдХрд╛рд░ рд╕реЗрдЯ

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

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдЧреЗрдо рдЯреИрдВрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдЧреЗрдо рдЯреИрдВрдХ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рджреНрд╡рд╛рд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдПрдХ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгрд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдг

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

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдПрдХ рдбрдмрд▓ рд▓реВрдк рдореЗрдВ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛ред Y рдкрдВрдХреНрддрд┐ рдЖрдИрдбреА рд╣реИ, X рд╕реНрддрдВрдн рдЖрдИрдбреА рд╣реИ

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ i, j рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ x рдФрд░ y рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рддреЛ, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдФрд░ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдВрдХрди рд╕реЗ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рдЫрд╡рд┐ рдХреЗ рд╕рдордиреНрд╡рдп рдЕрдХреНрд╖реЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдкрд┐рдХреНрд╕рд▓, рд░рдВрдЧ рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реЗрдЪрдбрд┐рдмрд┐рдЯреНрд╕ рдлрд╝рдВрдХреНрд╢рди (рд╣реЗрдбрд░: рд╡рд┐рдВрдбреЛрдЬрд╝.рдПрдЪ; рд▓рд╛рдЗрдмреНрд░реЗрд░реА: gdi32.lib) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╡рд╣ рдЙрдкрдХрд░рдг рдЬрд┐рд╕ рдкрд░ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдХрдВрд╕реЛрд▓ рд╣реИ), рдЫрд╡рд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдЗрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ рдФрд░ рдЫрд╡рд┐ рд╕реНрд╡рдпрдВ рдПрдХ рдмрд┐рдЯрдореИрдк (рдмрд┐рдЯрдореИрдк) рдХреЗ рд░реВрдк рдореЗрдВ, рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рдЯрдореИрдк!

рдХрд╛рдо рдкрд░ StretchDIBits() рдлрд╝рдВрдХреНрд╢рди:

// screen output for game field
   StretchDIBits(
               deviceContext,
               OFFSET_LEFT, OFFSET_TOP,
               PMATRIX_WIDTH, PMATRIX_HEIGHT,
               0, 0,
               PMATRIX_WIDTH, PMATRIX_HEIGHT,
               m_p_bitmapMemory, &bitmapInfo,
               DIB_RGB_COLORS,
               SRCCOPY
               );

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

рдПрдХ m_p_bitmapMemory рдмрд┐рдЯрдореИрдк рдмрдирд╛рдирд╛:

// create bitmap
   int bitmapMemorySize = (PMATRIX_WIDTH * PMATRIX_HEIGHT) * BYTES_PER_PIXEL;
   void* m_p_bitmapMemory = VirtualAlloc(0, bitmapMemorySize, MEM_COMMIT, PAGE_READWRITE);

рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╣реЗрдВ рддреЛ, рдмрд┐рдЯрдореИрдк рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдПрдХ RGB рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИред рдПрдХ рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рд▓рд╛рд▓ рдорд╛рди, рдПрдХ рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рд╣рд░рд╛ рдорд╛рди (рдЬреА), рдФрд░ рдПрдХ рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рдиреАрд▓рд╛ рд░рдВрдЧ (рдмреА)ред рд╕рд╛рде рд╣реА, рдкреНрд░рддрд┐ рдЗрдВрдбреЗрдВрдЯ рдПрдХ рдмрд╛рдЗрдЯ рд╣реИред рдпреЗ рддреАрди рд░рдВрдЧ - рд▓рд╛рд▓ / рд╣рд░рд╛ / рдиреАрд▓рд╛ (рдЖрд░рдЬреАрдмреА) - рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ - рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдкрд┐рдХреНрд╕реЗрд▓ рд░рдВрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

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

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

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

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

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

рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рдЯрдореИрдк рднрд░рдирд╛:

// set pixel map variables
   int colorIndex;
   COLORREF color;
   int pitch;
   uint8_t* p_row;
 
   // arrange pixels for game field
   pitch = PMATRIX_WIDTH * BYTES_PER_PIXEL;     // row size in bytes
   p_row = (uint8_t*)m_p_bitmapMemory;       //cast to uint8 for valid pointer arithmetic
   							(to add by 1 byte (8 bits) at a time)   
   for (int y = 0; y < PMATRIX_HEIGHT; ++y)
   {
       uint32_t* p_pixel = (uint32_t*)p_row;
       for (int x = 0; x < PMATRIX_WIDTH; ++x)
       {
           colorIndex = mainDigitalMatrix[y * PMATRIX_WIDTH + x];
           color = Utils::GetColor(colorIndex);
           uint8_t blue = GetBValue(color);
           uint8_t green = GetGValue(color);
           uint8_t red = GetRValue(color);
           uint8_t pixelPadding = 0;
 
           *p_pixel = ((pixelPadding << 24) | (red << 16) | (green << 8) | blue);
           ++p_pixel;
       }
       p_row += pitch;
   }

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

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

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

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

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

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдЯреИрдВрдХ рдЫрд╡рд┐ рдбрд┐рдЬрд╛рдЗрди. рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдВрдХ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдХрд┐рддрдиреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдШреЗрд░рдиреЗ рдЪрд╛рд╣рд┐рдП рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдЕрдкрдиреА рдзреБрд░реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЯреИрдВрдХ рдХреЗ рдШреВрдордиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рд╕реВрддреНрд░реЛрдВ рдХреА рдЧрдгрдирд╛

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдореЗрд░реЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЖрд░реЗрдЦ (рд╕рдВрднрд╡рддрдГ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╡рд╛рд▓рд╛)ред рд╕рдВрдЧреНрд░рд╣ рдПрдХ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ

DevOps C++ рдФрд░ "рд░рд╕реЛрдИ рдпреБрджреНрдз", рдпрд╛ рдХреИрд╕реЗ рдореИрдВрдиреЗ рднреЛрдЬрди рдХрд░рддреЗ рд╕рдордп рдЧреЗрдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛
рдФрд░ рдпреЗ рдЦреЗрд▓ рдореЗрдВ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░рд░реНрдердХ рдкреНрд░рдпрд╛рд╕ рд╣реИрдВ

╨в╨╡╨╛╤А╨╕╤П

"рд╣рдЬрд╛рд░реЛрдВ рдореАрд▓ рдХреА рдпрд╛рддреНрд░рд╛ рднреА рдкрд╣рд▓реЗ рдХрджрдо рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ" (рдкреНрд░рд╛рдЪреАрди рдЪреАрдиреА рдЬреНрдЮрд╛рди)

рдЖрдЗрдП рдЕрднреНрдпрд╛рд╕ рд╕реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдУрд░ рдЪрд▓реЗрдВ! рдЖрдк рдЕрдкрдиреЗ рд╢реМрдХ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ?

  1. рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрдлрд╕реЛрд╕, рдпрд╣ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣реИ)ред
  2. рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдЪреВрдирдирд╛ред
  3. рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА "рдЕрдирд╛рд╡рд╢реНрдпрдХ" рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░реЗрдВред
  4. рд╣рд░ рджрд┐рди рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдХреА рдУрд░ рдмрдврд╝реЗрдВред
  5. рдпрд╣ рдЙрдореНрдореАрдж рди рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕реА рд╢реМрдХ рдХреЗ рд▓рд┐рдП рджреЛ рдпрд╛ рддреАрди рдШрдВрдЯреЗ рдХрд╛ рдЦрд╛рд▓реА рд╕рдордп рд╣реЛрдЧрд╛ред

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

рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реБрдирд╣рд░рд╛ рдирд┐рдпрдо рд╣реИ: рдХрднреА рднреА 0% рджрд┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЗрдВрдбреА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓реЗрдЦ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ред рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╣рд░ рджрд┐рди рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рди рдХреБрдЫ рдХрд░реЗрдВред рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХрд┐рддрдирд╛ рдХрдорд╛рддреЗ рд╣реИрдВред рдПрдХ рд╢рдмреНрдж рдпрд╛ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦреЗрдВ, рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ, рдпрд╛ рдмреЛрд░реНрдб рдореЗрдВ рдПрдХ рдХреАрд▓ рдареЛрдВрдХ рджреЗрдВтАФрдмрд╕ рдХреБрдЫ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рд╣реИ. рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ, рддреЛ рд╕рдВрднрд╡рддрдГ рдЖрдк рдЬрд┐рддрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдЙрд╕рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдХрд░реЗрдВрдЧреЗред рддреЛ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдХреА рдУрд░ рдмрдврд╝реЗрдВрдЧреЗ рдФрд░, рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЗрдВ, рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдкрд░ рдореБрдЦреНрдп рдмреНрд░реЗрдХ рд╡рд┐рд▓рдВрдм рд╣реА рд╣реИред

рдФрд░ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ 5, 10, 15 рдорд┐рдирдЯ рдореЗрдВ рд╕рдордп рдХреЗ рдореБрдлреНрдд "рдЪреВрд░рд╛" рдХреЛ рдХрдо рдирд╣реАрдВ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рдпрд╛ рджреЛ рдШрдВрдЯреЗ рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдмрдбрд╝реЗ "рд▓реЙрдЧ" рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдХреНрдпрд╛ рдЖрдк рд▓рд╛рдЗрди рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВ? рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЛрдЪреЗрдВ. рдХреНрдпрд╛ рдЖрдк рдПрд╕реНрдХреЗрд▓реЗрдЯрд░ рдкрд░ рдЪрдврд╝ рд░рд╣реЗ рд╣реИрдВ? рдПрдХ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рдХреБрдЫ рд▓рд┐рдЦреЗрдВ. рдХреНрдпрд╛ рдЖрдк рдмрд╕ рдореЗрдВ рдЦрд╛рдирд╛ рдЦрд╛рддреЗ рд╣реИрдВ? рдареАрдХ рд╣реИ, рдХреБрдЫ рд▓реЗрдЦ рдкрдврд╝реЗрдВред рд╣рд░ рдЕрд╡рд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ. YouTube рдкрд░ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдФрд░ рдХреБрддреНрддреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдмрдВрдж рдХрд░реЗрдВ! рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдордд рдХрд░реЛ!

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

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

рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП рдорд╛рд░реНрдЧ рдкрд░ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ! рдФрд░ рдЖрдЗрдП рджреБрдирд┐рдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреЗрд╢реЗрд╡рд░ рдмрдирд╛рдПрдВред

рд▓реЗрдЦрдХ: рдЧреНрд░реИрдирдХрд┐рди рдПрдВрдбреНрд░реА, рдбреЗрд╡рдСрдкреНрд╕



рд╕реНрд░реЛрдд: www.habr.com