DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ

"เบ‚เป‰เบญเบเบฎเบนเป‰เบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰เบซเบเบฑเบ‡เป€เบฅเบตเบ" Socrates

เบชเปเบฒเบฅเบฑเบšเปƒเบœ: เบชเปเบฒเบฅเบฑเบšเบ„เบปเบ™เป„เบญเบ—เบตเบ—เบตเปˆเบ–เบปเปˆเบกเบ™เปเป‰เบฒเบฅเบฒเบเปƒเบชเปˆเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบฑเบ‡เปเบปเบ” เปเบฅเบฐเบขเบฒเบเบซเบผเบดเป‰เบ™เป€เบเบกเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ!

เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบซเบเบฑเบ‡: เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบฝเบ™เป€เบเบกเปƒเบ™ C/C ++, เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™เบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™!

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบˆเบปเป‰เบฒเบ„เบงเบ™เบญเปˆเบฒเบ™เบ™เบตเป‰: เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบฏเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เปเบ•เปˆเบ‚เป‰เบญเบเบžเบฐเบเบฒเบเบฒเบกเบฅเบฐเบซเบฑเบ”เบ—เบธเบเป†เบญเบฒเบ—เบดเบ”. เป€เบžเบฒเบฐเบ‚เป‰เบญเบเบฎเบฑเบเป€เบเบก!

เบชเบฐเบšเบฒเบเบ”เบต เบ‚เป‰เบญเบเบŠเบทเปˆ Andrey Grankin, เบ‚เป‰เบญเบเป€เบ›เบฑเบ™ DevOps เบขเบนเปˆ Luxoft. เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เปเบ•เปˆเบ‚เป‰เบญเบเบžเบฐเบเบฒเบเบฒเบกเบฅเบฐเบซเบฑเบ”เบ—เบธเบเป†เบญเบฒเบ—เบดเบ”. เป€เบžเบฒเบฐเบ‚เป‰เบญเบเบฎเบฑเบเป€เบเบก!

เบญเบธเบ”เบชเบฒเบซเบฐเบเปเบฒเป€เบเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเปเบกเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบ‚เปˆเบฒเบงเบฅเบทเปƒเบ™เบกเบทเป‰เบ™เบตเป‰เบซเบผเบฒเบเบเปˆเบงเบฒเบญเบธเบ”เบชเบฒเบซเบฐเบเปเบฒเบฎเบนเบšเป€เบ‡เบปเบฒ. เป€เบเบกเป„เบ”เป‰เบ–เบทเบเบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ™เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบต, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบžเบทเป‰เบ™เบ–เบฒเบ™. เป€เบกเบทเปˆเบญเป€เบงเบฅเบฒเบœเปˆเบฒเบ™เป„เบ›, เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบกเป€เบฅเบตเปˆเบกเบ›เบฐเบเบปเบ”เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบเบฃเบฒเบŸเบดเบ, เบŸเบตเบŠเบดเบ เปเบฅเบฐเบชเบฝเบ‡เบ—เบตเปˆเบ•เบฑเป‰เบ‡เป„เบงเป‰เปเบฅเป‰เบง. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เป€เบเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เปเบฅเบฐเบšเปเปˆ bother เบเปˆเบฝเบงเบเบฑเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบ™. เปเบ•เปˆเบ„เบฝเบ‡เบ„เบนเปˆเบเบฑเบšเบžเบงเบเบกเบฑเบ™, เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ, เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ "เบ•เบฒเบšเบญเบ”" เปเบฅเบฐเบ—เปเบฒเบฅเบฒเบ. เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบเบกเบซเบผเบฒเบเปเบกเปˆเบ™เปƒเบชเปˆ conveyor เป„เบ”เป‰. เปเบฅเบฐเบ›เบฐเบฅเบดเบกเบฒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐเบŠเบฐเบ™เบฐเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบกเบฑเบ™.

เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เป€เบกเบทเปˆเบญเบซเบผเบตเป‰เบ™เป€เบเบกเบ‚เบญเบ‡เบ„เบปเบ™เบญเบทเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป‚เบ”เบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ, เบ”เบดเบ™เบ•เบญเบ™, เบฅเบฑเบเบชเบฐเบ™เบฐ, เบเบปเบ™เป„เบเป€เบเบกเบ—เบตเปˆเบ„เบปเบ™เบญเบทเปˆเบ™เบกเบฒ. เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบงเปˆเบฒ ...

โ€ฆ เบกเบฑเบ™เป€เบ–เบดเบ‡เป€เบงเบฅเบฒเปเบฅเป‰เบงเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เป‚เบฅเบเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเป€เบญเบ‡, เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เป‰เบญเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เป‚เบฅเบเบ—เบตเปˆเป€เบฎเบปเบฒเป€เบ›เบฑเบ™เบžเบฃเบฐเบšเบดเบ”เบฒ, เปเบฅเบฐเบžเบฃเบฐเบšเบธเบ”, เปเบฅเบฐเบžเบฃเบฐเบงเบดเบ™เบเบฒเบ™เบšเปเบฅเบดเบชเบธเบ”!

เปเบฅเบฐเบ‚เป‰เบญเบเป€เบŠเบทเปˆเบญเบขเปˆเบฒเบ‡เบˆเบดเบ‡เปƒเบˆเบงเปˆเบฒเป‚เบ”เบเบเบฒเบ™เบ‚เบฝเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเป€เบญเบ‡เปเบฅเบฐเบซเบผเบตเป‰เบ™เบกเบฑเบ™, เป€เบˆเบปเป‰เบฒเบˆเบฐเบชเบฒเบกเบฒเบ”เบ–เบญเบ”เป€เบเบตเบšเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ, เป€เบŠเบฑเบ”เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเปเบฅเบฐเบเบปเบเบฅเบฐเบ”เบฑเบšเบซเป‰เบญเบ‡เป‚เบ”เบเบชเบฒเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ, เบเบฒเบเป€เบ›เบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เปเบฅเบฐเบชเบปเบกเบšเบนเบ™เปเบšเบš.

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบ‚เป‰เบญเบเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบšเบญเบเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเบ™เป‰เบญเบเป†เปƒเบ™ C / C ++ เปเบ™เบงเปƒเบ”, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡เปเบฅเบฐเบšเปˆเบญเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเบŠเบญเบเบซเบฒเป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบญเบฐเบ”เบดเป€เบฅเบเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบซเบเบธเป‰เบ‡เบขเบนเปˆ. เบกเบฑเบ™เป€เบ›เบฑเบ™เบซเบปเบงเบ‚เปเป‰เปเบฅเบฐเบญเบฐเบ—เบดเบšเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบšเบธเบเบ„เบปเบ™. เป€เบญเบเบฐเบชเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเป‚เบ‡เปˆเบˆเป‰เบฒเปเบฅเบฐเบชเบฑเบ”เบ—เบฒ, เบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเบžเบฒเบšเบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเป‚เบฅเบเปƒเบ™เบ‚เบฐเบ™เบฐเบ™เบตเป‰. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, "เบเบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบชเบฐเบซเบกเบญเบ‡เบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ!".

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

