DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ

"рдорд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдорд▓рд╛рдИ рдХреЗрд╣рд┐ рдерд╛рд╣рд╛ рдЫреИрди" рд╕реЛрдХреНрд░реЗрдЯрд┐рд╕

рдХрд╕реНрдХреЛ рд▓рд╛рдЧрд┐: рд╕рдмреИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдорд╛ рдереБрдХреНрдиреЗ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдЦреЗрд▓рд╣рд░реВ рдЦреЗрд▓реНрди рдЪрд╛рд╣рдиреЗ IT рдорд╛рдирд┐рд╕рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐!

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

рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдХрд┐рди рдкрдвреНрдиреБ рдкрд░реНрдЫ: рдПрдк рд╡рд┐рдХрд╛рд╕ рдореЗрд░реЛ рдХрд╛рдордХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЗрди, рддрд░ рдо рд╣рд░реЗрдХ рд╣рдкреНрддрд╛ рдХреЛрдб рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫреБред рдХрд┐рдирдХрд┐ рдорд▓рд╛рдИ рдЦреЗрд▓ рдорди рдкрд░реНрдЫ!

рдирдорд╕реНрдХрд╛рд░ рдореЗрд░реЛ рдирд╛рдо рд╣реЛ Andrey Grankin, рдо Luxoft рдорд╛ DevOps рд╣реБрдБред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдореЗрд░реЛ рдХрд╛рдордХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЗрди, рддрд░ рдо рд╣рд░реЗрдХ рд╣рдкреНрддрд╛ рдХреЛрдб рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫреБред рдХрд┐рдирдХрд┐ рдорд▓рд╛рдИ рдЦреЗрд▓ рдорди рдкрд░реНрдЫ!

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

рдПрдХреИ рд╕рдордпрдорд╛, рдЕрдиреНрдп рдорд╛рдирд┐рд╕рд╣рд░реВрдХрд╛ рдЦреЗрд▓рд╣рд░реВ рдЦреЗрд▓реНрджрд╛, рд╣рд╛рдореА рдирд┐рд░рдиреНрддрд░ рд╕реНрдерд╛рдирд╣рд░реВ, рдХрдерд╛рдирдХ, рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ, рдЦреЗрд▓ рдореЗрдХрд╛рдирд┐рдХрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реБрдиреНрдЫреМрдВ рдЬреБрди рдЕрдиреНрдп рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рд▓рд┐рдПрдХрд╛ рдерд┐рдПред рддреНрдпрд╕реИрд▓реЗ рдореИрд▓реЗ рдмреБрдЭреЗрдВ рдХрд┐ ...

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

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

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

рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН

"рдЕрднреНрдпрд╛рд╕ рдмрд┐рдирд╛рдХреЛ рдЬреНрдЮрд╛рди рдмреЗрдХрд╛рд░ рдЫ, рдЬреНрдЮрд╛рди рдмрд┐рдирд╛рдХреЛ рдЕрднреНрдпрд╛рд╕ рдЦрддрд░рдирд╛рдХ рдЫред" рдХрдиреНрдлреБрд╕рд┐рдпрд╕

рдореЗрд░реЛ рдиреЛрдЯрдмреБрдХ рдореЗрд░реЛ рдЬреАрд╡рди рд╣реЛ!


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

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

