DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”

"ืื ื™ ื™ื•ื“ืข ืฉืื ื™ ืœื ื™ื•ื“ืข ื›ืœื•ื" ืกื•ืงืจื˜ืก

ืœืžื™: ืœืื ืฉื™ IT ืฉื™ื•ืจืงื™ื ืขืœ ื›ืœ ื”ืžืคืชื—ื™ื ื•ืจื•ืฆื™ื ืœืฉื—ืง ื‘ืžืฉื—ืงื™ื ืฉืœื”ื!

ืœื’ื‘ื™ ืžื”: ืื™ืš ืœื”ืชื—ื™ืœ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ื‘-C/C++ ืื ืืชื” ืฆืจื™ืš ืืช ื–ื”!

ืœืžื” ื›ื“ืื™ ืœืงืจื•ื ืืช ื–ื”: ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช ื–ื” ืœื ื”ืžื•ืžื—ื™ื•ืช ืฉืœื™ ื‘ืขื‘ื•ื“ื”, ืื‘ืœ ืื ื™ ืžืฉืชื“ืœ ืœืงื•ื“ ื›ืœ ืฉื‘ื•ืข. ื›ื™ ืื ื™ ืื•ื”ื‘ ืžืฉื—ืงื™ื!

ืฉืœื•ื ืฉืžื™ ื”ื•ื ืื ื“ืจื™ื™ ื’ืจื ืงื™ืŸ, ืื ื™ DevOps ื‘- Luxoft. ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช ื”ื•ื ืœื ืžื•ืžื—ื™ื•ืช ื”ืขื‘ื•ื“ื” ืฉืœื™, ืื‘ืœ ืื ื™ ืžืฉืชื“ืœ ืœืงื•ื“ ื›ืœ ืฉื‘ื•ืข. ื›ื™ ืื ื™ ืื•ื”ื‘ ืžืฉื—ืงื™ื!

ืชืขืฉื™ื™ืช ืžืฉื—ืงื™ ื”ืžื—ืฉื‘ ื”ื™ื ืขื ืงื™ืช, ืืคื™ืœื• ื™ื•ืชืจ ืฉืžื•ืขื•ืช ื”ื™ื•ื ืžืืฉืจ ืชืขืฉื™ื™ืช ื”ืงื•ืœื ื•ืข. ืžืฉื—ืงื™ื ื ื›ืชื‘ื• ืžืื– ืชื—ื™ืœืช ื”ืคื™ืชื•ื— ืฉืœ ื”ืžื—ืฉื‘ื™ื, ืชื•ืš ืฉื™ืžื•ืฉ, ื‘ืกื˜ื ื“ืจื˜ื™ื ืžื•ื“ืจื ื™ื™ื, ื‘ืฉื™ื˜ื•ืช ืคื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช ื•ื‘ืกื™ืกื™ื•ืช. ืขื ื”ื–ืžืŸ, ืžื ื•ืขื™ ืžืฉื—ืง ื”ื—ืœื• ืœื”ื•ืคื™ืข ืขื ื’ืจืคื™ืงื”, ืคื™ื–ื™ืงื” ื•ืกืื•ื ื“ ืžืชื•ื›ื ืชื™ื ื›ื‘ืจ. ื”ื ืžืืคืฉืจื™ื ืœืš ืœื”ืชืžืงื“ ื‘ืคื™ืชื•ื— ื”ืžืฉื—ืง ืขืฆืžื• ื•ืœื ืœื”ืชืขืกืง ื‘ื‘ืกื™ืก ืฉืœื•. ืื‘ืœ ื™ื—ื“ ืื™ืชื, ืขื ื”ืžื ื•ืขื™ื, ื”ืžืคืชื—ื™ื "ืžืชืขื•ื•ืจื™ื" ื•ืžืชื›ืœื™ื. ืขืฆื ื™ื™ืฆื•ืจ ื”ืžืฉื—ืงื™ื ืžื•ืขืœื” ืขืœ ื”ืžืกื•ืข. ื•ื›ืžื•ืช ื”ื™ื™ืฆื•ืจ ืžืชื—ื™ืœื” ืœื’ื‘ื•ืจ ืขืœ ืื™ื›ื•ืชื•.

ื™ื—ื“ ืขื ื–ืืช, ื›ืืฉืจ ืžืฉื—ืงื™ื ื‘ืžืฉื—ืงื™ื ืฉืœ ืื—ืจื™ื, ืื ื• ืžื•ื’ื‘ืœื™ื ื›ืœ ื”ื–ืžืŸ ืขืœ ื™ื“ื™ ืžื™ืงื•ืžื™ื, ืขืœื™ืœื”, ื“ืžื•ื™ื•ืช, ืžื›ื ื™ืงืช ืžืฉื—ืง ืฉืื ืฉื™ื ืื—ืจื™ื ื”ื’ื™ืขื• ืืœื™ื”ื. ืื– ื”ื‘ื ืชื™ ืฉ...

... ื”ื’ื™ืข ื”ื–ืžืŸ ืœื™ืฆื•ืจ ืืช ื”ืขื•ืœืžื•ืช ืฉืœืš, ื›ืคื•ืคื™ื ืจืง ืœื™. ืขื•ืœืžื•ืช ืฉื‘ื”ื ืื ื™ ื”ืื‘, ื•ื”ื‘ืŸ, ื•ืจื•ื— ื”ืงื•ื“ืฉ!

ื•ืื ื™ ืžืืžื™ืŸ ื‘ืืžืช ื•ื‘ืชืžื™ื ืฉืขืœ ื™ื“ื™ ื›ืชื™ื‘ืช ืžื ื•ืข ืžืฉื—ืง ืžืฉืœืš ื•ืžืฉื—ืง ืขืœื™ื•, ืชื•ื›ืœ ืœืคืงื•ื— ืืช ื”ืขื™ื ื™ื™ื, ืœื ื’ื‘ ืืช ื”ื—ืœื•ื ื•ืช ื•ืœืฉืื•ื‘ ืืช ื”ืชื ืฉืœืš, ื•ืœื”ืคื•ืš ืœืžืชื›ื ืช ืžื ื•ืกื” ื•ืื™ื ื˜ื’ืจืœื™ ื™ื•ืชืจ.

ื‘ืžืืžืจ ื–ื” ืื ืกื” ืœืกืคืจ ืœื›ื ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืงื˜ื ื™ื ื‘-C/C++, ืžื”ื• ืชื”ืœื™ืš ื”ืคื™ืชื•ื— ื•ื”ื™ื›ืŸ ืื ื™ ืžื•ืฆื ื–ืžืŸ ืœืชื—ื‘ื™ื‘ ื‘ืกื‘ื™ื‘ื” ืขืžื•ืกื”. ื–ื” ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™ ื•ืžืชืืจ ืืช ื”ืชื”ืœื™ืš ืฉืœ ื”ืชื—ืœื” ืื™ืฉื™ืช. ื—ื•ืžืจ ืขืœ ื‘ื•ืจื•ืช ื•ืืžื•ื ื”, ืขืœ ืชืžื•ื ืช ื”ืขื•ืœื ื”ืื™ืฉื™ืช ืฉืœื™ ื›ืจื’ืข. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, "ื”ืžืžืฉืœ ืื™ื ื• ืื—ืจืื™ ืขืœ ื”ืžื•ื— ื”ืื™ืฉื™ ืฉืœืš!".

ืขื™ืกื•ืง

"ื™ื“ืข ืœืœื ืชืจื’ื•ืœ ื”ื•ื ื—ืกืจ ืชื•ืขืœืช, ืชืจื’ื•ืœ ืœืœื ื™ื“ืข ื”ื•ื ืžืกื•ื›ืŸ." ืงื•ื ืคื•ืฆื™ื•ืก