"เบ„เบงเบฒเบกเบฎเบนเป‰เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เปเบกเปˆเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบ" Confucius

เบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเปเบกเปˆเบ™เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ!


เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบ. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ‚เบฝเบ™โ€‹เบšเปเปˆโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เบ›เบฐโ€‹เบˆเปเบฒโ€‹เบงเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ™เบฑเป‰เบ™โ€‹, เปเบ•เปˆโ€‹เบเบฑเบ‡โ€‹เปเบ•เป‰เบกโ€‹, เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹, เบเบฒเบ™โ€‹เบญเบญเบโ€‹เปเบšเบšโ€‹เปเบœเบ™โ€‹เบงเบฒเบ”โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹, เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹. เปƒเบŠเป‰ notepad เบชเบฐเป€เปเบต เปเบฅเบฐเบ‚เบฝเบ™เบ”เป‰เบงเบเบชเปเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบกเบฑเบ™เบชเบฐเบญเบฒเบ”, เบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเปเบฅเบฐเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰, IMHO.

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ‚เป‰เบญเบ (เป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบ) . เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบฅเบฒเบงเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ. เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฝเบเบ‡เบฒเบ™เบ›เบฐเบˆเปเบฒเบงเบฑเบ™, เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”, เบฎเบนเบšเปเบ•เป‰เบก, เปเบœเบ™เบงเบฒเบ”, เบงเบดเบ—เบตเปเบเป‰เป„เบ‚, เบšเบฑเบ™เบŠเบตเบ”เปเบฒ, เบฅเบฐเบซเบฑเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบˆเบฑเบ”เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเบฒเบกเป‚เบ„เบ‡เบเบฒเบ™ (เบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‚เบญเบ‡เบ‚เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบš "เบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™", เป€เบžเบฒเบฐเบงเปˆเบฒเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบ”เบเปเปˆเบ•เบฒเบกเบชเบฒเบกเบฒเบ”เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบšเปเปˆเบขเบธเบ”เบขเบฑเป‰เบ‡).

  • เป‚เบ„เบ‡เบเบฒเบ™เบ—เบต 0: เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฐเบ™เบดเบเบชเบฐเบ–เบฒเบ›เบฐเบ™เบดเบ Demo 3D เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ C# เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบก Unity. เบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบต macOS เปเบฅเบฐ Windows.
  • เป€เบเบก 1: console game Simple Snake (เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบ—เบธเบเบ„เบปเบ™เปƒเบ™เบ™เบฒเบก "เบ‡เบน") เบชเปเบฒเบฅเบฑเบš Windows. เบ‚เบฝเบ™โ€‹เปƒเบ™ C.
  • เป€เบเบก 2: console เป€เบเบก Crazy Tanks (เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบ—เบธเบเบ„เบปเบ™เปƒเบ™เบ™เบฒเบก โ€œTanksโ€), เบ‚เบฝเบ™เปƒเบ™ C++ (เปƒเบŠเป‰เบซเป‰เบญเบ‡เบฎเบฝเบ™) เปเบฅเบฐเบชเปเบฒเบฅเบฑเบš Windows.

เป‚เบ„เบ‡เบเบฒเบ™ 0 เบเบฒเบ™เบชเบฒเบ—เบดเบ”เบชเบฐเบ–เบฒเบ›เบฐเบ™เบดเบ

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบเบฒเบ™เบชเบฒเบ—เบดเบ”เบชเบฐเบ–เบฒเบ›เบฐเบ™เบดเบ 3D Scene

เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบขเบนเปˆโ€‹เปƒเบ™ C / C ++โ€‹, เปเบ•เปˆโ€‹เปƒเบ™ C# เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบˆเบฑเบโ€‹เป€เบเบก Unityโ€‹. เป€เบ„เบทเปˆเบญเบ‡ เบˆเบฑเบ เบ™เบตเป‰ เบšเปเปˆ เป„เบ”เป‰ เป€เบ›เบฑเบ™ เบ„เบงเบฒเบก เบ•เป‰เบญเบ‡ เบเบฒเบ™ เบเปˆเบฝเบง เบเบฑเบš เบฎเบฒเบ” เปเบง เป€เบ›เบฑเบ™ Unreal Engine, เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเปƒเบŠเป‰. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบญเบทเปˆเบ™เป†.

เป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ Unity เบšเปเปˆเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบเบก. เบ‚เป‰เบญเบเบขเบฒเบเบชเป‰เบฒเบ‡เบชเบฒเบ 3 เบกเบดเบ•เบดเบ”เป‰เบงเบเบ•เบปเบงเบฅเบฐเบ„เบญเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบฅเบฒเบง, เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ™เบฒเบ‡ (เบ‚เป‰เบญเบเบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบชเบฒเบงเบ—เบตเปˆเบ‚เป‰เบญเบเบฎเบฑเบเบเบฑเบš =) เบ•เป‰เบญเบ‡เบเป‰เบฒเบเบญเบญเบเป„เบ›เปเบฅเบฐเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเป‚เบฅเบเบญเป‰เบญเบกเบฎเบญเบšเบฅเบฒเบง. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒ Unity เปเบกเปˆเบ™เบซเบเบฑเบ‡, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบชเบฐเบ–เบฒเบ›เบฐเบ™เบดเบ Demo เป‚เบ„เบ‡เบเบฒเบ™เป„เบ”เป‰เป€เบเบตเบ”เบกเบฒ (เบŠเบทเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เป€เบเบทเบญเบšเบšเปเปˆเบกเบตเบšเปˆเบญเบ™เปƒเบ”). เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก, เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡, เบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป„เบ”เป‰เปƒเบŠเป‰เป€เบงเบฅเบฒเบชเบญเบ‡เป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบˆเปเบฒเบงเบฑเบ™.

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ”เป‰เบงเบโ€‹เบงเบดโ€‹เบ”เบตโ€‹เป‚เบญ tutorial เปƒเบ™ YouTube เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เปเบšเบš 3D เปƒเบ™โ€‹ blender. Blender เป€เบ›เบฑเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบŸเบฃเบตโ€‹เบ—เบตเปˆโ€‹เบ”เบตโ€‹เป€เบฅเบตเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เปเบšเบšโ€‹เบˆเปเบฒโ€‹เบฅเบญเบ‡ 3D (เปเบฅเบฐโ€‹เบซเบผเบฒเบโ€‹) เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹. เปเบฅเบฐเบ™เบตเป‰เบ„เบงเบฒเบกเบ•เบปเบเปƒเบˆเบฅเปเบ–เป‰เบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ ... เบกเบฑเบ™ turns เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡, เบชเบฑเบ”, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบกเปˆเบ™เบซเบปเบงเบ‚เปเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบซเบ™เบฑเบ‡เบชเบท. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐ. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบ™เบดเป‰เบงเบกเบท, เปเบ‚เป‰เบง, เบ•เบฒเปเบฅเบฐเบžเบฒเบเบชเปˆเบงเบ™เบญเบทเปˆเบ™เป†เบ‚เบญเบ‡เบฎเปˆเบฒเบ‡เบเบฒเบ, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบ—เบฒเบ‡เบงเบดเบžเบฒเบเบงเบดเบžเบฒเบ. เบเป‰เบฒเบกเป€เบ™เบทเป‰เบญเปƒเบšเบซเบ™เป‰เบฒเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบ™เบงเปƒเบ”? เบ„เบปเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเปเบ™เบงเปƒเบ”? เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡ "เปƒเบชเปˆ" เบเบฐเบ”เบนเบเปƒเบชเปˆเปเบ‚เบ™, เบ‚เบฒ, เบ™เบดเป‰เบงเบกเบท, phalanges เบ‚เบญเบ‡เบ™เบดเป‰เบงเบกเบท!

เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบเบฐเบ”เบนเบเบ„เป เปเบฅเบฐเบเบฐเบ”เบนเบเบ‚เป‰เบฒเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป€เบšเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ—เบณเบกเบฐเบŠเบฒเบ”. เบซเบผเบฑเบ‡เบˆเบฒเบเบšเบปเบ”เบฎเบฝเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ—เปˆเบฒเบ™เบฎเบนเป‰เบงเปˆเบฒเบœเบนเป‰เบชเป‰เบฒเบ‡เบฎเบนเบšเป€เบ‡เบปเบฒเบญเบฐเบ™เบดเป€เบกเบŠเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡เบงเบดเบ”เบตเป‚เบญ 30 เบงเบดเบ™เบฒเบ—เบต. เปเบ•เปˆเบฎเบนเบšเป€เบ‡เบปเบฒ 3D เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบŠเบปเปˆเบงเป‚เบกเบ‡! เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบญเบญเบเบˆเบฒเบเป‚เบฎเบ‡เบฎเบนเบšเป€เบ‡เบปเบฒเปเบฅเบฐเป€เบงเบปเป‰เบฒเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: "เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ•เบนเบ™ / เบฎเบนเบšเป€เบ‡เบปเบฒเบ—เบตเปˆเบ‚เบตเป‰เบฎเป‰เบฒเบ! เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เบตเบเบงเปˆเบฒ ... "เบ„เบปเบ™เป‚เบ‡เปˆ!

เปเบฅเบฐเบญเบตเบเบขเปˆเบฒเบ‡เบซเบ™เบถเปˆเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰. เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบซเบฑเบ™เบญเบญเบ, เบชเปˆเบงเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบญเบเปเบกเปˆเบ™เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ scene (เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš repository เปƒเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป‚เบ„เบ‡เบเบฒเบ™), เบ—เปˆเบฒเบ™เบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบš rotates เบ›เบฐเบกเบฒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบ”เบฑเบเบเบดเบ‡เป€เบ›เบฑเบ™เบฎเบนเบšเบŠเบปเบ‡. เป€เบžเบทเปˆเบญโ€‹เบ•เบฑเป‰เบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบซเบกเบธเบ™โ€‹เบเป‰เบญเบ‡โ€‹เบ–เปˆเบฒเบโ€‹เบฎเบนเบšโ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹, เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบ›เบฐโ€‹เบชเบฒเบ™โ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบˆเบธเบ”โ€‹เบ•เปเบฒโ€‹เปเบซเบ™เปˆเบ‡โ€‹เปƒเบ™โ€‹เบงเบปเบ‡โ€‹เบกเบปเบ™ (2Dโ€‹)โ€‹, เปเบฅเบฐโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เบเบปเบก (3Dโ€‹)โ€‹. เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เบฐเบซเบฅเบปเบเปเบกเปˆเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเบเบฝเบ”เบŠเบฑเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบขเบนเปˆเปƒเบ™เป‚เบฎเบ‡เบฎเบฝเบ™เปเบฅเบฐเบฎเบนเป‰เบกเบฑเบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบฅเบปเบš. เบšเบฒเบ‡เบ—เบต, เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบขเบนเปˆเปƒเบ™เป‚เบฎเบ‡เบฎเบฝเบ™เบžเบงเบเป€เบ‚เบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเป„เบ›เปƒเบŠเป‰เปƒเบ™เบŠเบตเบงเบดเบ”. เปเบ•เปˆโ€‹เป€เบกเบทเปˆเบญโ€‹เป€เบกเบปเบฒโ€‹เบกเบปเบงโ€‹เบเบฑเบšโ€‹เป€เบ›เบปเป‰เบฒโ€‹เปเบฒเบ, เบ„เบงเบฒเบกโ€‹เบเบฑเบ™, เปเบฅเป‰เบงโ€‹เบˆเบดเบ”โ€‹เปƒเบˆโ€‹เบเปโ€‹เปเบˆเปˆเบกโ€‹เปเบˆเป‰เบ‡, เป€เบ›เบตเบ”โ€‹เป€เบœเบตเบ! เปเบฅเบฐเบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบฎเบฑเบšเบฎเบนเป‰เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบœเบฐเบˆเบปเบ™เป„เบžเบ—เบตเปˆเบซเบ™เป‰เบฒเบ•เบทเปˆเบ™เป€เบ•เบฑเป‰เบ™. เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบดเบ”เบงเปˆเบฒ: "เบ”เบต, เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ™เบฑเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ” * เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบšเบญเบเป„เบ”เป‰เบงเปˆเบฒเบชเบนเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบญเบตเบ‡เปƒเบชเปˆเบšเปˆเบญเบ™เปƒเบ”?".

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบˆเบธเบ”เบžเบดเบเบฑเบ”เบ‚เบญเบ‡เบˆเบธเบ”เปƒเบ™เบงเบปเบ‡เบกเบปเบ™เปเบฅเบฐเปƒเบ™เบงเบปเบ‡เบกเบปเบ™ (เบˆเบฒเบเบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ‚เป‰เบญเบ)

เป€เบเบก 1

  • เป€เบงเบ—เบต: Windows (เบ—เบปเบ”เบชเบญเบšเปƒเบ™ Windows 7, 10)
  • : เบ‚เป‰เบญเบเบ„เบดเบ”เบงเปˆเบฒเบ‚เป‰เบญเบเบ‚เบฝเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ C เบšเปเบฅเบดเบชเบธเบ”
  • เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบก: Windows console
  • เปเบฎเบ‡เบšเบฑเบ™เบ”เบฒเบ™เปƒเบˆ: javidx9
  • เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™: GitHub

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เป€เบเบกเบ‡เบนเบ‡เปˆเบฒเบเบ”เบฒเบ

