SlideShare a Scribd company logo
1 of 4
Download to read offline
Term Project Report
-Tetris-
C프로그래밍 3분반
김 인 중 교수님
20800577 장 호 상
1. 게임구성 & 설명
<Play 화면>
① 수업 시간에 배운 Array를 이용해서 블록을 그리는 방법으로 블록을 출력하였다.
또, 블록을 이동시키는 방법과 돌리는 방법도 숙제로 했던 방법과 동일하다.
다만 블록을 돌리는 방향은 한 방향으로만 했고, 바로 떨어지게 하는 키와 가속해서 내
려 오는 키를 만들었다.
② ①번의 블록보다 연한 색깔을 써서 낙하지점을 예측할 수 있게 만들어 보았다.
③ 다음에 나올 블록을 2개까지 볼 수 있게 만들었다.
④ 점수를 나타낸다.
⑤ Combo 시스템을 사용하여 점수를 더 받을 수 있게 만들었다.
-전반적으로 Setcolor 함수를 이용해서 좀 더 세련되게 디자인 하려고 했으며, 넷마블, 한
게임 등의 게임 사이트에서 제공하는 테트리스와 흡사하게 만들어보려고 노력했다. 기존에
수업시간이나 과제를 통해서 배웠던 코드로만 만들기는 쉽지가 않아서, 책과 인터넷을 많이
참고 하였다.
2. 게임방법, 실행, 컴파일 한 방법
기본적인 룰은 기존의 테트리스와 동일하다. ‘←’ ‘→’ 키를 이용해서 블록의 이동이 가 능
하다. ↑키는 블록을 돌려주며, ↓키는 블록이 내려오는 속도를 가속해준다. Space키는 바로
내려오게 해주는 키다.
컴파일은 Visual Studio를 통해서 했으며, 실행은 exe 파일을 따로 만들어 놔서 exe 파일
을 실행시키면 된다.
3. 중요한 변수 및 함수
①변수
-block Array(int block[7][4][4][4])
이 게임에 주인공이라고 생각하면 될 것 같다. 과제로 만들었던 블록을 변형하여 테트
리스에 나오는 블록들을 그릴 수 있게 Array 형태로 정의 하였으며, 헤더파일에 있다.
-색 Array(int set[5], int darkset[5])
게임 함수에 있는 변수로, 헤더파일에서 정의해 놓은 setcolor 함수와 define된 색들
을 활용할 수 있게 정의해 놓았다. darkset변수는 낙하지점을 예측할 때 쓰이는 연한
색을 정의한 변수이다.
-다음 블록 출력용 시드(int nxtseed1[2],int nxtseed2[2])
다음에 나오는 블록들을 만들기 위해 랜덤의 시드로 쓰여 질 변수이다.
-dir, cnline
dir는 과제에 쓴 변수와 같은 블록의 회전에 의해 바뀌는 모양을 정하는 변수이다.
cnline은 가로줄이 다 차서 없어진 라인의 수를 의미한다(cleaned line)
-RW structure
Read와 Write를 위한 구조체로 헤더파일에 있다.
②함수
-display함수 : 게임을 화면으로 출력해주는 함수
-next함수 : 다음에 나올 블록을 보여주는 함수
-crash함수 : 벽이 다 차는 것을 체크(게임오버 체크)
-linefull 함수 : 가로줄이 다 차졌는지 체크하는 함수
-RW 함수들
RW 함수들은 데이터를 선입 선출 하기 위해 도입한 Queue(선형구조)이다.
- 헤더파일 하나와(header.h) 메인함수가 있는 'main.c' 게임의 모든 함수들이 있는
'game.c'로 나누어 져있다. ‘main.c'에는 무한으로 game 함수만 호출하게 해놓았다.
4. 소 감
단지 이번 term project 뿐만 아니라 이번학기 C프로그래밍을 들으면서 느꼈던 점을 적어
보고 싶다. 이번학기 내도록 나를 힘들게 하고 괴롭혔던 과목이 바로 C프로그래밍이다. 항
상 과제가 일요일쯤에 나오고 마감일은 토요일이었던 것으로 기억한다. 과제를 확인하는 월
요일에는 정말 우울하고 머릿속이 복잡했다. 토요일에 과제를 제출하기 전까지는 일주일 내
도록 머릿속은 온통 프로그래밍 언어들로 가득 차 있었고, 다른 일을 하거나 친구들이랑 놀
때도 괜히 찝찝하고 하루라도 빨리 제출해버리고 싶었다. 그렇지만 항상 제출일이 돼서야
과제를 완료 할 수 있었다. 과제를 제출하고 나서야 마음에 평안이 찾아오고 일주일이 마무
리 되는 개운함을 느낄 수 있었다. 이번 학기는 이런 패턴의 반복이었다. C프로그래밍은 내
가 처음으로 듣는 전공수업이고, 선배들이 말하기를 컴퓨터공학 전공자들의 필수 아이템이
C프로그래밍이라는 소리를 들어서 더욱 욕심이 생겼고, 그만큼 이번 학기는 C프로그래밍과
거의 붙어살았던 것 같다. 예습까진 안 하더라도 숙제를 하면서 복습은 꾸준히 했었다. 정
확히 말하면 숙제를 위해 복습을 하지 않을 수가 없었다. 매주 있던 과제가 힘들고 부담스
럽게 많긴 하지만, 그 만큼 책을 한번 더 보게 해서 실력향상에는 도움이 되었던 것 같다.
내가 생각하기에 C를 꽤나 열심히 공부했고, 숙제도 열심히 했지만, 중간, 기말 고사 성적
은 별로 좋지 않은 것 같아서 솔직히 많이 속상하다. 그래도 숙제를 할 때, 원하는 결과가
모니터 상으로 출력 될 때 느껴지는 그 쾌감은 어떤 것과도 비교할 수 없을 만큼 대단했다.
어려운 만큼 C언어는 매력적이고 재미있는 것 같다. 특히 term project를 하면서는 괜히
내가 만든 게임이고 코드니깐 더 욕심이 생기고, 몇 일 밤을 새면서 지치는 지도 모르고 작
업했던 것 같다. 선배들과 지인들에게 계속 조언을 구하고, 학기 초에 샀던 C프로그래밍 책
을 참고하였다. 원래는 색깔을 입히는 것과 Combo 시스템, 블록의 낙하예상지점 표는 없던
기능이었는데, 인터넷에서 찾고 공부하면서 넣은 기능이다. 컴공인으로 살아가면서 앞으로
어떻게 보면 마누라보다 가까이 지내야 하는 것이 프로그래밍 언어들 아닐까? 아마 나는 프
로그래밍의 매력에 푹 빠져버린 것 같다. 물론 아직은 프로그래머라고 부르기에는 부끄러운
실력을 가지고 있지만, 언젠가는 당당하게 ‘저 컴퓨터 프로그래머에요!’라고 말하는 날이 오
기를 기대해본다.