ื”ืžื—ื‘ืจืช ืฉืœื™ ื”ื™ื ื”ื—ื™ื™ื ืฉืœื™!


ืื–, ื‘ืคื•ืขืœ, ืื ื™ ื™ื›ื•ืœ ืœื•ืžืจ ืฉื”ื›ืœ ื‘ืฉื‘ื™ืœื™ ืžืชื—ื™ืœ ื‘ืžื—ื‘ืจืช. ืื ื™ ืจื•ืฉื ืฉื ืœื ืจืง ืืช ื”ืžืฉื™ืžื•ืช ื”ื™ื•ืžื™ื•ืžื™ื•ืช ืฉืœื™, ืืœื ื’ื ืžืฆื™ื™ืจ, ืžืชื›ื ืช, ืžืขืฆื‘ ืชืจืฉื™ืžื™ ื–ืจื™ืžื” ื•ืคื•ืชืจ ื‘ืขื™ื•ืช, ื›ื•ืœืœ ืžืชืžื˜ื™ื•ืช. ื”ืฉืชืžืฉ ืชืžื™ื“ ื‘ืคื ืงืก ื•ื›ืชื•ื‘ ืจืง ื‘ืขื™ืคืจื•ืŸ. ื–ื” ื ืงื™, ื ื•ื— ื•ืืžื™ืŸ, IMHO.

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื”ืžื—ื‘ืจืช ืฉืœื™ (ืฉืžืœืื” ื›ื‘ืจ). ื›ืš ื–ื” ื ืจืื”. ื”ื•ื ืžื›ื™ืœ ืžืฉื™ืžื•ืช ื™ื•ืžื™ื•ืžื™ื•ืช, ืจืขื™ื•ื ื•ืช, ืฉืจื˜ื•ื˜ื™ื, ื“ื™ืื’ืจืžื•ืช, ืคืชืจื•ื ื•ืช, ื”ื ื”ืœืช ื—ืฉื‘ื•ื ื•ืช ืฉื—ื•ืจื”, ืงื•ื“ ื•ื›ื•'.

ื‘ืฉืœื‘ ื–ื” ื”ืฆืœื—ืชื™ ืœื”ืฉืœื™ื ืฉืœื•ืฉื” ืคืจื•ื™ืงื˜ื™ื (ื–ื” ืœืคื™ ื”ื”ื‘ื ื” ืฉืœื™ ืฉืœ "ืกื•ืคื™ื•ืช", ื›ื™ ื›ืœ ืžื•ืฆืจ ื ื™ืชืŸ ืœืคืชื— ื™ื—ืกื™ืช ื‘ืœื™ ืกื•ืฃ).

  • ืคืจื•ื™ื™ืงื˜ 0: ื–ื•ื”ื™ ืกืฆื ืช ืชืœืช-ืžืžื“ ืฉืœ ืื“ืจื™ื›ืœ ื”ื“ื’ืžื” ืฉื ื›ืชื‘ื” ื‘-C# ื‘ืืžืฆืขื•ืช ืžื ื•ืข ื”ืžืฉื—ืง Unity. ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช macOS ื•-Windows.
  • ืžืฉื—ืง 1: ืžืฉื—ืง ืงื•ื ืกื•ืœื” Simple Snake (ื”ื™ื“ื•ืข ืœื›ื•ืœื ื‘ืชื•ืจ "Snake") ืขื‘ื•ืจ Windows. ื›ืชื•ื‘ ื‘-C.
  • ืžืฉื—ืง 2: ืžืฉื—ืง ืงื•ื ืกื•ืœื” Crazy Tanks (ื”ื™ื“ื•ืข ืœื›ื•ืœื ื‘ืชื•ืจ "Tanks"), ื›ื‘ืจ ื ื›ืชื‘ ื‘-C++ (ื‘ืืžืฆืขื•ืช ืžื—ืœืงื•ืช) ื•ื’ื ืชื—ืช Windows.

ืคืจื•ื™ืงื˜ 0 ื”ื“ื’ืžืช ืื“ืจื™ื›ืœ

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื”ื“ื’ืžืช ืื“ืจื™ื›ืœ ืกืฆื™ื ื” ืชืœืช ืžื™ืžื“ื™ืช

ื”ืคืจื•ื™ืงื˜ ื”ืจืืฉื•ืŸ ื™ื•ืฉื ืœื ื‘-C/C++, ืืœื ื‘-C# ื‘ืืžืฆืขื•ืช ืžื ื•ืข ื”ืžืฉื—ืง Unity. ื”ืžื ื•ืข ื”ื–ื” ืœื ื”ื™ื” ืชื•ื‘ืขื ื™ ื‘ื—ื•ืžืจื” ื›ืžื• ืžื ื•ืข ืœื ืžืฆื™ืื•ืชื™, ื•ื’ื ื ืจืื” ืœื™ ืงืœ ื™ื•ืชืจ ืœื”ืชืงื ื” ื•ืœืฉื™ืžื•ืฉ. ืœื ืฉืงืœืชื™ ืžื ื•ืขื™ื ืื—ืจื™ื.

ื”ืžื˜ืจื” ื‘-Unity ืžื‘ื—ื™ื ืชื™ ืœื ื”ื™ื™ืชื” ืœืคืชื— ืื™ื–ื” ืžืฉื—ืง. ืจืฆื™ืชื™ ืœื™ืฆื•ืจ ืกืฆื ื” ืชืœืช ืžื™ืžื“ื™ืช ืขื ืื™ื–ื•ืฉื”ื™ ืื•ืคื™. ื”ื•ื, ืื• ื™ื•ืชืจ ื ื›ื•ืŸ ื”ื™ื (ื“ื’ืžื ืชื™ ืืช ื”ื‘ื—ื•ืจื” ืฉื”ื™ื™ืชื™ ืžืื•ื”ื‘ ื‘ื” =) ื”ื™ื” ืฆืจื™ืš ืœื–ื•ื– ื•ืœื™ืฆื•ืจ ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ืขื•ืœื ื”ื—ื™ืฆื•ืŸ. ื”ื™ื” ื—ืฉื•ื‘ ืจืง ืœื”ื‘ื™ืŸ ืžื”ื™ Unity, ืžื”ื• ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ื•ื›ืžื” ืžืืžืฅ ื ื“ืจืฉ ื›ื“ื™ ืœื™ืฆื•ืจ ืžืฉื”ื•. ื›ืš ื ื•ืœื“ ืคืจื•ื™ืงื˜ Architect Demo (ื”ืฉื ื”ื•ืžืฆื ื›ืžืขื˜ ืžื”ืฉื˜ื•ื™ื•ืช). ืชื›ื ื•ืช, ื“ื•ื’ืžื ื•ืช, ืื ื™ืžืฆื™ื”, ื˜ืงืกื˜ื•ืจื™ื ื’ ืœืงื—ื• ืœื™ ื›ื ืจืื” ื—ื•ื“ืฉื™ื™ื ืฉืœ ืขื‘ื•ื“ื” ื™ื•ืžื™ื•ืžื™ืช.