scene 3D เบšเปเปˆเปเบกเปˆเบ™เป€เบเบก. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เปเบฅเบฐเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบงเบฑเบ”เบ–เบธ 3D (เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ•เบปเบงเบญเบฑเบเบชเบญเบ™) เปเบกเปˆเบ™เบเบฒเบงเปเบฅเบฐเบเบฒเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบผเบตเป‰เบ™เบเบฑเบš Unity, เบ‚เป‰เบญเบเบฎเบนเป‰เบงเปˆเบฒเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบชเบทเบšเบ•เปเปˆ, เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบˆเบฒเบเบžเบทเป‰เบ™เบ–เบฒเบ™. เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเป„เบง, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เปƒเบ™เบ—เบปเปˆเบงเป‚เบฅเบ, เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบเบก.

เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเป„เบง? เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, console เปเบฅเบฐ 2D. เบซเบผเบฒเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ console เปเบฅเบฐเบชเบฑเบ™เบเบฒเบฅเบฑเบ. เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบŠเบญเบเบซเบฒเบเบฒเบ™เบ”เบปเบ™เปƒเบˆเปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ” (เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ–เบทเบงเปˆเบฒเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ›เบฐเบ”เบดเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบงเบฑเบ”เปเบฅเบฐเบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบชเบฐเบ•เบฐเบงเบฑเบ”เบ—เบต XNUMX). เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ‚เบธเบ”เบ„เบปเป‰เบ™เบงเบดเบ”เบตเป‚เบญเบ‚เบญเบ‡เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบœเบนเป‰เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ” console Tetris. เปเบฅเบฐเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบเบกเบ‚เบญเบ‡เบฅเบฒเบง, เบฅเบฒเบงเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ•เบฑเบ” "เบ‡เบน". เบˆเบฒเบเบงเบดเบ”เบตเป‚เบญ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบชเบญเบ‡เบชเบดเปˆเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™ - loop เป€เบเบก (เบกเบตเบชเบฒเบกเบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™ / เบžเบฒเบเบชเปˆเบงเบ™) เปเบฅเบฐเบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบซเป‰เบเบฑเบš buffer.

เบงเบปเบ‡เป€เบเบกเบญเบฒเบ”เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเปเบ™เบงเบ™เบตเป‰:

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

เบฅเบฐเบซเบฑเบ”เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เป () เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™. เปเบฅเบฐเบงเบปเบ‡เบˆเบญเบ™เป€เบเบกเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเป€เบซเบฑเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™. เบกเบตเบชเบฒเบกเบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™ loop: Input(), Logic(), Draw(). เบเปˆเบญเบ™โ€‹เบญเบทเปˆเบ™โ€‹เบซเบกเบปเบ”โ€‹, เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ (เป‚เบ”เบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เบเบปเบ”โ€‹เปเบ›เป‰เบ™โ€‹เบžเบดเบกโ€‹)โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบ›เบฐโ€‹เบกเบงเบ™โ€‹เบœเบปเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เบ•เบฒเบกโ€‹เป€เบซเบ”โ€‹เบœเบปเบ™โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบˆเป - เปเบ•เป‰เบกโ€‹. เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบธเบเป†เบเบญเบš. เบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰. เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบเบฒเบ•เบนเบ™. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐ, เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบนเป‰, เบเปเบฒเบ™เบปเบ”เบญเบฑเบ”เบ•เบฒเบเบญเบšเบ‚เบญเบ‡เป€เบเบก. เปเบ•เปˆเปƒเบ™เบ™เบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ Logic() เปเบกเปˆเบ™เป„เบงเบซเบผเบฒเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบญเบฑเบ”เบ•เบฒเป€เบŸเบกเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™ Sleep() เบเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต gameSpeed โ€‹โ€‹โ€‹โ€‹, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบญเบฑเบ”เบ•เบฒเบ™เบตเป‰.

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบงเบปเบ‡เบˆเบญเบ™เป€เบเบก. เบ‡เบนเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปƒเบ™ notepad

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบเบก console เบ—เบตเปˆเป€เบ›เบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เป‰เบฒเบˆเปเป‚เบ”เบเปƒเบŠเป‰ stream output เบ›เบปเบเบเบฐเบ•เบด 'cout' เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ - เบกเบฑเบ™เบŠเป‰เบฒเบซเบผเบฒเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ buffer เบซเบ™เป‰เบฒเบˆเป. เบซเบผเบฒเบเป„เบงเปเบฅเบฐเป€เบเบกเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ glitches. เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ”เบตเบงเปˆเบฒ buffer เบซเบ™เป‰เบฒเบˆเปเปเบกเปˆเบ™เบซเบเบฑเบ‡เปเบฅเบฐเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”. เปเบ•เปˆเบ‚เป‰เบญเบเบˆเบฐเปƒเบซเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบฅเบฐเบซเบฑเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เปเบฅเบฐเบšเบฒเบ‡เบ—เบตเบ„เบปเบ™เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบŠเบตเป‰เปเบˆเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เป„เบ”เป‰.

เบเบณเบฅเบฑเบ‡เป‚เบซเบผเบ”เปœเป‰เบฒเบˆเป (เป€เบžเบทเปˆเบญเป€เบงเบปเป‰เบฒ):

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

เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบชเบฑเบšเบชเบปเบ™เปƒเบ™เป€เบเบกเบ™เบตเป‰, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ”เบตเบ‚เบญเบ‡เป€เบเบกเบฅเบฐเบ”เบฑเบšเป€เบ‚เบปเป‰เบฒ. เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ”เบฝเบงเปเบฅเบฐเบˆเบฑเบ”เบฅเบฝเบ‡เปƒเบ™เบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆ. เบšเปเปˆเบกเบตเบซเป‰เบญเบ‡เบฎเบฝเบ™, เบšเปเปˆเบกเบตเบกเปเบฅเบฐเบ”เบปเบ. เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เป€เบเบกเป‚เบ”เบเบเบฒเบ™เป„เบ›เบ—เบตเปˆ repository เปƒเบ™ GitHub.

เป€เบเบก 2 เป‰ Crazy

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เป€เบเบก tank Crazy