More Related Content

Viewers also liked

4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서호상 장
 
METRIFIT for Swimming
METRIFIT for SwimmingMETRIFIT for Swimming
METRIFIT for SwimmingPeter Larkin
 
Metrifit for GAA Clubs
Metrifit for GAA ClubsMetrifit for GAA Clubs
Metrifit for GAA ClubsPeter Larkin
 
10.dsd 4 bit-alu
10.dsd 4 bit-alu10.dsd 4 bit-alu
10.dsd 4 bit-alu호상 장
 
Metrifit functionality overview
Metrifit functionality overviewMetrifit functionality overview
Metrifit functionality overviewPeter Larkin
 
11.dsd alarmed clock
11.dsd alarmed clock11.dsd alarmed clock
11.dsd alarmed clock호상 장
 
METRIFIT Functionality Overview
METRIFIT Functionality OverviewMETRIFIT Functionality Overview
METRIFIT Functionality OverviewPeter Larkin
 
3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서호상 장
 
METRIFIT for Team Sports
METRIFIT for Team SportsMETRIFIT for Team Sports
METRIFIT for Team SportsPeter Larkin
 
13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조호상 장
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final호상 장
 

Viewers also liked (12)

Metrifit
MetrifitMetrifit
Metrifit
 
4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서
 