ื”ืชื—ืœืชื™ ื‘ืกืจื˜ื•ื ื™ ื”ื“ืจื›ื” ื‘ื™ื•ื˜ื™ื•ื‘ ืขืœ ืื™ืš ืœื™ืฆื•ืจ ืžื•ื“ืœื™ื ืชืœืช ืžื™ืžื“ื™ื™ื ื‘ ืžึทืžื—ึถื”. ื‘ืœื ื“ืจ ื”ื•ื ื›ืœื™ ื—ื™ื ืžื™ ื ื”ื“ืจ ืขื‘ื•ืจ ืžื•ื“ืœื™ื ืชืœืช ืžื™ืžื“ื™ื™ื (ื•ืขื•ื“) ืฉืื™ื ื• ื“ื•ืจืฉ ื”ืชืงื ื”. ื•ื”ื ื” ื—ื™ื›ื” ืœื™ ื”ืœื... ืžืกืชื‘ืจ ืฉื“ื•ื’ืžื ื•ืช, ืื ื™ืžืฆื™ื”, ื˜ืงืกื˜ื•ืจื” ื”ื ื ื•ืฉืื™ื ื ืคืจื“ื™ื ืขื ืงื™ื™ื ืฉืืคืฉืจ ืœื›ืชื•ื‘ ืขืœื™ื”ื ืกืคืจื™ื. ื–ื” ื ื›ื•ืŸ ื‘ืžื™ื•ื—ื“ ืœื’ื‘ื™ ื”ื“ืžื•ื™ื•ืช. ื›ื“ื™ ืœื“ื’ืžืŸ ืืฆื‘ืขื•ืช, ืฉื™ื ื™ื™ื, ืขื™ื ื™ื™ื ื•ื—ืœืงื™ื ืื—ืจื™ื ื‘ื’ื•ืฃ, ืชื–ื“ืงืง ืœื™ื“ืข ื‘ืื ื˜ื•ืžื™ื”. ื›ื™ืฆื“ ืžืกื•ื“ืจื™ื ืฉืจื™ืจื™ ื”ืคื ื™ื? ืื™ืš ืื ืฉื™ื ื–ื–ื™ื? ื”ื™ื™ืชื™ ืฆืจื™ืš "ืœื”ื›ื ื™ืก" ืขืฆืžื•ืช ืœื›ืœ ื™ื“, ืจื’ืœ, ืืฆื‘ืข, ืคืจืงื™ ืืฆื‘ืขื•ืช!

ื“ื’ื ืืช ืขืฆื ื”ื‘ืจื™ื—, ืžื ื•ืคื™ ืขืฆื ื ื•ืกืคื™ื, ื›ืš ืฉื”ืื ื™ืžืฆื™ื” ืชื™ืจืื” ื˜ื‘ืขื™ืช. ืื—ืจื™ ืฉื™ืขื•ืจื™ื ื›ืืœื”, ืืชื” ืžื‘ื™ืŸ ืื™ื–ื• ืขื‘ื•ื“ื” ืขื ืงื™ืช ืขื•ืฉื™ื ื™ื•ืฆืจื™ ืกืจื˜ื™ ืื ื™ืžืฆื™ื”, ืจืง ื›ื“ื™ ืœื™ืฆื•ืจ 30 ืฉื ื™ื•ืช ืฉืœ ื•ื™ื“ืื•. ืื‘ืœ ืกืจื˜ื™ ืชืœืช ืžื™ืžื“ ื ืžืฉื›ื™ื ืฉืขื•ืช! ื•ืื– ืื ื—ื ื• ื™ื•ืฆืื™ื ืžื”ืื•ืœืžื•ืช ื•ืื•ืžืจื™ื ืžืฉื”ื• ื›ืžื•: "ื˜ื, ืกืจื˜ ืžืฆื•ื™ืจ/ืกืจื˜ ืžื—ื•ืจื‘ืŸ! ื”ื ื”ื™ื• ื™ื›ื•ืœื™ื ืœืขืฉื•ืช ื™ื•ืชืจ ื˜ื•ื‘..." ื˜ื™ืคืฉื™ื!

ื•ืขื•ื“ ืžืฉื”ื• ืขืœ ืชื›ื ื•ืช ื‘ืคืจื•ื™ืงื˜ ื”ื–ื”. ื›ืคื™ ืฉื”ืชื‘ืจืจ, ื”ื—ืœืง ื”ืžืขื ื™ื™ืŸ ื‘ื™ื•ืชืจ ืขื‘ื•ืจื™ ื”ื™ื” ื”ื—ืœืง ื”ืžืชืžื˜ื™. ืื ืชืจื™ืฆื• ืืช ื”ืกืฆื ื” (ืงื™ืฉื•ืจ ืœืžืื’ืจ ื‘ืชื™ืื•ืจ ื”ืคืจื•ื™ืงื˜), ืชื‘ื—ื™ื ื• ืฉื”ืžืฆืœืžื” ืžืกืชื•ื‘ื‘ืช ืกื‘ื™ื‘ ื“ืžื•ืช ื”ื™ืœื“ื” ื‘ื›ื“ื•ืจ. ื›ื“ื™ ืœืชื›ื ืช ืกื™ื‘ื•ื‘ ืžืฆืœืžื” ื›ื–ื”, ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื—ืฉื‘ ืชื—ื™ืœื” ืืช ื”ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ืฉืœ ื ืงื•ื“ืช ื”ืžื™ืงื•ื ืขืœ ื”ืžืขื’ืœ (2D), ื•ืœืื—ืจ ืžื›ืŸ ืขืœ ื”ื›ื“ื•ืจ (3D). ื”ื“ื‘ืจ ื”ืžืฆื—ื™ืง ื”ื•ื ืฉืฉื ืืชื™ ืžืชืžื˜ื™ืงื” ื‘ื‘ื™ืช ื”ืกืคืจ ื•ื™ื“ืขืชื™ ืื•ืชื” ื‘ืžื™ื ื•ืก. ื—ืœืงื™ืช, ื›ื ืจืื”, ื›ื™ ื‘ื‘ื™ืช ื”ืกืคืจ ืคืฉื•ื˜ ืœื ืžืกื‘ื™ืจื™ื ืœืš ืื™ืš ืœืขื–ืื–ืœ ืžื™ื•ืฉืžืช ื”ืžืชืžื˜ื™ืงื” ื”ื–ื• ื‘ื—ื™ื™ื. ืื‘ืœ ื›ืฉืืชื” ืื•ื‘ืกืกื™ื‘ื™ ืœืžื˜ืจื” ืฉืœืš, ืœื—ืœื•ื, ืื– ื”ืžื•ื— ืžืชื ืงื”, ืžืชื’ืœื”! ื•ืืชื” ืžืชื—ื™ืœ ืœืชืคื•ืก ืžืฉื™ืžื•ืช ืžื•ืจื›ื‘ื•ืช ื›ื”ืจืคืชืงื” ืžืจื’ืฉืช. ื•ืื– ืืชื” ื—ื•ืฉื‘: "ื•ื‘ื›ืŸ, ืœืžื” ื”ืžืชืžื˜ื™ืงืื™ *ืื”ื•ื‘* ืœื ื™ื›ื•ืœ ื”ื™ื” ืœื“ืขืช ืœืืŸ ื ื™ืชืŸ ืœื”ื™ืฉืขืŸ ืืช ื”ื ื•ืกื—ืื•ืช ื”ืืœื”?".

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื—ื™ืฉื•ื‘ ื ื•ืกื—ืื•ืช ืœื—ื™ืฉื•ื‘ ื”ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ืฉืœ ื ืงื•ื“ื” ืขืœ ืžืขื’ืœ ื•ืขืœ ื›ื“ื•ืจ (ืžื”ืžื—ื‘ืจืช ืฉืœื™)

ืžืฉื—ืง 1

  • ืคืœื˜ืคื•ืจืžื”: Windows (ื ื•ืกื” ื‘-Windows 7, 10)
  • ืฉืคื”: ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ื ื›ืชื‘ ื‘-C ื˜ื”ื•ืจ
  • ืžื ื•ืข ืžืฉื—ืง: ืงื•ื ืกื•ืœืช ื•ื•ื™ื ื“ื•ืก
  • ื”ึทืฉืืจึธืึธื”: javidx9
  • ืžืื’ืจ: GitHub

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ืžืฉื—ืง ื ื—ืฉ ืคืฉื•ื˜

