Sablog Models 55

환타 오목 게임 재구성. (2)

지난번 글에서는 move() 함수는 'move'답게 만들고 다른 함수가 move()를 반복하여 한 판을 조정하여, main()에서는 판을 반복하게 했습니다. 물론 제가 five_in_a_row()에 단 주석과 약간 다릅니다. 제 주석에 따르면 플레이어가 재경기를 원할 때 재경기를 시켜 줘야 합니다. 게다가 원래 게임과도 약간 달라져 버렸지요. 그.러.나. 그 점은 미뤄 두고, 일단 다른 부분을 시작하도록 하죠. (-_-ㅗ;;) 이번에는 판을 그리는 부분을 바꾸어 보겠습니다. switch-case 부분이 너무 길어서 저 내부를 한 함수로 빼낼 수 있으면 좋겠군요. #define BOARD_SIZE 19 void board_write(int x, int y) { x *= 2; gotoxy(x, y); if ..

_MSC_VER

호환성 프로그램 어쩌구 해서 알 만한 분은 다 아는 MS Visual C++의 컴파일러 자체 매크로 상수이다. VC++4.0: _MSC_VER = 1000 VC++5.0: _MSC_VER = 1100 VC++6.0: _MSC_VER = 1200 VC++7.0: _MSC_VER = 1300 VC++8.0: _MSC_VER = 1400 VC++9.0: _MSC_VER = 1500 VC++에는 각 버전에 따라 이 값이 다르게 정의되어 있다. 이를 이용해 gcc나 g++와 호환인 코드를 짜거나 표준에 어긋나지 않는 코드를 만들 수 있다. #include int main() { #if defined(_MSC_VER) && (_MSC_VER < 1500) __int64 i64 = 0x57bf406691032708;..

환타 오목 게임 재구성. (1)

지환태 님의 미니홈피에서 가져온 오목 게임입니다. 상당히 끌려서 말입니다-_-; 도와드리지 않고는 못 배기겠더군요.(?) 일단 아래는 원본. /* http://zfanta.com/entry/C언어로-오목만들기-5-마지막 * 이 오픈 소스 코드의 저작권은 지환태 님에게 있습니다. */ #include #include #define UP 72 #define DOWN 80 #define LEFT 75 #define RIGHT 77 #define ENTER 13 int x=0,y=0; int oldx=0,oldy=0; int board[38][19]; int turn=1; char who[3][3]={"","흑","백"}; char stone[3][3]={"","○","●"}; void gotoxy(int, i..

2009 정보올림피아드 지역본선 문제 Review (1)

현재 난 고2다. 고로 난 고등부 정올에 나갔다(-_-;) 중딩 때부터 나갔으면 전국본선을 노릴 만하다고 생각하지만... 올해가 고작 2년째라서 상당히 병맛이다. 결과는 6월 5일에 나온다는군. 잡설은 집어치우고 각설. 연속구간 여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력하는 프로그램을 작성하라. 예를 들어 세 개의 숫자 12345123, 17772345, 22233331이 주어졌다고 하자. 12345123은 연속하여 같은 숫자가 나오는 것이 없으므로 1을 출력하고, 17772345는 7이 세 개 연속하여 나오므로 3을 출력하며, 22233331의 경우에는 2가 세 개, 3..

Programming: Problem-Solving Process.

블로그를 시작하면서 내용이 담긴 첫 글.컴퓨터 프로그래밍이란 일반적으로, 특정한 프로그래밍 언어를 이용해 하나 이상의 추상적 (수학적) 알고리즘 또는 프로세스를 (프로그램을) 구체적인 (실행 가능한) 형태로 구현 하는 과정을 의미한다. 이를 하나씩 짚어 보자... 프로그래밍이 포함하는 과정은 크게 두 가지이다.첫째로 문제를 파악하고 사용 가능한 알고리즘을 선정하여 조직하는 단계이다. 프로그램도 존재 목적이 있다. 적당한 플랫폼상에서 일정한 역할을 수행하기 때문이다. 이것은 시스템의 특정 부분을 예정된 대로 변화시킨다. 이것을 프로그래밍의 의도로 볼 수 있다. 이 의도를 실행시키기 위해서는 논리적인 문제 해결 절차가 필요하다. 결국 프로그래밍에서는 코딩의 전 단계에 수학적 문제 해결 과정이 들어 있는 것이..