METRIFIT for Swimming
METRIFIT for SwimmingMETRIFIT for Swimming
METRIFIT for Swimming
 
Metrifit for GAA Clubs
Metrifit for GAA ClubsMetrifit for GAA Clubs
Metrifit for GAA Clubs
 
10.dsd 4 bit-alu
10.dsd 4 bit-alu10.dsd 4 bit-alu
10.dsd 4 bit-alu
 
Metrifit functionality overview
Metrifit functionality overviewMetrifit functionality overview
Metrifit functionality overview
 
11.dsd alarmed clock
11.dsd alarmed clock11.dsd alarmed clock
11.dsd alarmed clock
 
METRIFIT Functionality Overview
METRIFIT Functionality OverviewMETRIFIT Functionality Overview
METRIFIT Functionality Overview
 
3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서
 
METRIFIT for Team Sports
METRIFIT for Team SportsMETRIFIT for Team Sports
METRIFIT for Team Sports
 
13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final
 

Similar to 1.c term project report

내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오KwangSam Kim
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)Kiyoung Moon
 
SiegeMode! C++ Advanced Project Ver
SiegeMode! C++ Advanced Project VerSiegeMode! C++ Advanced Project Ver
SiegeMode! C++ Advanced Project VerSeokmin No
 
The hows and_whys_of_level_design_01
The hows and_whys_of_level_design_01The hows and_whys_of_level_design_01
The hows and_whys_of_level_design_01용태 이
 
Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료seungdols
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019devCAT Studio, NEXON
 
Postmortem: Frozenbyte's Trine
Postmortem: Frozenbyte's TrinePostmortem: Frozenbyte's Trine
Postmortem: Frozenbyte's TrineSeo Kyung Jung
 
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?KwangSam Kim
 
두더지 정복자 포스트모템
두더지 정복자 포스트모템두더지 정복자 포스트모템
두더지 정복자 포스트모템snugdc
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
 
[N3C] 고민정 - 주말코딩으로 취미게임 만들기
[N3C] 고민정 - 주말코딩으로 취미게임 만들기[N3C] 고민정 - 주말코딩으로 취미게임 만들기
[N3C] 고민정 - 주말코딩으로 취미게임 만들기Minjung Ko
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
Age Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemAge Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemNam Hyeonuk
 

Similar to 1.c term project report (15)

내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오내 손에 픽셀을 쥐어다오
내 손에 픽셀을 쥐어다오
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
 
SiegeMode! C++ Advanced Project Ver
SiegeMode! C++ Advanced Project VerSiegeMode! C++ Advanced Project Ver
SiegeMode! C++ Advanced Project Ver
 
The hows and_whys_of_level_design_01
The hows and_whys_of_level_design_01The hows and_whys_of_level_design_01
The hows and_whys_of_level_design_01
 
Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료Django Girls 12월 Meetup 발표 자료
Django Girls 12월 Meetup 발표 자료
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
엑셀왕국
엑셀왕국엑셀왕국
엑셀왕국
 
Postmortem: Frozenbyte's Trine
Postmortem: Frozenbyte's TrinePostmortem: Frozenbyte's Trine
Postmortem: Frozenbyte's Trine
 
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?
 
두더지 정복자 포스트모템
두더지 정복자 포스트모템두더지 정복자 포스트모템
두더지 정복자 포스트모템
 
Tonicscape
TonicscapeTonicscape
Tonicscape
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 
[N3C] 고민정 - 주말코딩으로 취미게임 만들기
[N3C] 고민정 - 주말코딩으로 취미게임 만들기[N3C] 고민정 - 주말코딩으로 취미게임 만들기
[N3C] 고민정 - 주말코딩으로 취미게임 만들기
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
Age Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemAge Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings Postmotem
 

More from 호상 장

장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529호상 장
 
장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522호상 장
 
장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515호상 장
 
17.tigerteam design document
17.tigerteam design document17.tigerteam design document
17.tigerteam design document호상 장
 
16.h trainer user manual
16.h trainer user manual16.h trainer user manual
16.h trainer user manual호상 장
 