ืกืฆื™ื ืช ื”ืชืœืช ืžื™ืžื“ ื”ื™ื ืœื ืžืฉื—ืง. ื‘ื ื•ืกืฃ, ืžื•ื“ืœื™ื ื•ื”ื ืคืฉื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ืชืœืช ืžื™ืžื“ื™ื™ื (ื‘ืžื™ื•ื—ื“ ื“ืžื•ื™ื•ืช) ื”ื•ื ืืจื•ืš ื•ืงืฉื”. ืื—ืจื™ ืฉืฉื™ื—ืงืชื™ ืขื Unity, ื”ื‘ื ืชื™ ืฉืื ื™ ื—ื™ื™ื‘ ืœื”ืžืฉื™ืš, ืื• ื™ื•ืชืจ ื ื›ื•ืŸ ืœื”ืชื—ื™ืœ, ืžื”ื‘ืกื™ืก. ืžืฉื”ื• ืคืฉื•ื˜ ื•ืžื”ื™ืจ, ืื‘ืœ ื‘ื• ื–ืžื ื™ืช ื’ืœื•ื‘ืœื™, ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ืขืฆื ื”ืžื‘ื ื” ืฉืœ ืžืฉื—ืงื™ื.

ื•ืžื” ื™ืฉ ืœื ื• ืคืฉื•ื˜ ื•ืžื”ื™ืจ? ื–ื” ื ื›ื•ืŸ, ืงื•ื ืกื•ืœื” ื•ื“ื• ืžื™ืžื“. ืœื™ืชืจ ื“ื™ื•ืง, ืืคื™ืœื• ื”ืงื•ื ืกื•ืœื” ื•ื”ืกืžืœื™ื. ืฉื•ื‘, ื”ืชื—ืœืชื™ ืœื—ืคืฉ ื”ืฉืจืื” ื‘ืื™ื ื˜ืจื ื˜ (ื‘ืื•ืคืŸ ื›ืœืœื™, ืื ื™ ืจื•ืื” ื‘ืื™ื ื˜ืจื ื˜ ืืช ื”ื”ืžืฆืื” ื”ืžื”ืคื›ื ื™ืช ื•ื”ืžืกื•ื›ื ืช ื‘ื™ื•ืชืจ ืฉืœ ื”ืžืื” ื”-2). ื—ืคืจืชื™ ืกืจื˜ื•ืŸ ืฉืœ ืžืชื›ื ืช ืื—ื“ ืฉื™ืฆืจ ืงื•ื ืกื•ืœืช ื˜ื˜ืจื™ืก. ื•ื‘ื“ืžื•ืช ืžืฉื—ืงื•, ื”ื•ื ื”ื—ืœื™ื˜ ืœื›ืจื•ืช ืืช ื”"ื ื—ืฉ". ืžื”ืกืจื˜ื•ืŸ ืœืžื“ืชื™ ืขืœ ืฉื ื™ ื“ื‘ืจื™ื ื‘ืกื™ืกื™ื™ื - ืœื•ืœืืช ื”ืžืฉื—ืง (ืขื ืฉืœื•ืฉ ืคื•ื ืงืฆื™ื•ืช / ื—ืœืงื™ื ื‘ืกื™ืกื™ื™ื) ื•ื”ืคืœื˜ ืœืžืื’ืจ.

ืœื•ืœืืช ื”ืžืฉื—ืง ืขืฉื•ื™ื” ืœื”ื™ืจืื•ืช ื‘ืขืจืš ื›ืš:

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

ื”ืงื•ื“ ืžืฆื™ื’ ืืช ื›ืœ ื”ืคื•ื ืงืฆื™ื” main() ื‘ื‘ืช ืื—ืช. ื•ืžื—ื–ื•ืจ ื”ืžืฉื—ืง ืžืชื—ื™ืœ ืœืื—ืจ ื”ื”ืขืจื” ื”ืžืชืื™ืžื”. ื™ืฉ ืฉืœื•ืฉ ืคื•ื ืงืฆื™ื•ืช ื‘ืกื™ืกื™ื•ืช ื‘ืœื•ืœืื”: Input(), Logic(), Draw(). ืจืืฉื™ืช, ืงืœื˜ ื ืชื•ื ื™ื ืงืœื˜ (ื‘ืขื™ืงืจ ืฉืœื™ื˜ื” ืขืœ ื”ืงืฉื•ืช), ืœืื—ืจ ืžื›ืŸ ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื ืฉื”ื•ื–ื ื• Logic, ื•ืœืื—ืจ ืžื›ืŸ ื”ืฆื’ืช ืขืœ ื”ืžืกืš - Draw. ื•ื›ืš ื›ืœ ืคืจื™ื™ื. ืื ื™ืžืฆื™ื” ื ื•ืฆืจืช ื‘ื“ืจืš ื–ื•. ื–ื” ื›ืžื• ืงืจื™ืงื˜ื•ืจื•ืช. ื‘ื“ืจืš ื›ืœืœ ืขื™ื‘ื•ื“ ื ืชื•ื ื™ ื”ืงืœื˜ ืœื•ืงื— ื”ื›ื™ ื”ืจื‘ื” ื–ืžืŸ, ื•ืœืžื™ื˜ื‘ ื™ื“ื™ืขืชื™, ื”ื•ื ืงื•ื‘ืข ืืช ืงืฆื‘ ื”ืคืจื™ื™ืžื™ื ืฉืœ ื”ืžืฉื—ืง. ืื‘ืœ ื›ืืŸ ื”ืคื•ื ืงืฆื™ื” Logic() ืžื”ื™ืจื” ืžืื•ื“. ืœื›ืŸ, ืงืฆื‘ ื”ืคืจื™ื™ืžื™ื ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื ืฉืœื˜ ืขืœ ื™ื“ื™ ื”ืคื•ื ืงืฆื™ื” Sleep() ืขื ืคืจืžื˜ืจ gameSpeed, ืฉืงื•ื‘ืข ืงืฆื‘ ื–ื”.

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ืžื—ื–ื•ืจ ืžืฉื—ืง. ืชื›ื ื•ืช ื ื—ืฉ ื‘ืคื ืงืก ืจืฉื™ืžื•ืช

ืื ืืชื” ืžืคืชื— ืžืฉื—ืง ืงื•ื ืกื•ืœื” ืกืžืœื™, ืื– ื”ืฆื’ืช ื ืชื•ื ื™ื ืขืœ ื”ืžืกืš ื‘ืืžืฆืขื•ืช ืคืœื˜ ื”ื–ืจื ื”ืจื’ื™ืœ 'cout' ืœื ื™ืขื‘ื•ื“ - ื–ื” ืžืื•ื“ ืื™ื˜ื™. ืœื›ืŸ, ื”ืคืœื˜ ื—ื™ื™ื‘ ืœื”ืชื‘ืฆืข ื‘ืžืื’ืจ ื”ืžืกืš. ื›ืœ ื›ืš ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ืจ ื•ื”ืžืฉื—ืง ื™ืขื‘ื•ื“ ืœืœื ืชืงืœื•ืช. ืœืžืขืŸ ื”ืืžืช, ืื ื™ ืœื ืžืžืฉ ืžื‘ื™ืŸ ืžื” ื–ื” ืžืื’ืจ ืžืกืš ื•ืื™ืš ื”ื•ื ืขื•ื‘ื“. ืื‘ืœ ืืชืŸ ื›ืืŸ ื“ื•ื’ืžื” ืœืงื•ื“, ื•ืื•ืœื™ ืžื™ืฉื”ื• ื‘ืชื’ื•ื‘ื•ืช ื™ื•ื›ืœ ืœื”ื‘ื”ื™ืจ ืืช ื”ืžืฆื‘.