เบเบฒเบ™เบžเบดเบกเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปƒเบชเปˆเบ„เบญเบ™เป‚เบŠเบ™เปเบกเปˆเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เป€เบเบก. เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบซเบ™เบถเปˆเบ‡เบ›เบฒเบเบปเบ”: เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเบนเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (เบ„เบงเบฒเบกเบชเบนเบ‡เปเบกเปˆเบ™เบชเบนเบ‡เบเบงเปˆเบฒเบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบชเบปเบกเบชเปˆเบงเบ™, เปเบฅเบฐเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบฅเบปเบ‡เบซเบผเบทเบ‚เบถเป‰เบ™เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป„เบงเบเบงเปˆเบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบŠเป‰เบฒเบเบซเบผเบทเบ‚เบงเบฒ. เบœเบปเบ™เบเบฐเบ—เบปเบšเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบซเบผเบฒเบเปƒเบ™ "เบ‡เบน" (เป€เบเบก 1). "เบ–เบฑเบ‡" (เป€เบเบก 2) เบšเปเปˆเบกเบตเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบกเบตเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เป‚เบ”เบเบเบฒเบ™เบชเบต pixels เบซเบ™เป‰เบฒเบˆเปเบ—เบตเปˆเบกเบตเบชเบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ‚เป‰เบญเบเบ‚เบฝเบ™ renderer. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฑเบšเบชเบปเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ.

เบชเปเบฒเบฅเบฑเบšเป€เบเบกเบ™เบตเป‰, เบกเบฑเบ™เบˆเบฐเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบ‚เป‰เบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡ pixels เปƒเบ™เบซเบ™เป‰เบฒเบˆเป. เบ‚เป‰เบญเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ™เบตเป‰เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เป€เบเบก. เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบกเบฒเป€เบ–เบดเบ‡เบเบฑเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบˆเปเปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบŠเบธเบ”เบ‚เบญเบ‡เบชเบตเปˆเบซเบฅเปˆเบฝเบกเบชเบตเบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ.

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบ•เบฑเป‰เบ‡เบชเบตเปˆเบซเบฅเปˆเบฝเบก

เบฎเบนเบšเบชเบตเปˆเบซเบฅเปˆเบฝเบกเปเบ•เปˆเบฅเบฐเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เป‚เบ”เบ matrix เบ—เบตเปˆเป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบ. เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบซเบ™เบถเปˆเบ‡ nuance เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ - matrices เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบเบกเป„เบ”เป‰เบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบ›เบฑเบ™ array เบซเบ™เบถเปˆเบ‡เบกเบดเบ•เบดเบฅเบฐเบ”เบฑเบš. เบšเปเปˆเปเบกเปˆเบ™เบชเบญเบ‡เบกเบดเบ•เบด, เปเบ•เปˆเป€เบ›เบฑเบ™เบกเบดเบ•เบดเบ”เบฝเบง! arrays เบกเบดเบ•เบดเปœเบถเปˆเบ‡เบกเบดเบ•เบดเปเบกเปˆเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™ เปเบฅเบฐเป„เบงเบเบงเปˆเบฒ.

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ tank เป€เบเบก

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบกเบฒเบ•เบฃเบดเบเป€เบšเบทเป‰เบญเบ‡เบ–เบฑเบ‡เป€เบเบกเป€เบ›เบฑเบ™เบญเบฒเป€เบฃเปœเบถเปˆเบ‡เบกเบดเบ•เบด

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบซเบผเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ matrix เป‚เบ”เบ array เบกเบดเบ•เบดเบซเบ™เบถเปˆเบ‡

เปเบ•เปˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ array เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบงเบปเบ‡เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ, เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เบกเบดเบ•เบด, เปเบ•เปˆเป€เบ›เบฑเบ™ array เบชเบญเบ‡เบกเบดเบ•เบด. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš matrices.

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบ‚เป‰เบฒเบก array เบกเบดเบ•เบดเปœเบถเปˆเบ‡เปƒเบ™เบงเบปเบ‡เบชเบญเบ‡. Y เปเบกเปˆเบ™ ID เปเบ–เบง, X เปเบกเปˆเบ™ ID เบ–เบฑเบ™

เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบฅเบฐเบšเบธ matrix เบ›เบปเบเบเบฐเบ•เบด i, j, เบ‚เป‰เบญเบเปƒเบŠเป‰เบ•เบปเบงเบฅเบฐเบšเบธ x เปเบฅเบฐ y. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบ, เบกเบตเบ„เบงเบฒเบกเบžเปเปƒเบˆเบซเบผเบฒเบเบ•เปเปˆเบ•เบฒเปเบฅเบฐเบชเบฐเบซเบกเบญเบ‡เบซเบผเบฒเบเบ‚เบทเป‰เบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบกเบฒเบเป€เบซเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเบฐเบ”เบงเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ matrices เบ—เบตเปˆเปƒเบŠเป‰เปƒเบชเปˆเปเบเบ™เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบชเบญเบ‡เบกเบดเบ•เบดเบฅเบฐเบ”เบฑเบš.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบเปˆเบฝเบงเบเบฑเบš pixels, เบชเบตเปเบฅเบฐเบเบฒเบ™เบชเบฐเปเบ”เบ‡. เบŸเบฑเบ‡เบŠเบฑเบ™ StretchDIBits (Header: windows.h; Library: gdi32.lib) เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™เบšเบฑเบ™เบ”เบฒเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†, เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบœเปˆเบฒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เบตเป‰: เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบฎเบนเบšเบžเบฒเบšเบ–เบทเบเบชเบฐเปเบ”เบ‡ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ™เบตเป‰เปเบกเปˆเบ™ Windows console), เบˆเบธเบ”เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบฎเบนเบšเบžเบฒเบš, เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡ / เบ„เบงเบฒเบกเบชเบนเบ‡เบ‚เบญเบ‡เบกเบฑเบ™, เปเบฅเบฐเบฎเบนเบšเบžเบฒเบš. เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ bitmap (bitmap), เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เป‚เบ”เบ array เบ‚เบญเบ‡ bytes. Bitmap เป€เบ›เบฑเบ™ array เบ‚เบญเบ‡ bytes!

เบŸเบฑเบ‡เบŠเบฑเบ™ 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(). เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบˆเปเบฒเบ™เบงเบ™เป„เบšเบ•เปŒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš pixels เบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบˆเบฐเบ–เบทเบเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบˆเป.

เบเบฒเบ™เบชเป‰เบฒเบ‡ m_p_bitmap Memory bitmap:

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

เป€เบงเบปเป‰เบฒเบ›เบฐเบกเบฒเบ™, เปเบœเบ™เบ—เบตเปˆเบšเบดเบ”เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบŠเบธเบ”เบ‚เบญเบ‡ pixels. เบ—เบธเบเป†เบชเบตเปˆเป„เบšเบ•เปŒเปƒเบ™เบญเบฒเป€เบฃเปเบกเปˆเบ™เป€เบ›เบฑเบ™ RGB pixel. เบซเบ™เบถเปˆเบ‡ byte เบ•เปเปˆเบ„เปˆเบฒเบชเบตเปเบ”เบ‡, เบซเบ™เบถเปˆเบ‡ byte เบ•เปเปˆเบ„เปˆเบฒเบชเบตเบ‚เบฝเบง (G), เปเบฅเบฐเบซเบ™เบถเปˆเบ‡ byte เบ•เปเปˆเบกเบนเบ™เบ„เปˆเบฒเบชเบตเบŸเป‰เบฒ (B). เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบ‡เบกเบตเบซเบ™เบถเปˆเบ‡ byte เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบเปเป‰เบซเบ™เป‰เบฒ. เบชเบฒเบกเบชเบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ - เบชเบตเปเบ”เบ‡ / เบชเบตเบ‚เบฝเบง / เบชเบตเบŸเป‰เบฒ (RGB) - เบ–เบทเบเบ›เบฐเบชเบปเบกเบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เปƒเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบต pixels เบฅเบงเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