14.c++ final term
14.c++ final term14.c++ final term
14.c++ final term호상 장
 
12.dsd dicegame
12.dsd dicegame12.dsd dicegame
12.dsd dicegame호상 장
 
8.login desing serial adder
8.login desing serial adder8.login desing serial adder
8.login desing serial adder호상 장
 
2.공학설계입문피피티
2.공학설계입문피피티2.공학설계입문피피티
2.공학설계입문피피티호상 장
 
장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501호상 장
 
장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417호상 장
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사호상 장
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327호상 장
 

More from 호상 장 (13)

장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529
 
장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522
 
장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515
 
17.tigerteam design document
17.tigerteam design document17.tigerteam design document
17.tigerteam design document
 
16.h trainer user manual
16.h trainer user manual16.h trainer user manual
16.h trainer user manual
 
14.c++ final term
14.c++ final term14.c++ final term
14.c++ final term
 
12.dsd dicegame
12.dsd dicegame12.dsd dicegame
12.dsd dicegame
 
8.login desing serial adder
8.login desing serial adder8.login desing serial adder
8.login desing serial adder
 
2.공학설계입문피피티
2.공학설계입문피피티2.공학설계입문피피티
2.공학설계입문피피티
 
장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501
 
장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327
 

1.c term project report

  • 1. Term Project Report -Tetris- C프로그래밍 3분반 김 인 중 교수님 20800577 장 호 상
  • 2. 1. 게임구성 & 설명 <Play 화면> ① 수업 시간에 배운 Array를 이용해서 블록을 그리는 방법으로 블록을 출력하였다. 또, 블록을 이동시키는 방법과 돌리는 방법도 숙제로 했던 방법과 동일하다. 다만 블록을 돌리는 방향은 한 방향으로만 했고, 바로 떨어지게 하는 키와 가속해서 내 려 오는 키를 만들었다. ② ①번의 블록보다 연한 색깔을 써서 낙하지점을 예측할 수 있게 만들어 보았다. ③ 다음에 나올 블록을 2개까지 볼 수 있게 만들었다. ④ 점수를 나타낸다. ⑤ Combo 시스템을 사용하여 점수를 더 받을 수 있게 만들었다. -전반적으로 Setcolor 함수를 이용해서 좀 더 세련되게 디자인 하려고 했으며, 넷마블, 한 게임 등의 게임 사이트에서 제공하는 테트리스와 흡사하게 만들어보려고 노력했다. 기존에 수업시간이나 과제를 통해서 배웠던 코드로만 만들기는 쉽지가 않아서, 책과 인터넷을 많이 참고 하였다.
  • 3. 2. 게임방법, 실행, 컴파일 한 방법 기본적인 룰은 기존의 테트리스와 동일하다. ‘←’ ‘→’ 키를 이용해서 블록의 이동이 가 능 하다. ↑키는 블록을 돌려주며, ↓키는 블록이 내려오는 속도를 가속해준다. Space키는 바로 내려오게 해주는 키다. 컴파일은 Visual Studio를 통해서 했으며, 실행은 exe 파일을 따로 만들어 놔서 exe 파일 을 실행시키면 된다. 3. 중요한 변수 및 함수 ①변수 -block Array(int block[7][4][4][4]) 이 게임에 주인공이라고 생각하면 될 것 같다. 과제로 만들었던 블록을 변형하여 테트 리스에 나오는 블록들을 그릴 수 있게 Array 형태로 정의 하였으며, 헤더파일에 있다. -색 Array(int set[5], int darkset[5]) 게임 함수에 있는 변수로, 헤더파일에서 정의해 놓은 setcolor 함수와 define된 색들 을 활용할 수 있게 정의해 놓았다. darkset변수는 낙하지점을 예측할 때 쓰이는 연한 색을 정의한 변수이다. -다음 블록 출력용 시드(int nxtseed1[2],int nxtseed2[2]) 다음에 나오는 블록들을 만들기 위해 랜덤의 시드로 쓰여 질 변수이다. -dir, cnline dir는 과제에 쓴 변수와 같은 블록의 회전에 의해 바뀌는 모양을 정하는 변수이다. cnline은 가로줄이 다 차서 없어진 라인의 수를 의미한다(cleaned line) -RW structure Read와 Write를 위한 구조체로 헤더파일에 있다. ②함수 -display함수 : 게임을 화면으로 출력해주는 함수 -next함수 : 다음에 나올 블록을 보여주는 함수 -crash함수 : 벽이 다 차는 것을 체크(게임오버 체크) -linefull 함수 : 가로줄이 다 차졌는지 체크하는 함수 -RW 함수들 RW 함수들은 데이터를 선입 선출 하기 위해 도입한 Queue(선형구조)이다. - 헤더파일 하나와(header.h) 메인함수가 있는 'main.c' 게임의 모든 함수들이 있는 'game.c'로 나누어 져있다. ‘main.c'에는 무한으로 game 함수만 호출하게 해놓았다.
  • 4. 4. 소 감 단지 이번 term project 뿐만 아니라 이번학기 C프로그래밍을 들으면서 느꼈던 점을 적어 보고 싶다. 이번학기 내도록 나를 힘들게 하고 괴롭혔던 과목이 바로 C프로그래밍이다. 항 상 과제가 일요일쯤에 나오고 마감일은 토요일이었던 것으로 기억한다. 과제를 확인하는 월 요일에는 정말 우울하고 머릿속이 복잡했다. 토요일에 과제를 제출하기 전까지는 일주일 내 도록 머릿속은 온통 프로그래밍 언어들로 가득 차 있었고, 다른 일을 하거나 친구들이랑 놀 때도 괜히 찝찝하고 하루라도 빨리 제출해버리고 싶었다. 그렇지만 항상 제출일이 돼서야 과제를 완료 할 수 있었다. 과제를 제출하고 나서야 마음에 평안이 찾아오고 일주일이 마무 리 되는 개운함을 느낄 수 있었다. 이번 학기는 이런 패턴의 반복이었다. C프로그래밍은 내 가 처음으로 듣는 전공수업이고, 선배들이 말하기를 컴퓨터공학 전공자들의 필수 아이템이 C프로그래밍이라는 소리를 들어서 더욱 욕심이 생겼고, 그만큼 이번 학기는 C프로그래밍과 거의 붙어살았던 것 같다. 예습까진 안 하더라도 숙제를 하면서 복습은 꾸준히 했었다. 정 확히 말하면 숙제를 위해 복습을 하지 않을 수가 없었다. 매주 있던 과제가 힘들고 부담스 럽게 많긴 하지만, 그 만큼 책을 한번 더 보게 해서 실력향상에는 도움이 되었던 것 같다. 내가 생각하기에 C를 꽤나 열심히 공부했고, 숙제도 열심히 했지만, 중간, 기말 고사 성적 은 별로 좋지 않은 것 같아서 솔직히 많이 속상하다. 그래도 숙제를 할 때, 원하는 결과가 모니터 상으로 출력 될 때 느껴지는 그 쾌감은 어떤 것과도 비교할 수 없을 만큼 대단했다. 어려운 만큼 C언어는 매력적이고 재미있는 것 같다. 특히 term project를 하면서는 괜히 내가 만든 게임이고 코드니깐 더 욕심이 생기고, 몇 일 밤을 새면서 지치는 지도 모르고 작 업했던 것 같다. 선배들과 지인들에게 계속 조언을 구하고, 학기 초에 샀던 C프로그래밍 책 을 참고하였다. 원래는 색깔을 입히는 것과 Combo 시스템, 블록의 낙하예상지점 표는 없던 기능이었는데, 인터넷에서 찾고 공부하면서 넣은 기능이다. 컴공인으로 살아가면서 앞으로 어떻게 보면 마누라보다 가까이 지내야 하는 것이 프로그래밍 언어들 아닐까? 아마 나는 프 로그래밍의 매력에 푹 빠져버린 것 같다. 물론 아직은 프로그래머라고 부르기에는 부끄러운 실력을 가지고 있지만, 언젠가는 당당하게 ‘저 컴퓨터 프로그래머에요!’라고 말하는 날이 오 기를 기대해본다.