Sablog Models 55

C 언어로 .cdic 파일을 xml로 만드는 프로그램 만드는 중.

제가 스텔로라는 카페에서 활동 중인데, 쉽게 말해서(?) 언어를 창작하는 곳입니다. 제가 사실상 (매니저 빼면) 최초 멤버인데다 가장 꾸준해서-_- 활동 회원들을 주도하고 있습니다. 그곳에 최근에 전파되어 온 프로그램 중에서 ConlangDictionary(0.2)라는 게 있는데, 처음에 Zompist.com의 한 사용자가 만들어 올렸다고 하며 소스도 공개되어 있습니다. 굳이 인공 언어(Conlang, Constructed Language)를 위한 사전은 아니지만... 언어의 바닥이라고 할 수 있는 음성과 어휘를 파일에 관리해 주는 어플리케이션입니다. 인코딩 포맷을 자동으로(윈도는 US-ASCII 소위 ANSI로..-_-) 결정해 버려서, 덕분에 몇 가지 발음 기호들(가장 기본적인 ɸ나 ŋ마저도!!)이 ..

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

이 코드를 리팩토링하기 시작한 후로 상당히 많은 시간이 흘렀는데.... 제대로 된 개선은 한 적이 없다. 미쳤구나. 시간이 많던 방학 동안에는 아예 안 건드렸다. 원래 check()를 바꿔 보려고 했습니다만 더 최적화시키기는 어려워 보입니다.-_-;; 대신에 move()의 길이를 좀 더 줄여 보도록 하겠습니다. /* five_in_a_row.h * by ZFanta & UNique */ #ifndef FIVE_IN_A_ROW #define FIVE_IN_A_ROW #include "tool.h" #define UP 72 #define DOWN 80 #define LEFT 75 #define RIGHT 77 #define ENTER 13 #define ESC 27 #define BOARD_SIZE 19 i..

ActiveX를 다운받게 하려면 브라우저 검사는 하란 말이다.. - HTML 브라우저 검사

구글 신의 도움을 받아 거미줄(web-_-)을 산책하던 중 이런 페이지를 발견했다. 젠장. ActiveX 설치를 권고하려면 브라우저가 MS IE인지 검사라도 하란 말이다. 저렇게 위험 요소가 득시글거리는 사이트에 들어가는 사람은, 혹은 애초에 저 사이트를 이용하는 사람들은 대개 IE를 사용하겠지. 파폭을 사용한다면 이 창을 보고 액티브엑스 설치인 줄은 알 테고. 하지만 기본적으로 원칙에 어긋나지 않는가. 방법. 자바스크립트의 navigator.userAgent를 이용한다. 자바조차 작동하지 않는 OS에는 상당히 미안하지만, 간단한 방법이다. 사이, ... 뒤에 이 코드를 붙여 넣으면 된다. 여기서 나오는 index.php가 싫다면 다른 페이지로 바꿔도 된다. 인터넷 익스플로러가 있어야 한다는 안내 페이지..

미친소 폐기일 카운터 수정본입니다.

미친소 잡는 날 남았습니다. 미친소 잡는 날 남았습니다. 저는 도아 님의 글에서 가져온 이 배너 원본을 상당히 오랫동안 달고 있었습니다. (HTML 표준만 아주 약간 수정했습니다.) ­ 얼마 전에 좀 더 수정했는데, 다른 분들을 위해 소스를 이 부분만 따로 올려 드리려고 합니다. MB = Mad Bulls 미친 소 잡는 날 남았습니다. ㅠㅠ See more... MB = Mad Bulls 미친 소 잡는 날 남았습니다. ㅠㅠ See more... Mad Bulls에 대한 간략한 설명과, 이 배너의 원본을 제공해 주신 도아 님의 글로 가는 링크가 추가되었습니다.

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

3번 문제는 처음 보고 정체를 알 수 없었다. 의좋은 형제 어떤 N × N 개의 단위 구역으로 구성된 논이 있다. 각 단위 구역에서는 쌀이 생산되는데 구역에 따라서 쌀의 생산량이 다르다. 아래는 5 × 5 = 25개의 단위 구역으로 나누어진 논을 보여주고 있다. 각 구역에 적혀 있는 숫자는 예상되는 쌀의 수확량(가마)이다. 3 4 5 1 8 8 2 3 2 2 0 2 9 5 4 1 11 3 0 5 4 5 2 7 1 두 의좋은 형제는 이 N × N의 논을 다음과 같이 두 부분으로 나누어 형은 아래쪽에 있는 땅을 가지고, 동생은 위쪽의 땅을 가지기로 하였다. 전체 구역을 마구잡이로 나누면 기계로 농사를 짓는데 불편하기 때문에 각 형제에게 배분된 구역이 단조 증가하는 계단 모양이 되게 하려고 한다. 즉, 주어진..

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

이번 솔루션은 다소 간단하다. 또한 내가 작년에 쓰다가 한 문제를 망치게 만든 바로 그 방법이기도 하다.... (당시 int 형 변수를 제곱한 만큼 신규 할당시켰더니 오버플로) 바뀐 줄은 강조해 놓았다. #include #include int main() { int n, i, j; int higher = 0; int *tower = (int *)malloc(sizeof(int)*500001); FILE *fpi, *fpo; tower[0] = 100000000; fpi = fopen("INPUT.TXT", "r"); fpo = fopen("OUTPUT.TXT", "w"); fscanf(fpi, "%d", &n); for (i = 0; i < n; i++) { fscanf(fpi, "%d", tower +..

조만간 어셈블리어 SyntaxHighlighter Brush를 재게시하겠습니다.

지금 제 블로그에 SyntaxHighlighter를 설치해 놓고, 별도의 확장 코드를 만들어서 어셈블리어 코드를 올리는 중입니다. 일단 당장 SH에서 어셈블리어를 못 올리는 게 아쉬워서 파일을 올리긴 했지만, -_-; 이건 뭐 걸레입니다. SyntaxHighlighter의 구조를 완전히 이해했으니 시험 끝나고 재개발 들어갑니다. (오늘 시험 첫 날이었습니다. 이게 뭐 하는 짓이지... 4일까지 시험인데) 목표는: 1) 이름만 8086이지 명령어 등등 x86 예약어까지 모조리 있는 문제 해결 2) SH 2.0 패키지에서 도입된 형식으로 가독성 향상 3) MASM, GAS 따로 만들어 지원하고, aliases 수정. (게시 원본은 NASM) 참고. 저도 2.0.320으로 업그레이드 완료했습니다.

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

2번 문제는...ㅅㅂ 작년에 처음 정올 나갔을 때 메모리 관리하다가 병신이 된 까닭에 (그 때 malloc 쓰는 다 된 코드였는데 얘가 오버플로. 안 했으면 통과였다.) 그래서 올해는 아예 메모리 관리는 생각도 안 하고 나갔다. 근데 낭패. 탑 KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 ..

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

일단 지난 번에 제가 바꿔 놓은 코드에 좀 문제가 있습니다. 누가 이겼는지 안 나오더군요.. 잘 되더니 왜 그러지;; 뭐 좀 바꿨더니 다시 됩니다만. /* five_in_a_row.h * by ZFanta & UNique */ #ifndef FIVE_IN_A_ROW #define FIVE_IN_A_ROW #include "tool.h" #define UP 72 #define DOWN 80 #define LEFT 75 #define RIGHT 77 #define ENTER 13 #define ESC 27 #define BOARD_SIZE 19 int x = 0, y = 0; int oldx = 0, oldy = 0; int board[BOARD_SIZE][BOARD_SIZE]; int turn = 1; c..