ื”ืฉื’ืช ืžืื’ืจ ื”ืžืกืš (ืื ื™ื•ืจืฉื” ืœื™ ืœื•ืžืจ ื–ืืช):

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

ืคืœื˜ ื™ืฉื™ืจ ืœืžืกืš ืฉืœ ืฉื•ืจื” ืžืกื•ื™ืžืช scoreLine (ื”ืฉื•ืจื” ืœื”ืฆื’ืช ืฆื™ื•ื ื™ื):

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

ื‘ืชื™ืื•ืจื™ื”, ืื™ืŸ ืฉื•ื ื“ื‘ืจ ืžืกื•ื‘ืš ื‘ืžืฉื—ืง ื”ื–ื”, ื–ื” ื ืจืื” ืœื™ ื“ื•ื’ืžื” ื˜ื•ื‘ื” ืœืžืฉื—ืง ื”ืชื—ืœืชื™. ื”ืงื•ื“ ื›ืชื•ื‘ ื‘ืงื•ื‘ืฅ ืื—ื“ ื•ืžืกื•ื“ืจ ื‘ืžืกืคืจ ืคื•ื ืงืฆื™ื•ืช. ืื™ืŸ ืฉื™ืขื•ืจื™ื, ืื™ืŸ ื™ืจื•ืฉื”. ืืชื” ื‘ืขืฆืžืš ื™ื›ื•ืœ ืœืจืื•ืช ื”ื›ืœ ื‘ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืžืฉื—ืง ืขืœ ื™ื“ื™ ืžืขื‘ืจ ืœืžืื’ืจ ื‘- GitHub.

ืžืฉื—ืง 2 Crazy Tanks

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ืžืฉื—ืง ื˜ื ืงื™ื ืžื˜ื•ืจืคื™ื

ื”ื“ืคืกืช ื“ืžื•ื™ื•ืช ืœืงื•ื ืกื•ืœื” ื”ื™ื ื›ื ืจืื” ื”ื“ื‘ืจ ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ ืฉืชื•ื›ืœื• ืœื”ืคื•ืš ืœืžืฉื—ืง. ืื‘ืœ ืื– ืžื•ืคื™ืขื” ื‘ืขื™ื” ืื—ืช: ืœื“ืžื•ื™ื•ืช ื™ืฉ ื’ื‘ื”ื™ื ื•ืจื•ื—ื‘ ืฉื•ื ื™ื (ื”ื’ื•ื‘ื” ื’ื“ื•ืœ ืžื”ืจื•ื—ื‘). ืœืคื™ื›ืš, ื”ื›ืœ ื™ื™ืจืื” ืœื ืคืจื•ืคื•ืจืฆื™ื•ื ืœื™, ื•ืชื ื•ืขื” ืœืžื˜ื” ืื• ืœืžืขืœื” ืชื™ืจืื” ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ื™ืจื” ืžืืฉืจ ืชื ื•ืขื” ืฉืžืืœื” ืื• ื™ืžื™ื ื”. ืืคืงื˜ ื–ื” ื‘ื•ืœื˜ ืžืื•ื“ ื‘"ื ื—ืฉ" (ืžืฉื—ืง 1). ืœ"ื˜ื ืงื™ื" (ืžืฉื—ืง 2) ืื™ืŸ ื—ื™ืกืจื•ืŸ ื›ื–ื”, ืฉื›ืŸ ื”ืคืœื˜ ืฉื ืžืื•ืจื’ืŸ ืขืœ ื™ื“ื™ ืฆื‘ื™ืขืช ืคื™ืงืกืœื™ื ืฉืœ ื”ืžืกืš ื‘ืฆื‘ืขื™ื ืฉื•ื ื™ื. ืืคืฉืจ ืœื•ืžืจ ืฉื›ืชื‘ืชื™ ืขื™ื‘ื•ื“. ื ื›ื•ืŸ, ื–ื” ื›ื‘ืจ ืงืฆืช ื™ื•ืชืจ ืžืกื•ื‘ืš, ืื ื›ื™ ื”ืจื‘ื” ื™ื•ืชืจ ืžืขื ื™ื™ืŸ.

ืœืžืฉื—ืง ื”ื–ื”, ื–ื” ื™ืกืคื™ืง ืœืชืืจ ืืช ื”ืžืขืจื›ืช ืฉืœื™ ืœื”ืฆื’ืช ืคื™ืงืกืœื™ื ืขืœ ื”ืžืกืš. ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ื”ื—ืœืง ื”ืขื™ืงืจื™ ืฉืœ ื”ืžืฉื—ืง. ื•ื›ืœ ื”ืฉืืจ ืืชื” ื™ื›ื•ืœ ืœื”ืžืฆื™ื ื‘ืขืฆืžืš.

ืื– ืžื” ืฉืืชื” ืจื•ืื” ืขืœ ื”ืžืกืš ื”ื•ื ืจืง ืงื‘ื•ืฆื” ืฉืœ ืžืœื‘ื ื™ื ืฆื‘ืขื•ื ื™ื™ื ื ืขื™ื.

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ืกื˜ ืžืœื‘ืŸ

ื›ืœ ืžืœื‘ืŸ ืžื™ื•ืฆื’ ืขืœ ื™ื“ื™ ืžื˜ืจื™ืฆื” โ€‹โ€‹ืžืœืื” ื‘ืžืกืคืจื™ื. ืื’ื‘, ืื ื™ ื™ื›ื•ืœ ืœื”ื“ื’ื™ืฉ ื ื™ื•ืื ืก ืื—ื“ ืžืขื ื™ื™ืŸ โ€“ ื›ืœ ื”ืžื˜ืจื™ืฆื•ืช ื‘ืžืฉื—ืง ืžืชื•ื›ื ืชื•ืช ื›ืžืขืจืš ื—ื“ ืžื™ืžื“ื™. ืœื ื“ื• ืžื™ืžื“ื™, ืืœื ื—ื“ ืžื™ืžื“ื™! ืžืขืจื›ื™ื ื—ื“ ืžื™ืžื“ื™ื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืงืœื™ื ื•ืžื”ื™ืจื™ื ืœืขื‘ื•ื“ ืื™ืชื.

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื“ื•ื’ืžื” ืœืžื˜ืจื™ืฆืช ื˜ื ืง ืžืฉื—ืง

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ืžื™ื™ืฆื’ ืืช ื”ืžื˜ืจื™ืฆื” โ€‹โ€‹ืฉืœ ื˜ื ืง ืžืฉื—ืง ืขื ืžืขืจืš ื—ื“-ืžืžื“ื™

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื“ื•ื’ืžื” ื™ื•ืชืจ ืžืžื—ื™ืฉื” ืฉืœ ื™ื™ืฆื•ื’ ืžื˜ืจื™ืฆื” โ€‹โ€‹ืขืœ ื™ื“ื™ ืžืขืจืš ื—ื“ ืžื™ืžื“ื™