เบ”เบฝเบงเบ™เบตเป‰, เบญเบตเบเป€เบ—เบทเปˆเบญ เปœเบถเปˆเบ‡, เปเบ•เปˆเบฅเบฐเบฎเบนเบšเบชเบตเปˆเบซเบฅเปˆเบฝเบก, เบซเบผเบทเบงเบฑเบ”เบ–เบธเป€เบเบก, เบ–เบทเบเบชเบฐเปเบ”เบ‡เป‚เบ”เบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเบงเป€เบฅเบ. เบงเบฑเบ”เบ–เบธเป€เบเบกเบ—เบฑเบ‡เปเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เบ„เปเป€เบฅเบฑเบเบŠเบฑเบ™. เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบกเบฑเบเบซเบผเบตเป‰เบ™, เบเบญเบšเป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡ matrix เบ•เบปเบงเป€เบฅเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เปเบœเบ™เบ—เบตเปˆเปเบ•เปˆเบฅเบฐเบ•เบปเบงเป€เบฅเบเปƒเบ™ matrix เป€เบ›เบฑเบ™เบชเบตเบชเบฐเป€เบžเบฒเบฐ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบฅเบ 8 เปเบกเปˆเบ™เบชเบตเบŸเป‰เบฒ, เป€เบฅเบ 9 เปเบกเปˆเบ™เบชเบตเป€เบซเบผเบทเบญเบ‡, เป€เบฅเบ 10 เปเบกเปˆเบ™เบชเบตเบ‚เบตเป‰เป€เบ–เบปเปˆเบฒเป€เบ‚เบฑเป‰เบก, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบกเบฒเบ•เบฃเบดเบเป€เบšเบทเป‰เบญเบ‡เบ‚เบญเบ‡เบชเบฐเบซเบ™เบฒเบกเบซเบผเบตเป‰เบ™, เป€เบŠเบดเปˆเบ‡เปเบ•เปˆเบฅเบฐเบ•เบปเบงเป€เบฅเบเปเบกเปˆเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบชเบต.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเบงเป€เบฅเบเบ‚เบญเบ‡เบชเบฐเบซเบ™เบฒเบกเบซเบผเบตเป‰เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบขเบนเปˆเปƒเบ™เบกเบทเบซเบ™เบถเปˆเบ‡เปเบฅเบฐ bitmap เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบฎเบนเบšเบžเบฒเบšเปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡. เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธ, bitmap เปเบกเปˆเบ™ "เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ" - เบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบกเบตเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš pixels เบ‚เบญเบ‡เบชเบตเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบˆเบฐเบ–เบทเบเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปเบœเบ™เบ—เบตเปˆเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ pixels เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเบงเป€เบฅเบเบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบซเบผเบตเป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ•เบทเปˆเบก bitmap (Pixel matrix) เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ matrix เบ•เบปเบงเป€เบฅเบ (Digital matrix) เบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบกเบฑเบเบซเบผเบตเป‰เบ™ (เบ”เบฑเบ”เบŠเบฐเบ™เบตเบชเบตเบšเปเปˆเบเบปเบ‡เบเบฑเบšเบ”เบฑเบ”เบŠเบฐเบ™เบตเปƒเบ™เป€เบเบก)

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบˆเบฐเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบชเบดเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบˆเบฒเบเป€เบเบก. colorIndex เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เปƒเบ™เปเบ•เปˆเบฅเบฐ iteration เบ‚เบญเบ‡ loop เปเบกเปˆเบ™เบกเบญเบšเบซเบกเบฒเบเบ„เปˆเบฒ (เบ”เบฑเบ”เบŠเบฐเบ™เบตเบชเบต) เบˆเบฒเบ matrix เบ•เบปเบงเป€เบฅเบเบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบกเบฑเบเบซเบผเบตเป‰เบ™ (mainDigitalMatrix). เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบตเบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบชเบตเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ”เบฑเบ”เบŠเบฐเบ™เบต. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบชเบตเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ‚เบญเบ‡เบชเบตเปเบ”เบ‡, เบชเบตเบ‚เบฝเบงเปเบฅเบฐเบชเบตเบŸเป‰เบฒ (RGB). เปเบฅเบฐเบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš indent (pixelPadding), เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆ pixels เบฅเบงเบ‡เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เบฎเบนเบšเบžเบฒเบšเบชเบตเปƒเบ™ bitmap.

เบฅเบฐเบซเบฑเบ”เปƒเบŠเป‰เบ•เบปเบงเบŠเบตเป‰เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบดเบ”เบšเบดเบ”, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰เบเบฒเบ. เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เบญเปˆเบฒเบ™เบšเบฒเบ‡เบšเปˆเบญเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบฎเบฑเบ”เบงเบฝเบ.

เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปเบœเบ™เบ—เบตเปˆ bitmap เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเบงเป€เบฅเบเบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบกเบฑเบเบซเบผเบตเป‰เบ™:

// 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 tank เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบซเบ™เบถเปˆเบ‡ (เบเบญเบšโ€‹) เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบˆเปโ€‹เปƒเบ™ Draw () เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹. เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เบเบปเบ”โ€‹เปเบ›เป‰เบ™โ€‹เบžเบดเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™ Input() เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™ Logic()โ€‹, เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เปƒเบซเบกเปˆ (เบเบญเบšโ€‹) เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบงเบฑเบ”เบ–เบธเป€เบเบกเบญเบฒเบ”เบกเบตเบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบซเบ™เบฒเบกเบซเบผเบตเป‰เบ™เปเบฅเบฐ, เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เป„เบ”เป‰เบ–เบทเบเปเบ•เป‰เบกเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง (เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง) เป€เบเบตเบ”เบ‚เบถเป‰เบ™.

เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต (เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบฅเบทเบกเบซเบเบฑเบ‡), เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‚เบญเบ‡เบงเบปเบ‡เป€เบเบกเบˆเบฒเบเป€เบเบกเบ—เปเบฒเบญเบดเบ” ("เบ‡เบน") เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡ pixels เปƒเบ™เบซเบ™เป‰เบฒเบˆเปเบˆเบฒเบเป€เบเบกเบ—เบตเบชเบญเบ‡ ("เบ–เบฑเบ‡") เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™เปƒเบ”เป†. เบ‚เบญเบ‡โ€‹เป€เบเบก 2D เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš Windowsโ€‹. เบšเปเปˆเบกเบตเบชเบฝเบ‡! ๐Ÿ˜‰ เบชเปˆเบงเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบšเบดเบ™เบ‚เบญเบ‡เปเบŸเบ™เบŠเบต.

