๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[inflearn ๊ฐ์] ๊ธฐ๋ณธ ๋ฌธ๋ฒ - ์ซ์ํผ์ฆ๊ฒ์ ๋ณธ๋ฌธ
๐ฉ๐ป IoT (Embedded)/C++
[inflearn ๊ฐ์] ๊ธฐ๋ณธ ๋ฌธ๋ฒ - ์ซ์ํผ์ฆ๊ฒ์
์ง์ง์ํ์นด 2023. 6. 30. 01:38728x90
๋ฐ์ํ
<๋ณธ ๋ธ๋ก๊ทธ๋ ์ด์ํธ๋ฝ ๊ฒ์์์นด๋ฐ๋ฏธ ๋์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
=> C++ Let's Make Games
๐ซง ์ซ์ํผ์ฆ๊ฒ์
// Chapter1_13
#include <iostream>
#include <time.h>
// console input output ํค๋ ํ์ผ
// ์ฝ์์ฐฝ์์ ์
์ถ๋ ฅ ํ๋ ํค๋ํ์ผ
#include <conio.h>
using namespace std;
int main()
{
srand((unsigned int)time(0));
int iNumber[25] = {};
for (int i = 0; i < 24; ++i) {
iNumber[i] = i + 1;
}
// ๊ฐ์ฅ ๋ง์ง๋ง ์นธ์ ๊ณต๋ฐฑ์ผ๋ก ๋น์๋
// ๊ณต๋ฐฑ ์๋ฏธ๋ฅผ INT_MAX ์ผ๋ก! ์ด๋ฏธ ์ ์๋ ์ต๋๊ฐ
iNumber[24] = INT_MAX;
// ๋ณ ์๋ ์์น๋ฅผ ์ ์ฅํ ๋ณ์
int iStarIndex = 24;
// 1~24 ์ซ์๋ง ์๊ธฐ
int iTemp, idx1, idx2;
for (int i = 0; i < 100; ++i) {
idx1 = rand() % 24;
idx2 = rand() % 24;
iTemp = iNumber[idx1];
iNumber[idx1] = iNumber[idx2];
iNumber[idx2] = iTemp;
}
while (true) {
system("cls");
// ์ธ๋ก์ค
for (int i = 0; i < 5; ++i) {
// ๊ฐ๋ก์ค
for (int j = 0; j < 5; ++j) {
// i๊ฐ 0์ผ ๋ 0~4๊น์ง ๋ฐ๋ณต
// i๊ฐ 1์ผ ๋ 5~9๊น์ง ๋ฐ๋ณต
// i๊ฐ 2์ผ ๋ 10~14๊น์ง ๋ฐ๋ณต
// i๊ฐ 3์ผ ๋ 15~19๊น์ง ๋ฐ๋ณต
// i๊ฐ 4์ผ ๋ 20~24๊น์ง ๋ฐ๋ณต
// ์ค๋ฒํธ * ๊ฐ๋ก ๊ฐ์ + ์นธ ๋ฒํธ
cout << iNumber[i * 5 + j] << "\t";
}
cout << endl;
}
// true ๋ก ๋จผ์ ๋ชจ๋ ๋ง์ท๋ค ๋ผ๊ณ ๊ฐ์
bool bWin = true;
// ํผ์ค ๋ง์ถ์๋์ง ์ฒดํฌ
for (int i = 0; i < 24; ++i) {
if (iNumber[i] != i + 1) {
bWin = false;
break;
}
}
if (bWin == true) {
cout << "์ซ์ ๋ชจ๋ ๋ง์ถค" << endl;
break;
}
cout << "w : ์ s : ์๋ a : ์ผ์ชฝ d : ์ค๋ฅธ์ชฝ q : ์ข
๋ฃ : ";
// _getch() : ๋ฌธ์ 1๊ฐ ์
๋ ฅ๋ฐ๋ ํจ์ (๋ฌธ์ ๋๋ฅด๋ ์๊ฐ ๋ฐ๋ก ๊ทธ ๋ฌธ์ ๋ฐํํ๊ณ ์ข
๋ฃ)
char cInput = _getch();
if (cInput == 'q' || cInput == 'Q') {
break;
}
switch (cInput) {
case 'w':
case 'W':
// ๊ฐ์ฅ ์์ค์๋ w ๋๋ฌ๋ ์๋ก ์ฌ๋ผ๊ฐ๋ฉด ์๋จ
if (iStarIndex > 4) {
// ๋ณ ์๋ ์์น์ ๋ฐ๋ก ์์ ์๋ ๊ฐ ๋ฃ๊ธฐ
iNumber[iStarIndex] = iNumber[iStarIndex - 5];
// ์์ ์์น์ ๋ณ ๋ฃ๊ณ 2๊ฐ์ ๊ฐ ์๋ก ๊ต์ฒด
iNumber[iStarIndex - 5] = INT_MAX;
// ๋ณ ํ์นธ ์ฌ๋ผ๊ฐ์ผ๋ฏ๋ก ํ์นธ ์์ ์ธ๋ฑ์ค๋ก ๋ง๋ค๊ธฐ
iStarIndex -= 5;
}
break;
case 's':
case 'S':
// ๊ฐ์ฅ ์๋์ค์ด ์๋ ๊ฒฝ์ฐ ์์ง์
if (iStarIndex < 20) {
// ๋ณ ์๋ ์์น์ ๋ฐ๋ก ์์ ์๋ ๊ฐ ๋ฃ๊ธฐ
iNumber[iStarIndex] = iNumber[iStarIndex + 5];
// ์์ ์์น์ ๋ณ ๋ฃ๊ณ 2๊ฐ์ ๊ฐ ์๋ก ๊ต์ฒด
iNumber[iStarIndex + 5] = INT_MAX;
// ๋ณ ํ์นธ ์ฌ๋ผ๊ฐ์ผ๋ฏ๋ก ํ์นธ ์์ ์ธ๋ฑ์ค๋ก ๋ง๋ค๊ธฐ
iStarIndex += 5;
}
break;
case 'a':
case 'A':
if (iStarIndex % 5 != 0) {
iNumber[iStarIndex] = iNumber[iStarIndex - 1];
iNumber[iStarIndex - 1] = INT_MAX;
--iStarIndex;
}
break;
case 'd':
case 'D':
if (iStarIndex % 5 != 4) {
iNumber[iStarIndex] = iNumber[iStarIndex + 1];
iNumber[iStarIndex + 1] = INT_MAX;
++iStarIndex;
}
break;
}
}
cout << "๊ฒ์์ ์ข
๋ฃํฉ๋๋น" << endl;
return 0;
}
728x90
๋ฐ์ํ
'๐ฉโ๐ป IoT (Embedded) > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[inflearn ๊ฐ์] ๋น๊ณ ๊ฒ์ - ๋น๊ณ ๊ฒ์ 2 (0) | 2023.07.03 |
---|---|
[inflearn ๊ฐ์] ๋น๊ณ ๊ฒ์ - ๋น๊ณ ๊ฒ์ 1 (0) | 2023.07.03 |
[inflearn ๊ฐ์] ๊ธฐ๋ณธ ๋ฌธ๋ฒ - ์ผ๊ตฌ ๊ฒ์ (0) | 2023.06.30 |
C++ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํค๋ ํ์ผ (0) | 2023.06.29 |
[inflearn ๊ฐ์] ๊ธฐ๋ณธ ๋ฌธ๋ฒ - ๋ก๋ ๋ง๋ค๊ธฐ (0) | 2023.06.29 |
Comments