ืื‘ืœ ื”ื’ื™ืฉื” ืœืืœืžื ื˜ื™ื ืฉืœ ื”ืžืขืจืš ืžืชืจื—ืฉืช ื‘ืœื•ืœืื” ื›ืคื•ืœื”, ื›ืื™ืœื• ืœื ืžื“ื•ื‘ืจ ื‘ืžืขืจืš ื—ื“ ืžื™ืžื“ื™, ืืœื ื‘ืžืขืจืš ื“ื• ืžื™ืžื“ื™. ื–ื” ื ืขืฉื” ื›ื™ ืื ื—ื ื• ืขื“ื™ื™ืŸ ืขื•ื‘ื“ื™ื ืขื ืžื˜ืจื™ืฆื•ืช.

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ืžืขื‘ืจ ืฉืœ ืžืขืจืš ื—ื“ ืžื™ืžื“ื™ ื‘ืœื•ืœืื” ื›ืคื•ืœื”. Y ื”ื•ื ืžื–ื”ื” ื”ืฉื•ืจื”, X ื”ื•ื ืžื–ื”ื” ื”ืขืžื•ื“ื”

ืฉื™ืžื• ืœื‘ ืฉื‘ืžืงื•ื ืžื–ื”ื™ ื”ืžื˜ืจื™ืฆื” โ€‹โ€‹ื”ืจื’ื™ืœื™ื i, j, ืื ื™ ืžืฉืชืžืฉ ื‘ืžื–ื”ื™ื x ื•-y. ืื–, ื ืจืื” ืœื™, ื ืขื™ื ื™ื•ืชืจ ืœืขื™ืŸ ื•ื‘ืจื•ืจ ื™ื•ืชืจ ืœืžื•ื—. ื‘ื ื•ืกืฃ, ืกื™ืžื•ืŸ ื›ื–ื” ืžืืคืฉืจ ืœื”ืงืจื™ืŸ ื‘ืฆื•ืจื” ื ื•ื—ื” ืืช ื”ืžื˜ืจื™ืฆื•ืช ื”ืžืฉืžืฉื•ืช ืขืœ ืฆื™ืจื™ ื”ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ืฉืœ ืชืžื•ื ื” ื“ื•-ืžืžื“ื™ืช.

ืขื›ืฉื™ื• ืœื’ื‘ื™ ืคื™ืงืกืœื™ื, ืฆื‘ืข ื•ืชืฆื•ื’ื”. ื”ืคื•ื ืงืฆื™ื” StretchDIBits (Header: windows.h; Library: gdi32.lib) ืžืฉืžืฉืช ืœืคืœื˜. ื‘ื™ืŸ ื”ื™ืชืจ ืžื•ืขื‘ืจื™ื ืœืคื•ื ืงืฆื™ื” ื–ื•: ื”ืžื›ืฉื™ืจ ื‘ื• ืžื•ืฆื’ืช ื”ืชืžื•ื ื” (ื‘ืžืงืจื” ืฉืœื™ ืžื“ื•ื‘ืจ ื‘ืงื•ื ืกื•ืœืช Windows), ื”ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ืฉืœ ืชื—ื™ืœืช ื”ืฆื’ืช ื”ืชืžื•ื ื”, ื”ืจื•ื—ื‘/ื’ื•ื‘ื”ื” ื•ื”ืชืžื•ื ื”. ืขืฆืžื• ื‘ืฆื•ืจื” ืฉืœ ืžืคืช ืกื™ื‘ื™ื•ืช (bitmap), ื”ืžื™ื•ืฆื’ืช ืขืœ ื™ื“ื™ ืžืขืจืš ืฉืœ ื‘ืชื™ื. ืžืคืช ืกื™ื‘ื™ื•ืช ื›ืžืขืจืš ืฉืœ ื‘ืชื™ื!

ื”ืคื•ื ืงืฆื™ื” 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_bitmapMemory:

// 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++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื“ื•ื’ืžื” ืœืžื™ืœื•ื™ ืžืคืช ืกื™ื‘ื™ื•ืช (Pixel Matrix) ื‘ืžื™ื“ืข ื”ืžื‘ื•ืกืก ืขืœ ื”ืžื˜ืจื™ืฆื” โ€‹โ€‹ื”ืžืกืคืจื™ืช (Digital Matrix) ืฉืœ ืžื’ืจืฉ ื”ืžืฉื—ืงื™ื (ืžื“ื“ื™ ื”ืฆื‘ืข ืื™ื ื ืชื•ืืžื™ื ืืช ื”ืžื“ื“ื™ื ื‘ืžืฉื—ืง)

ืืฆื™ื’ ื’ื ื—ืชื™ื›ืช ืงื•ื“ ืืžื™ืชื™ ืžื”ืžืฉื—ืง. ืœืžืฉืชื ื” colorIndex ื‘ื›ืœ ืื™ื˜ืจืฆื™ื” ืฉืœ ื”ืœื•ืœืื” ืžื•ืงืฆื” ืขืจืš (ืื™ื ื“ืงืก ืฆื‘ืข) ืžื”ืžื˜ืจื™ืฆื” โ€‹โ€‹ื”ืžืกืคืจื™ืช ืฉืœ ืฉื“ื” ื”ืžืฉื—ืง (mainDigitalMatrix). ื•ืื– ื”ืฆื‘ืข ืขืฆืžื• ื ื›ืชื‘ ืœืžืฉืชื ื” ื”ืฆื‘ืข ื‘ื”ืชื‘ืกืก ืขืœ ื”ืื™ื ื“ืงืก. ื™ืชืจ ืขืœ ื›ืŸ, ื”ืฆื‘ืข ื”ืžืชืงื‘ืœ ืžื—ื•ืœืง ืœื™ื—ืก ืฉืœ ืื“ื•ื, ื™ืจื•ืง ื•ื›ื—ื•ืœ (RGB). ื•ื™ื—ื“ ืขื ื”-indent (pixelPadding), ื”ืžื™ื“ืข ื”ื–ื” ื ื›ืชื‘ ืœืคื™ืงืกืœ ืฉื•ื‘ ื•ืฉื•ื‘, ื•ื™ื•ืฆืจ ืชืžื•ื ื” ืฆื‘ืขื•ื ื™ืช ื‘ืžืคืช ื”ืกื™ื‘ื™ื•ืช.

ื”ืงื•ื“ ืžืฉืชืžืฉ ื‘ืžืฆื‘ื™ืขื™ื ื•ื‘ืคืขื•ืœื•ืช ืกื™ื‘ื™ื•ืช, ืžื” ืฉืขืœื•ืœ ืœื”ื™ื•ืช ืงืฉื” ืœื”ื‘ื ื”. ืื– ืื ื™ ืžืžืœื™ืฅ ืœืš ืœืงืจื•ื ื‘ื ืคืจื“ ืื™ืคืฉื”ื• ืื™ืš ืžื‘ื ื™ื ื›ืืœื” ืขื•ื‘ื“ื™ื.

ืžื™ืœื•ื™ ืžืคืช ืกื™ื‘ื™ื•ืช ื‘ืžื™ื“ืข ื”ืžื‘ื•ืกืก ืขืœ ื”ืžื˜ืจื™ืฆื” โ€‹โ€‹ื”ืžืกืคืจื™ืช ืฉืœ ืฉื“ื” ื”ืžืฉื—ืง:

// 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. ืœืœื ืงื•ืœ! ๐Ÿ˜‰ ืฉืืจ ื”ื—ืœืงื™ื ื”ื ืจืง ืžืขื•ืฃ.

