kyuseo의 게임 프로그래밍

안녕하세요 터보C ★★★★ 본문

게임, 서적, 문화 소감

안녕하세요 터보C ★★★★

kyuseo 2008. 1. 30. 18:02

개요..

 

제목 : 안녕하세요 터보C

저자 : 임채성

출판사 : 정보문화사

평가 : ★★★★

 

 

 

서평

 

1993년 대학을 입학하고 처음으로 컴퓨터 프로그래밍 C 언어를 공부할 때 보던 책입니다.

 

초심자를 위하여 재미난 삽화와 쉬운 코드, 깨끗한 편집으로 저에게 도움을 많이 주었고 추억이 깃들어 있는 서적으로 예제를 보면서 처음 "Hello World" 를 출력하는 "EXE" 파일과 "COM" 파일로 프로그램을 만든 경이로운 순간이 지금도 기억에 남습니다.

 

당시로서는 최고의 프로그래밍 개발 프로그램으로 볼랜드 사에서 출시한 "터보C (Turbo C) 와 "볼랜드C++ (Borland C++)" 를 이용하여 MS-DOS에서 프로그래밍을 하였고 제가 처음으로 인생게임을 만들게 해준 고마운 프로그램과 서적입니다.

 

현재 Turbo C 는 라이센스 프리로 공개되어 무료로 사용할 수 있습니다.

 

 

추억의 개발툴 터보씨의 스크린샷

 

터보씨의 모습

 

 

 

도스시절 아스키(ASCII) 코드도 많이 필요했지요 ^^

 

 

 

1993년 DOS 시절 작성하던 코드 : (한글은 조합형이라서 깨져서 나오네요 ^^)

 

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#include <string.h>

#include "grp.hpp"

 

unsigned char far EF[44][8];

 

// ?웙랴닯뎠.

// 래웥래댜톋죇ENG.FNT 웙랴톛.

void ReadFont( char *name = "eng.fnt")

{

FILE *file;

file = fopen( name, "rb" );

fread( EF, 352, 1, file );

fclose( file );

}

 

void EngFont( int x, int y, unsigned char *fnt,unsigned char color )

{

unsigned char i, k;

unsigned char data = 0x80;

 

for ( i = 0; i < 8; i++ )

for ( k = 0; k < 8; k++ )

if ( ( fnt[i] & data >> k ) != 0 )

pokeb( FP_SEG(page[PAGE]), ((y + i) * 320) + x + k, color );

}

 

// 탗쥌1 땓퇫웙(X,Y) COLOR 쵀톋씉쿿.

void EngPutch( int x, int y, char s, unsigned char color )

{

if ( (s >= 65) && (s <= 90) ) EngFont( x, y, EF[s - 65], color);

if ( (s >= 46) && (s <= 57) ) EngFont( x, y, EF[s - 20], color);

 

if ( s == 61 ) EngFont( x, y, EF[38], color);

if ( s == 45 ) EngFont( x, y, EF[39], color);

}

 

// 탗쥌땓퇫킿톓 (X,Y) COLOR 쵀톋씉쿿.

void EngPut( int x, int y, char *s, unsigned char color )

{

unsigned char i, data;

 

for ( i = 0; i < strlen(s); i++ )

{

    data = *(s + i);

    EngPutch( x, y, data, color );

    x += 8;

}

}

 

void main()

{

VirtualMode();

char *number;

ReadFont();

EngPut( 140, 40, "STRIKE", 1 );

EngPut( 92, 60, "SPRITE NUMBER IS", 4 );

 

itoa(1245,number,10); // 츜퇫웙쥌퇫킿씉쩯. ?츃밻큖뻈.

EngPut( 228, 60, number, 4 );

getch();

EndVirtual();

 

}