เปเบ™เปˆเบ™เบญเบ™, เป€เบเบก "เบ–เบฑเบ‡" เบ–เบทเบเบญเบญเบเปเบšเบšเบซเบผเบฒเบเบชเบฑเบšเบชเบปเบ™เบเบงเปˆเบฒ "เบ‡เบน". เบ‚เป‰เบญเบเปƒเบŠเป‰เบžเบฒเบชเบฒ C ++ เปเบฅเป‰เบง, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ‚เป‰เบญเบเบญเบฐเบ—เบดเบšเบฒเบเบงเบฑเบ”เบ–เบธเป€เบเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™. เบ‚เป‰เบญเบเบชเป‰เบฒเบ‡เบ„เปเป€เบฅเบฑเบเบŠเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบญเบ‡ - เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™ headers/Box.h. เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบชเปˆเบงเบ™เบซเบผเบฒเบเบกเบฑเบเบˆเบฐเบกเบตเบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบผเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ. เบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเปƒเบŠเป‰เปเบฅเป‰เบง. เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ›เบถเป‰เบกเป„เบ”เป‰เบŠเปˆเบงเบเบ‚เป‰เบญเบเบซเบผเบฒเบ. เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ C++ เบœเปˆเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเป€เบเบก. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ C++. เบกเบฑเบ™เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปเบฅเบฐเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ”เบต.

เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ›เบฐเบกเบฒเบ™เบซเบปเบเป€เบ”เบทเบญเบ™เป€เบžเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบเบกเบ™เบตเป‰. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ‚เบฝเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบญเบฒเบซเบฒเบ™เบ—เปˆเบฝเบ‡เปเบฅเบฐเบญเบฒเบซเบฒเบ™เบซเบงเปˆเบฒเบ‡เบขเบนเปˆเบšเปˆเบญเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. เบฅเบฒเบงเบ™เบฑเปˆเบ‡เบขเบนเปˆเปƒเบ™เป€เบฎเบทเบญเบ™เบ„เบปเบงเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบเบฒเบ™, เบขเบธเบ”เบญเบฒเบซเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”. เบซเบผเบทเบขเบนเปˆเป€เบฎเบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบ„เปˆเปเบฒ. เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบš "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง". เบ•เบฒเบกเป€เบ„เบตเบ, เบ‚เป‰เบญเบเปƒเบŠเป‰เบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบเบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™, เปเบฅเบฐเบ—เบธเบเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบเปเปˆเป€เบเบตเบ”เบขเบนเปˆเปƒเบ™เบ™เบฑเป‰เบ™.

เปƒเบ™โ€‹เบ•เบญเบ™โ€‹เบ—เป‰เบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบžเบฒเบโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เบ”เบถเบ‡โ€‹เบญเบญเบโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบเบ™โ€‹เบšเปเปˆโ€‹เบžเปโ€‹เป€เบ—เบปเปˆเบฒโ€‹เปƒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ›เบทเป‰เบกโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ‚เบญเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹. เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเบ‚เบฝเบ™เบฅเบปเบ‡, เปเบ•เป‰เบก, เบ™เบฑเบš, เบญเบญเบเปเบšเบšโ€ฆ

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบเบฒเบ™เบญเบญเบเปเบšเบšเบฎเบนเบšเบ–เบฑเบ‡. เปเบฅเบฐเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™ pixels เปเบ•เปˆเบฅเบฐเบ–เบฑเบ‡เบ„เบงเบ™เบˆเบฐเบ„เบญเบšเบ„เบญเบ‡เบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบˆเป

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปเบฅเบฐเบชเบนเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบกเบธเบ™เบ‚เบญเบ‡เบ–เบฑเบ‡เบ›เบฐเบกเบฒเบ™เปเบเบ™เบ‚เบญเบ‡เบกเบฑเบ™

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เปเบœเบ™เบงเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ‚เบญเบ‡เบ‚เป‰เบญเบ (เบญเบฑเบ™เบ—เบตเปˆเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบฎเบปเปˆเบงเป„เบซเบผ, เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐ). เบ„เปเป€เบฅเบฑเบเบŠเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡

DevOps C++ เปเบฅเบฐ "เบชเบปเบ‡เบ„เบฒเบกเป€เบฎเบทเบญเบ™เบ„เบปเบง", เบซเบผเบทเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เป€เบเบกเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบดเบ™เป€เบ‚เบปเป‰เบฒ
เปเบฅเบฐเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐเปเบ™เบšเบ—เบฒเบ‡เบ›เบฑเบ™เบเบฒเบ—เบฝเบกเบเบฑเบšเป€เบเบก

เบ—เบดเบ”เบชเบฐเบ”เบต

"เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ”เบตเบ™โ€‹เบ—เบฒเบ‡โ€‹เปœเบถเปˆเบ‡โ€‹เบžเบฑเบ™โ€‹เป„เบกโ€‹เบเปโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ”เป‰เบงเบโ€‹เบšเบฒเบ”โ€‹เบเป‰เบฒเบงโ€‹เบ—เบณโ€‹เบญเบดเบ”" (เบชเบฐโ€‹เบ•เบดโ€‹เบ›เบฑเบ™โ€‹เบเบฒโ€‹เบ‚เบญเบ‡โ€‹เบˆเบตเบ™โ€‹เบšเบนเบฎเบฒเบ™)

เบ‚เปเปƒเบซเป‰เบเป‰เบฒเบเบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ›เบชเบนเปˆเบ—เบดเบ”เบชเบฐเบ”เบต! เป€เบˆเบปเป‰เบฒเบŠเบญเบเบซเบฒเป€เบงเบฅเบฒเบชเบณเบฅเบฑเบšเบงเบฝเบเบญเบฐเบ”เบดเป€เบฅเบเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเปเบ™เบงเปƒเบ”?

  1. เบเปเบฒเบ™เบปเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบ—เป‰เป† (เบญเบฐเบ™เบดเบˆเบฒ, เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเบเบฒเบเบ—เบตเปˆเบชเบธเบ”).
  2. เบเปเบฒเบ™เบปเบ”เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”.
  3. เบเบฒเบ™เป€เบชเบเบชเบฐเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡ "เบžเบดเป€เบชเบ”" เป€เบžเบทเปˆเบญเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™.
  4. เบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบธเบเป†เบกเบทเป‰.
  5. เบขเปˆเบฒเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบชเบญเบ‡เบซเบผเบทเบชเบฒเบกเบŠเบปเปˆเบงเป‚เบกเบ‡เบ‚เบญเบ‡เป€เบงเบฅเบฒเบซเบงเปˆเบฒเบ‡เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบงเบฝเบเบญเบฐเบ”เบดเป€เบฅเบ.

เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเปเบฒเบ™เบปเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ–เบดเป‰เบกเบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต / เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป€เบชเบเบชเบฐเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡ "superfluous". เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบเบดเบ™โ€‹เบšเบฒเบ‡โ€‹เบšเปˆเบญเบ™โ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เบŠเบตโ€‹เบงเบดเบ”โ€‹เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบชเบฒเบกโ€‹เบเบดเบ”โ€‹เบˆเบฐโ€‹เบเปเบฒโ€‹เบ•เบปเป‰เบ™โ€‹เบ•เป. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”. เปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™ / เบ—เบดเบ”เบ—เบฒเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบˆเบฐเป€เบฅเบตเปˆเบก overload corny. เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™, เบซเบปเบงเบ‚เปเป‰เปเบฅเบฐเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™.

เบกเบตเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบญเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™: เบšเปเปˆเป€เบ„เบตเบเบกเบตเบกเบทเป‰ 0%! เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเป‚เบ”เบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ indie. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบฎเบฑเบ”เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบ—เบธเบเป†เบกเบทเป‰. เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”. เบ‚เบฝเบ™เปœเบถเปˆเบ‡เบ„เบณเบชเบฑเบš เบซเบผเบทเบฅเบฐเบซเบฑเบ”เปœเบถเปˆเบ‡เปเบ–เบง, เป€เบšเบดเปˆเบ‡เบงเบตเบ”เบตเป‚เบญเบชเบญเบ™เปœเบถเปˆเบ‡, เบซเบผเบทเบ„เป‰เบญเบ™เบ•เบฐเบ›เบนเปƒเบชเปˆเบเบฐเบ”เบฒเบ™โ€”เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปเบฅเบฐ, เป€เบŠเบทเปˆเบญเบ‚เป‰เบญเบ, เป„เบงเบซเบผเบฒเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบซเป‰เบฒเบกเบฅเปเป‰เบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบ—เบธเบเบชเบดเปˆเบ‡เปเบกเปˆเบ™ procrastination.

เปเบฅเบฐเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบˆเบทเปˆเบˆเปเบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบฒเบ”เปเบฅเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆ "เบ‚เบตเป‰เป€เบฅเบทเปˆเบญเบ" เบ—เบตเปˆเบšเปเปˆเป€เบชเบเบ„เปˆเบฒเบ‚เบญเบ‡เป€เบงเบฅเบฒ 5, 10, 15 เบ™เบฒเบ—เบต, เบฅเปเบ–เป‰เบฒ "เป„เบกเป‰เบ—เปˆเบญเบ™" เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™เบซเบ™เบถเปˆเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡เบซเบผเบทเบชเบญเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡. เป€เบˆเบปเป‰เบฒเบขเบทเบ™เบขเบนเปˆเปƒเบ™เปเบ–เบงเบšเป? เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เปƒเบŠเป‰ escalator เบšเป? เบ‚เบฝเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบฅเบปเบ‡เปƒเบ™ notepad. เป€เบˆเบปเป‰เบฒเบเบณเบฅเบฑเบ‡เป€เบ”เบตเบ™เบ—เบฒเบ‡เป€เบ—เบดเบ‡เบฅเบปเบ”เป€เบกเบšเป? เบ”เบตเบซเบผเบฒเบ, เบญเปˆเบฒเบ™เบšเบฒเบ‡เบšเบปเบ”เบ„เบงเบฒเบก. เปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบ—เบธเบเป†เป‚เบญเบเบฒเบ”. เบขเบธเบ”เป€เบšเบดเปˆเบ‡เปเบกเบง เปเบฅเบฐเปเบฒเบขเบนเปˆ YouTube! เบขเปˆเบฒเบกเบปเบ™เบฅเบฐเบžเบดเบ”เบชเบฐเบซเบกเบญเบ‡เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ!

เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบชเบดเปˆเบ‡เบชเบธเบ”เบ—เป‰เบฒเบ. เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบกเบฑเบเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบก, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบˆเบทเปˆเบŠเบทเปˆ Casey Muratori. เบ„เบปเบ™เบ™เบตเป‰เบกเบต เป€เบงเบฑเบšเป„เบŠเบ—เปŒ. เปƒเบ™ โ€œเป€เบšเบดเปˆเบ‡ -> เบ•เบญเบ™เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰โ€ เบžเบฒเบเป€เบˆเบปเป‰เบฒเบˆเบฐเบžเบปเบšเป€เบซเบฑเบ™เบเบฒเบ™เบชเบญเบ™เบงเบดเบ”เบตเป‚เบญเบŸเบฃเบตเบ—เบตเปˆเบเบญเบ”เบขเป‰เบฝเบกเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบเบกเปเบšเบšเบกเบทเบญเบฒเบŠเบตเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปƒเบ™เบซเป‰เบฒเบšเบปเบ”เบฎเบฝเบ™ Intro to C เบชเปเบฒเบฅเบฑเบš Windows เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบซเบผเบฒเบเบเปˆเบงเบฒเปƒเบ™เบซเป‰เบฒเบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบชเบถเบเบชเบฒเบกเบฐเบซเบฒเบงเบดเบ—เบฐเบเบฒเป„เบฅ (เบกเบตเบ„เบปเบ™เบ‚เบฝเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™เบžเบฒเบเปƒเบ•เป‰เบงเบดเบ”เบตเป‚เบญ).

Casey เบเบฑเบ‡เบญเบฐเบ—เบดเบšเบฒเบเบงเปˆเบฒเป‚เบ”เบเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡, เบ—เปˆเบฒเบ™เบˆเบฐเบกเบตเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ”เบตเบ‚เบถเป‰เบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เปƒเบ™เป‚เบฅเบเบ‚เบญเบ‡เบเบญเบš, เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เบธเบเบ„เบปเบ™เบžเบฐเบเบฒเบเบฒเบกเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ—เปˆเบฒเบ™เบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡, เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. เป€เบ‚เบปเป‰เบฒเปƒเบˆเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบต. เปเบฅเบฐเบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบชเบฐเบซเบผเบฒเบ”เปเบฅเบฐเปƒเบซเบเปˆเบเบงเปˆเบฒ - เบกเบทเบญเบฒเบŠเบตเบš.

เป‚เบŠเบเบ”เบตเปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบฅเบทเบญเบ! เปเบฅเบฐเบ‚เปเปƒเบซเป‰เป‚เบฅเบเป€เบ›เบฑเบ™เบกเบทเบญเบฒเบŠเบตเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™.

Author: Grankin Andrey, DevOps



เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com