ื›ืžื•ื‘ืŸ, ื”ืžืฉื—ืง "Tanks" ืžืขื•ืฆื‘ ื”ืจื‘ื” ื™ื•ืชืจ ืžืกื•ื‘ืš ืž"ื”ื ื—ืฉ". ื›ื‘ืจ ื”ืฉืชืžืฉืชื™ ื‘ืฉืคืช C++, ื›ืœื•ืžืจ ืชื™ืืจืชื™ ืื•ื‘ื™ื™ืงื˜ื™ ืžืฉื—ืง ืฉื•ื ื™ื ืขื ืžื—ืœืงื•ืช. ื™ืฆืจืชื™ ืื•ืกืฃ ืžืฉืœื™ - ื ื™ืชืŸ ืœืจืื•ืช ืืช ื”ืงื•ื“ ื‘-headers/Box.h. ืื’ื‘, ืœืื•ืกืฃ ื™ืฉ ื›ื ืจืื” ื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ. ืžืฆื‘ื™ืขื™ื ืžืฉื•ืžืฉื™ื. ืขื‘ื“ ืขื ื–ื™ื›ืจื•ืŸ. ืื ื™ ื—ื™ื™ื‘ ืœื•ืžืจ ืฉื”ืกืคืจ ืขื–ืจ ืœื™ ืžืื•ื“. ื”ืชื—ืœืช C++ ื“ืจืš ืชื›ื ื•ืช ืžืฉื—ืงื™ื. ื–ื•ื”ื™ ื”ืชื—ืœื” ืžืฆื•ื™ื ืช ืœืžืชื—ื™ืœื™ื ื‘-C++. ื”ื•ื ืงื˜ืŸ, ืžืขื ื™ื™ืŸ ื•ืžืื•ืจื’ืŸ ื”ื™ื˜ื‘.

ืœืงื— ื‘ืขืจืš ืฉื™ืฉื” ื—ื•ื“ืฉื™ื ืœืคืชื— ืืช ื”ืžืฉื—ืง ื”ื–ื”. ื›ืชื‘ืชื™ ื‘ืขื™ืงืจ ื‘ื–ืžืŸ ืืจื•ื—ืช ืฆื”ืจื™ื™ื ื•ื—ื˜ื™ืคื™ื ื‘ืขื‘ื•ื“ื”. ื”ื•ื ื™ืฉื‘ ื‘ืžื˜ื‘ื— ื”ืžืฉืจื“ื™, ื“ืจืก ืขืœ ืื•ื›ืœ ื•ื›ืชื‘ ืงื•ื“. ืื• ื‘ื‘ื™ืช ืœืืจื•ื—ืช ืขืจื‘. ืื– ืงื™ื‘ืœืชื™ ื›ืืœื” "ืžืœื—ืžื•ืช ืžื˜ื‘ื—". ื›ืžื• ืชืžื™ื“, ื”ืฉืชืžืฉืชื™ ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘ืžื—ื‘ืจืช, ื•ื›ืœ ื”ื“ื‘ืจื™ื ื”ืจืขื™ื•ื ื™ื™ื ื ื•ืœื“ื• ื‘ื”.

ื‘ืกื•ืฃ ื”ื—ืœืง ื”ืžืขืฉื™ ืืฉืœื•ืฃ ื›ืžื” ืกืจื™ืงื•ืช ืžื”ืžื—ื‘ืจืช ืฉืœื™. ืœื”ืจืื•ืช ืžื” ื‘ื“ื™ื•ืง ื›ืชื‘ืชื™, ืฆื™ื™ืจืชื™, ืกืคืจืชื™, ืขื™ืฆื‘ืชื™...

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ืขื™ืฆื•ื‘ ืชืžื•ื ืช ื˜ื ืง. ื•ื”ื”ื’ื“ืจื” ืฉืœ ื›ืžื” ืคื™ืงืกืœื™ื ื›ืœ ืžื™ื›ืœ ืฆืจื™ืš ืœืชืคื•ืก ืขืœ ื”ืžืกืš

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื—ื™ืฉื•ื‘ ื”ืืœื’ื•ืจื™ืชื ื•ื”ื ื•ืกื—ืื•ืช ืœืกื™ื‘ื•ื‘ ื”ืžื™ื›ืœ ืกื‘ื™ื‘ ืฆื™ืจื•

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื“ื™ืื’ืจืžื” ืฉืœ ื”ืื•ืกืฃ ืฉืœื™ (ื–ื” ืขื ื“ืœื™ืคืช ื”ื–ื™ื›ืจื•ืŸ, ืงืจื•ื‘ ืœื•ื•ื“ืื™). ื”ืื•ืกืฃ ื ื•ืฆืจ ื›ืจืฉื™ืžื” ืžืงื•ืฉืจืช

DevOps C++ ื•-"Kitchen Wars", ืื• ืื™ืš ื”ืชื—ืœืชื™ ืœื›ืชื•ื‘ ืžืฉื—ืงื™ื ืชื•ืš ื›ื“ื™ ืื›ื™ืœื”
ื•ืืœื” ื ื™ืกื™ื•ื ื•ืช ื—ืกืจื™ ืชื•ื—ืœืช ืœื“ืคื•ืง ื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช ืœืžืฉื—ืง

ะขะตะพั€ะธั

"ืืคื™ืœื• ืžืกืข ืฉืœ ืืœืฃ ืžื™ื™ืœ ืžืชื—ื™ืœ ื‘ืฆืขื“ ื”ืจืืฉื•ืŸ" (ื—ื•ื›ืžื” ืกื™ื ื™ืช ืขืชื™ืงื”)

ื‘ื•ืื• ื ืขื‘ื•ืจ ืžืคืจืงื˜ื™ืงื” ืœืชื™ืื•ืจื™ื”! ืื™ืš ืืชื” ืžื•ืฆื ื–ืžืŸ ืœืชื—ื‘ื™ื‘ ืฉืœืš?

  1. ืงื‘ืข ืžื” ืืชื” ื‘ืืžืช ืจื•ืฆื” (ืื‘ื•ื™, ื–ื” ื”ื›ื™ ืงืฉื”).
  2. ืงื‘ืข ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช.
  3. ืœื”ืงืจื™ื‘ ืืช ื›ืœ ื”"ืžื™ื•ืชืจื™ื" ืœืžืขืŸ ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช ื’ื‘ื•ื”ื™ื ื™ื•ืชืจ.
  4. ื”ืชืงื“ื ืœืขื‘ืจ ื”ืžื˜ืจื•ืช ืฉืœืš ื›ืœ ื™ื•ื.
  5. ืืœ ืชืฆืคื• ืฉื™ื”ื™ื• ืฉืขืชื™ื™ื-ืฉืœื•ืฉ ืฉืœ ื–ืžืŸ ืคื ื•ื™ ืœืชื—ื‘ื™ื‘.

ืžืฆื“ ืื—ื“, ืืชื” ืฆืจื™ืš ืœืงื‘ื•ืข ืžื” ืืชื” ืจื•ืฆื” ื•ืœืชืขื“ืฃ. ืžืฆื“ ืฉื ื™, ื ื™ืชืŸ ืœื ื˜ื•ืฉ ื—ืœืง ืžื”ืžืงืจื™ื/ืคืจื•ื™ืงื˜ื™ื ืœื˜ื•ื‘ืช ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช ืืœื•. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ืชืฆื˜ืจืš ืœื”ืงืจื™ื‘ ื›ืœ ื“ื‘ืจ "ืžื™ื•ืชืจ". ืฉืžืขืชื™ ืื™ืคืฉื”ื• ืฉื‘ื—ื™ื™ื ืฆืจื™ื›ื•ืช ืœื”ื™ื•ืช ืžืงืกื™ืžื•ื ืฉืœื•ืฉ ืคืขื™ืœื•ื™ื•ืช ืขื™ืงืจื™ื•ืช. ืื– ืชื•ื›ืœ ืœื”ืชืžื•ื“ื“ ืื™ืชื ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ. ื•ืคืจื•ื™ืงื˜ื™ื/ื›ื™ื•ื•ื ื™ื ื ื•ืกืคื™ื ื™ืชื—ื™ืœื• ืœื”ืขืžื™ืก ืขืœ ื ื“ื•ืฉ. ืื‘ืœ ื–ื” ื”ื›ืœ, ื›ื ืจืื”, ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™ ื•ืื™ื ื“ื™ื•ื•ื™ื“ื•ืืœื™.