рдпрд╕ рдЪрд░рдгрдорд╛, рдореИрд▓реЗ рддреАрдирд╡рдЯрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдВ (рдпреЛ "рдЕрдиреНрддрд┐рдорддрд╛" рдХреЛ рдореЗрд░реЛ рдмреБрдЭрд╛рдЗрдорд╛ рдЫ, рдХрд┐рдирдХрд┐ рдХреБрдиреИ рдкрдирд┐ рдЙрддреНрдкрд╛рджрди рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрдирдиреНрдд рд░реВрдкрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ)ред

  • рдкрд░рд┐рдпреЛрдЬрдирд╛ реи: рдпреЛ рдПрдХрддрд╛ рдЦреЗрд▓ рдЗрдиреНрдЬрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ C# рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдПрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдбреЗрдореЛ 3D рджреГрд╢реНрдп рд╣реЛред macOS рд░ Windows рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред
  • рдЦреЗрд▓ рез: рд╡рд┐рдиреНрдбреЛрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрд╕реЛрд▓ рдЧреЗрдо рд╕рд┐рдореНрдкрд▓ рд╕реНрдиреЗрдХ (рд╕рдмреИрд▓рд╛рдИ "рд╕рд╛рдБрдк" рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдЫ)ред рд╕реА рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛред
  • рдЦреЗрд▓ рез: рдХрдиреНрд╕реЛрд▓ рдЧреЗрдо Crazy Tanks (рд╕рдмреИрд▓рд╛рдИ "рдЯреНрдпрд╛рдЩреНрдХрд╣рд░реВ" рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдЫ), рдкрд╣рд┐рд▓реЗ рдиреИ C ++ (рдХрдХреНрд╖рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ) рд░ Windows рдЕрдиреНрддрд░реНрдЧрдд рдкрдирд┐ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫред

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

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
3D рджреГрд╢реНрдп рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рдбреЗрдореЛ

рдкрд╣рд┐рд▓реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ C/C++ рдорд╛ рд╣реЛрдЗрди, рддрд░ рдПрдХрддрд╛ рдЦреЗрд▓ рдЗрдиреНрдЬрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ C# рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреЛ рдЗрдиреНрдЬрд┐рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдорд╛ рдЬрддреНрддрд┐рдХреЛ рдорд╛рдЧ рдерд┐рдПрди рдЕрдЬреНрдЮрд╛рдд рдЗрдиреНрдЬрд┐рди, рд░ рдорд▓рд╛рдИ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рд▓рд╛рдЧреНрдереНрдпреЛред рдореИрд▓реЗ рдЕрдиреНрдп рдЗрдиреНрдЬрд┐рдирд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░реЗрдиред

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

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

рдПрдирд┐рдореЗрд╕рди рдкреНрд░рд╛рдХреГрддрд┐рдХ рджреЗрдЦрд┐рдиреНрдЫ рднрдиреЗрд░ рд╣рдбреНрдбреА, рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдбреНрдбреА рд▓рд┐рднрд░ рдореЛрдбреЗрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддреНрдпрд╕реНрддрд╛ рдкрд╛рдард╣рд░реВ рдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдПрдирд┐рдореЗрдЯреЗрдб рдлрд┐рд▓реНрдорд╣рд░реВрдХрд╛ рд╕рд┐рд░реНрдЬрдирд╛рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ 30 рд╕реЗрдХреЗрдиреНрдбрдХреЛ рднрд┐рдбрд┐рдпреЛ рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрддреНрддрд┐ рдареВрд▓реЛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗрд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рддрд░ рдереНрд░реАрдбреА рдЪрд▓рдЪрд┐рддреНрд░рд╣рд░реВ рдШрдгреНрдЯрд╛рд╕рдореНрдо рдЯрд┐рдХреНрдЫрдиреН! рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдерд┐рдПрдЯрд░рд╣рд░реВрдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреНрдЫреМрдВ рд░ рдХреЗрд╣рд┐ рднрдиреНрдЫреМрдВ: "рдЯрд╛, рдПрдХ рдбрд░рд▓рд╛рдЧреНрджреЛ рдХрд╛рд░реНрдЯреБрди / рдЪрд▓рдЪрд┐рддреНрд░! рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЕрдЭ рд░рд╛рдореНрд░реЛ рдЧрд░реНрди рд╕рдХреНрдереЗ ..." рдореВрд░реНрдЦрд╣рд░реВ!

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

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рд╕рд░реНрдХрд▓ рд░ рдЧреЛрд▓рд╛рдорд╛ рдмрд┐рдиреНрджреБрдХреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╣рд░реВ рдЧрдгрдирд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕реВрддреНрд░рд╣рд░реВрдХреЛ рдЧрдгрдирд╛ (рдореЗрд░реЛ рдиреЛрдЯрдмреБрдХрдмрд╛рдЯ)

