// 오목 판정해야하는데 가로 판정에서 7 8 9 10 11 하면 오목으로 인정되어버립니다. 예외처리 소스 좀 알려주세요...ㅠ
#include "mainGame.h"
mainGame::mainGame()
{
for (int i = 0; i < 100; i++)
{
num[i] = i + 1;
}
while (1)
{
system("cls");
cout << "재밌는 오목 게임 ( 1p : 흑돌, 2p : 백돌 )" << endl;
cout << endl;
for (int i = 0; i < 100; i++)
{
if (num[i] == 120)
{
cout << "○" << "\t";
}
else if (num[i] == 121)
{
//형변환
cout << "●" << "\t";
}
else
{
cout << num[i] << "\t";
}
//5개 마다 한칸씩 내려주기
if ((i + 1) % 10 == 0)
{
cout << "\n\n" << endl;
}
}
cout << "돌을 놓을 위치를 입력해라 : ";
//
if (turn % 2 == 0)
{
cin >> input2;
}
if (turn % 2 == 1)
{
cin >> input;
}
if (input > 100)
{
cout << "다시 눌러라" << endl;
Sleep(500);
continue;
}
for (int i = 0; i < 100; i++)
{
if (num[i] == input)
{
num[i] = 120;
}
}
for (int i = 0; i < 100; i++)
{
if (num[i] == input2)
{
num[i] = 121;
}
}
for (int i = 0; i < 100; i++)
{
if (num[i] == 120 && num[i + 1] == 120 && num[i + 2] == 120 && num[i + 3] == 120 && num[i + 4] == 120) // 가로
{
count++;
}
if (num[i] == 120 && num[i + 10] == 120 && num[i + 20] == 120 && num[i + 30] == 120 && num[i + 40] == 120) // 세로
{
count++;
}
if (num[i] == 120 && num[i + 11] == 120 && num[i + 22] == 120 && num[i + 33] == 120 && num[i + 44] == 120) // 왼오 가로
{
count++;
}
if (num[i] == 120 && num[i + 9] == 120 && num[i + 18] == 120 && num[i + 27] == 120 && num[i + 36] == 120) // 오왼 가로
{
count++;
}
}
turn++;
if (count == 1)
{
cout << "흑돌 오목 성공" << endl;
Sleep(2000);
break;
}
if (count2 == 1)
{
cout << "백돌 오목 성공" << endl;
Sleep(2000);
break;
}
}
}
mainGame::~mainGame()
{
}
댓글 0