ื™ืฉ ื›ืœืœ ื–ื”ื‘ ืžืกื•ื™ื: ืœืขื•ืœื ืืœ ืชื”ื™ื” ืœืš ื™ื•ื ืฉืœ 0%! ืœืžื“ืชื™ ืขืœ ื–ื” ื‘ืžืืžืจ ืฉืœ ืžืคืชื— ืื™ื ื“ื™. ืื ืืชื” ืขื•ื‘ื“ ืขืœ ืคืจื•ื™ืงื˜, ืื– ืขืฉื” ืžืฉื”ื• ื‘ื ื™ื“ื•ืŸ ื›ืœ ื™ื•ื. ื•ื–ื” ืœื ืžืฉื ื” ื›ืžื” ืืชื” ืžืจื•ื•ื™ื—. ื›ืชื‘ื• ืžื™ืœื” ืื—ืช ืื• ืฉื•ืจืช ืงื•ื“ ืื—ืช, ืฆืคื• ื‘ืกืจื˜ื•ืŸ ื”ื“ืจื›ื” ืื—ื“, ืื• ืชืงืขื• ืžืกืžืจ ืื—ื“ ื‘ืœื•ื— - ืคืฉื•ื˜ ืขืฉื• ืžืฉื”ื•. ื”ื—ืœืง ื”ื›ื™ ืงืฉื” ื–ื” ืœื”ืชื—ื™ืœ. ื‘ืจื’ืข ืฉืชืชื—ื™ืœ, ื›ื ืจืื” ืฉืชืขืฉื” ืงืฆืช ื™ื•ืชืจ ืžืžื” ืฉืจืฆื™ืช. ืื– ืืชื” ื›ืœ ื”ื–ืžืŸ ืชืชืงื“ื ืœืขื‘ืจ ื”ืžื˜ืจื” ืฉืœืš, ื•ืชืืžื™ืŸ ืœื™, ืžื”ืจ ืžืื•ื“. ืื—ืจื™ ื”ื›ืœ, ื”ื‘ืœื ื”ืขื™ืงืจื™ ื‘ื›ืœ ื”ื“ื‘ืจื™ื ื”ื•ื ื“ื—ื™ื™ื ื•ืช.

ื•ื—ืฉื•ื‘ ืœื–ื›ื•ืจ ืฉืืกื•ืจ ืœื–ืœื–ืœ ื•ืœื”ืชืขืœื ืžื”"ื ืกื•ืจืช" ื”ืคื ื•ื™ ืฉืœ ื”ื–ืžืŸ ื‘-5, 10, 15 ื“ืงื•ืช, ื—ื›ื• ืœื›ืžื” "ืœื•ื’ื™ื" ื’ื“ื•ืœื™ื ืฉื™ืžืฉื›ื• ืฉืขื”-ืฉืขืชื™ื™ื. ืืชื” ืขื•ืžื“ ื‘ืชื•ืจ? ืชื—ืฉื•ื‘ ืขืœ ืžืฉื”ื• ืขื‘ื•ืจ ื”ืคืจื•ื™ืงื˜ ืฉืœืš. ืืชื” ืขื•ืœื” ื‘ืžื“ืจื’ื•ืช ื”ื ืขื•ืช? ืจืฉื•ื ืžืฉื”ื• ื‘ืžื—ื‘ืจืช. ืืชื” ืื•ื›ืœ ื‘ืื•ื˜ื•ื‘ื•ืก? ืื•ืงื™ื™, ืงืจื ืื™ื–ื” ืžืืžืจ. ื ืฆืœ ื›ืœ ื”ื–ื“ืžื ื•ืช. ื”ืคืกื™ืงื• ืœืฆืคื•ืช ื‘ื—ืชื•ืœื™ื ื•ื›ืœื‘ื™ื ื‘ื™ื•ื˜ื™ื•ื‘! ืืœ ืชืชืขืกืง ืขื ื”ืžื•ื— ืฉืœืš!

ื•ื”ืื—ืจื•ืŸ. ืื, ืœืื—ืจ ืงืจื™ืืช ืžืืžืจ ื–ื”, ืื”ื‘ืช ืืช ื”ืจืขื™ื•ืŸ ืœื™ืฆื•ืจ ืžืฉื—ืงื™ื ืœืœื ืฉื™ืžื•ืฉ ื‘ืžื ื•ืขื™ ืžืฉื—ืง, ืื– ื–ื›ื•ืจ ืืช ื”ืฉื ืงื™ื™ืกื™ ืžื•ืจืื˜ื•ืจื™. ืœื‘ื—ื•ืจ ื”ื–ื” ื™ืฉ ัะฐะนั‚. ื‘ืงื˜ืข "ืฆืคื” -> ืคืจืงื™ื ืงื•ื“ืžื™ื" ืชืžืฆืื• ืžื“ืจื™ื›ื™ ื•ื™ื“ืื• ืžื“ื”ื™ืžื™ื ื‘ื—ื™ื ื ื›ื™ืฆื“ ืœื™ืฆื•ืจ ืžืฉื—ืง ืžืงืฆื•ืขื™ ืžืืคืก. ื‘ื—ืžื™ืฉื” ืฉื™ืขื•ืจื™ื ืฉืœ Intro to C for Windows, ืื•ืœื™ ืชืœืžื“ื• ื™ื•ืชืจ ืžืืฉืจ ื‘ื—ืžืฉ ืฉื ื•ืช ืœื™ืžื•ื“ ื‘ืื•ื ื™ื‘ืจืกื™ื˜ื” (ืžื™ืฉื”ื• ื›ืชื‘ ืขืœ ื›ืš ื‘ืชื’ื•ื‘ื•ืช ืžืชื—ืช ืœืกืจื˜ื•ืŸ).

ืงื™ื™ืกื™ ื’ื ืžืกื‘ื™ืจ ื›ื™ ืขืœ ื™ื“ื™ ืคื™ืชื•ื— ืžื ื•ืข ืžืฉื—ืง ืžืฉืœืš, ืชื”ื™ื” ืœืš ื”ื‘ื ื” ื˜ื•ื‘ื” ื™ื•ืชืจ ืฉืœ ื›ืœ ื”ืžื ื•ืขื™ื ื”ืงื™ื™ืžื™ื. ื‘ืขื•ืœื ื”ืžืกื’ืจืช, ืฉื‘ื• ื›ื•ืœื ืžื ืกื™ื ืœื‘ืฆืข ืื•ื˜ื•ืžืฆื™ื”, ืชืœืžื“ื• ืื™ืš ืœื™ืฆื•ืจ, ืœื ืœื”ืฉืชืžืฉ. ืœื”ื‘ื™ืŸ ืืช ื˜ื‘ืขื ืฉืœ ืžื—ืฉื‘ื™ื. ื•ืืชื” ื’ื ืชื”ืคื•ืš ืœืžืชื›ื ืช ื”ืจื‘ื” ื™ื•ืชืจ ืื™ื ื˜ืœื™ื’ื ื˜ื™ ื•ื‘ื•ื’ืจ - ืžืงืฆื•ืขืŸ.

ื‘ื”ืฆืœื—ื” ื‘ื“ืจืš ืฉื‘ื—ืจืช! ื•ื‘ื•ืื• ื ื”ืคื•ืš ืืช ื”ืขื•ืœื ืœืžืงืฆื•ืขื™ ื™ื•ืชืจ.

ืžื—ื‘ืจ: ื’ืจื ืงื™ืŸ ืื ื“ืจื™ื™, DevOps



ืžืงื•ืจ: www.habr.com