рдЦреЗрд▓ рез

  • рдкреНрд▓реЗрдЯрдлрд░реНрдо: Windows (Windows 7, 10 рдорд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ)
  • ╨п╨╖╤Л╨║: рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдпреЛ рд╢реБрджреНрдз C рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛ
  • рдЦреЗрд▓ рдЗрдиреНрдЬрд┐рди: рд╡рд┐рдиреНрдбреЛрдЬ рдХрдиреНрд╕реЛрд▓
  • рдкреНрд░реЗрд░рдгрд╛: javidx9
  • рднрдгреНрдбрд╛рд░: GitHub

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рд╕рд╛рдзрд╛рд░рдг рд╕рд░реНрдк рдЦреЗрд▓

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

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

рдЦреЗрд▓ рд▓реБрдк рдпреЛ рдЬрд╕реНрддреИ рдХреЗрд╣рд┐ рджреЗрдЦрд┐рди рд╕рдХреНрдЫ:

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

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

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рдЦреЗрд▓ рдЪрдХреНрд░ред рдиреЛрдЯрдкреНрдпрд╛рдбрдорд╛ рд╕рд░реНрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрдиреНрд╕реЛрд▓ рдЦреЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдЯреНрд░рд┐рдо рдЖрдЙрдЯрдкреБрдЯ 'cout' рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрд╛ рдХрд╛рдо рдЧрд░реНрджреИрди - рдпреЛ рдзреЗрд░реИ рдврд┐рд▓реЛ рдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдХреНрд░рд┐рди рдмрдлрд░рдорд╛ рдЧрд░рд┐рдиреБрдкрд░реНрдЫред рдзреЗрд░реИ рдЫрд┐рдЯреЛ рд░ рдЦреЗрд▓ glitches рдмрд┐рдирд╛ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред рдЗрдорд╛рдирджрд╛рд░ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐, рдо рд╕реНрдХреНрд░рд┐рди рдмрдлрд░ рдХреЗ рд╣реЛ рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдмреБрдЭрд┐рдиред рддрд░ рдо рдпрд╣рд╛рдБ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджрд┐рдиреЗрдЫреБ, рд░ рд╕рд╛рдпрдж рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдХрд╕реИрд▓реЗ рд╕реНрдерд┐рддрд┐ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫред

рд╕реНрдХреНрд░рд┐рди рдмрдлрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ (рдпрджрд┐ рдореИрд▓реЗ рддреНрдпрд╕реЛ рднрдиреНрди рд╕рдХреНрдЫреБ):

// 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++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рдЖрдпрдд рд╕реЗрдЯ

рдкреНрд░рддреНрдпреЗрдХ рдЖрдпрдд рд╕рдВрдЦреНрдпрд╛рд▓реЗ рднрд░рд┐рдПрдХреЛ рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред рд╡реИрд╕реЗ, рдо рдПрдЙрдЯрд╛ рдЪрд╛рдЦрд▓рд╛рдЧреНрджреЛ nuance рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреБ - рдЦреЗрд▓рдорд╛ рд╕рдмреИ рдореНрдпрд╛рдЯреНрд░рд┐рдХрд╣рд░реВ рдПрдХ-рдЖрдпрд╛рдореА рдПрд░реЗрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫред рджреБрдИ-рдЖрдпрд╛рдореА рд╣реЛрдЗрди, рддрд░ рдПрдХ-рдЖрдпрд╛рдореА! рдПрдХ-рдЖрдпрд╛рдореА arrays рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рд░ рдЫрд┐рдЯреЛ рдЫред

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рдЦреЗрд▓ рдЯреНрдпрд╛рдВрдХ рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

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

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

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

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

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

рдЕрдм рдкрд┐рдХреНрд╕реЗрд▓, рд░рдВрдЧ рд░ рдкреНрд░рджрд░реНрд╢рди рдмрд╛рд░реЗред StretchDIBits рдкреНрд░рдХрд╛рд░реНрдп (рд╣реЗрдбрд░: windows.h; рдкреБрд╕реНрддрдХрд╛рд▓рдп: 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
               );

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

m_p_bitmapрдореЗрдореЛрд░реА рдмрд┐рдЯрдореНрдпрд╛рдк рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ:

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

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдмрд┐рдЯрдореНрдпрд╛рдкрд▓реЗ рдкрд┐рдХреНрд╕реЗрд▓рдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдПрд░реЗрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдПрдХ RGB рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЛред рдПрдХ рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рд░рд╛рддреЛ рдорд╛рди, рдПрдХ рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рд╣рд░рд┐рдпреЛ рдорд╛рди (G), рд░ рдПрдХ рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рдиреАрд▓реЛ рд░рдЩ (B)ред рд╕рд╛рдереИ, рдкреНрд░рддрд┐ рдЗрдиреНрдбреЗрдиреНрдЯ рдПрдХ рдмрд╛рдЗрдЯ рдЫред рдпреА рддреАрди рд░рдВрдЧрд╣рд░реВ - рд░рд╛рддреЛ / рд╣рд░рд┐рдпреЛ / рдирд┐рд▓реЛ (RGB) - рдПрдХ рдЕрд░реНрдХрд╛рд╕рдБрдЧ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкрд╛рддрдорд╛ рдорд┐рд╕рд╛рдЗрдиреНрдЫ - рд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд┐рдХреНрд╕реЗрд▓ рд░рдВрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫред

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

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

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

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

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

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

// 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;
   }

рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╡рд┐рдзрд┐ рдЕрдиреБрд╕рд╛рд░, Crazy Tanks рдЦреЗрд▓рдорд╛ рдПрдЙрдЯрд╛ рддрд╕реНрд╡рд┐рд░ (рдлреНрд░реЗрдо) рдмрдирд╛рдЗрдиреНрдЫ рд░ Draw() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫред Input() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдХреБрдЮреНрдЬреА рд╕реНрдЯреНрд░реЛрдХрд╣рд░реВ рджрд░реНрддрд╛ рдЧрд░реЗрдкрдЫрд┐ рд░ Logic() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкрдЫрд┐рдХреЛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рдирдпрд╛рдБ рдЪрд┐рддреНрд░ (рдлреНрд░реЗрдо) рдмрдирд╛рдЗрдиреНрдЫред рд╕рд╛рдБрдЪреЛ, рдЦреЗрд▓ рд╡рд╕реНрддреБрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдЦреЗрд▓ рдореИрджрд╛рдирдорд╛ рдлрд░рдХ рд╕реНрдерд┐рддрд┐ рд╣реБрди рд╕рдХреНрдЫ рд░, рддрджрдиреБрд╕рд╛рд░, рдлрд░рдХ рдард╛рдЙрдБрдорд╛ рдХреЛрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдПрдирд┐рдореЗрд╕рди (рдЪрд▓рди) рдпрд╕рд░реА рд╣реБрдиреНрдЫред

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

рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдЦреЗрд▓ "рдЯреНрдпрд╛рдЩреНрдХрд╣рд░реВ" "рд╕рд╛рдБрдк" рднрдиреНрджрд╛ рдзреЗрд░реИ рдЬрдЯрд┐рд▓ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫред рдореИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ C++ рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рдЫреБ, рддреНрдпреЛ рд╣реЛ, рдореИрд▓реЗ рдХрдХреНрд╖рд╛рд╣рд░реВрд╕рдБрдЧ рд╡рд┐рднрд┐рдиреНрди рдЦреЗрд▓ рд╡рд╕реНрддреБрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реЗрдВред рдореИрд▓реЗ рдореЗрд░реЛ рдЖрдлреНрдиреИ рд╕рдВрдЧреНрд░рд╣ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХреЛ рдЫреБ - рддрдкрд╛рдИрд▓реЗ рд╣реЗрдбрд░/Box.h рдорд╛ рдХреЛрдб рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╡реИрд╕реЗ, рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╛рдп: рдореЗрдореЛрд░реА рдЪреБрд╣рд╛рд╡рдЯ рдЫред рд╕рдВрдХреЗрддрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛред рд╕реНрдореГрддрд┐ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реЗред рдореИрд▓реЗ рднрдиреНрдиреИ рдкрд░реНрдЫ рдХрд┐ рдкреБрд╕реНрддрдХрд▓реЗ рдорд▓рд╛рдИ рдзреЗрд░реИ рдорджреНрджрдд рдЧрд░реНрдпреЛред рдЦреЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдорд╛рд░реНрдлрдд C++ рд╕реБрд░реБ рдЧрд░реНрджреИред рдпреЛ C++ рдорд╛ рд╢реБрд░реБрд╡рд╛рдд рдЧрд░реНрдиреЗрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рд╕реБрд░реБрд╡рд╛рдд рд╣реЛред рдпреЛ рд╕рд╛рдиреЛ, рд░реЛрдЪрдХ рд░ рд░рд╛рдореНрд░реЛ рд╕рдВрдЧрдард┐рдд рдЫред

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

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

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

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рдпрд╕рдХреЛ рдЕрдХреНрд╖ рд╡рд░рд┐рдкрд░рд┐ рдЯреНрдпрд╛рдВрдХ рдХреЛ рдкрд░рд┐рдХреНрд░рдорд╛ рд▓рд╛рдЧрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд░ рд╕реВрддреНрд░ рдХреЛ рдЧрдгрдирд╛

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рдореЗрд░реЛ рд╕рдВрдЧреНрд░рд╣рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ (рдореЗрдореЛрд░реА рдЪреБрд╣рд╛рд╡рдЯ рднрдПрдХреЛ рдПрдХ, рд╕рдореНрднрд╡рддрдГ)ред рд╕рдЩреНрдХрд▓рди рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рд╕реВрдЪреАрдХреЛ рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ

DevOps C++ рд░ "рдХрд┐рдЪреЗрди рд╡рд╛рд░рд╣рд░реВ", рд╡рд╛ рдореИрд▓реЗ рдЦрд╛рдирд╛ рдЦрд╛рдБрджрд╛ рдХрд╕рд░реА рдЦреЗрд▓рд╣рд░реВ рд▓реЗрдЦреНрди рдерд╛рд▓реЗрдВ
рд░ рдпреА рдЦреЗрд▓рдорд╛ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдкреЗрдВрдЪ рдЧрд░реНрдиреЗ рд╡реНрдпрд░реНрде рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рд╣реБрдиреН

рдереНрдпреЛрд░реА

"рд╣рдЬрд╛рд░ рдорд╛рдЗрд▓рдХреЛ рдпрд╛рддреНрд░рд╛ рдкрдирд┐ рдкрд╣рд┐рд▓реЛ рдкрд╛рдЗрд▓рд╛рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреНрдЫ" (рдкреНрд░рд╛рдЪреАрди рдЪрд┐рдирд┐рдпрд╛рдБ рдЬреНрдЮрд╛рди)

рд╡реНрдпрд╡рд╣рд╛рд░рдмрд╛рдЯ рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рдЬрд╛рдФрдВ! рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рд╢реМрдХ рдХреЛ рд▓рд╛рдЧреА рд╕рдордп рдХрд╕рд░реА рдЦреЛрдЬреНрдиреБрд╣реБрдиреНрдЫ?

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

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

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

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

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

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

рддрдкрд╛рдИрдХреЛ рд░реЛрдЬреЗрдХреЛ рдмрд╛рдЯреЛрдорд╛ рд╢реБрднрдХрд╛рдордирд╛! рд░ рд╕рдВрд╕рд╛рд░рд▓рд╛рдИ рдЕрдЭ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдмрдирд╛рдФрдВред

рд▓реЗрдЦрдХ: Grankin Andrey, DevOps



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