모든 프로그램의 접수처는 neocoin@orgio.net 입니다. 링크 시키란 의미가 아닙니다.
Release 로 컴파일 해서 보네주세요. 실행파일만 주세요
1월 9일자 진행 프로그램: 혜영(http://zeropage.org/pds/Alcanoid1_혜영.exe)인수(http://zp.cse.cau.ac.kr/~nuburizzang/Arca.exe)선호(http://zeropage.org/pds/arkanoid_선호.exe)상협(http://zeropage.org/pds/omok_상협.exe) (창섭이는 부탁으로 제외하고 다음 이시간에)
1월 15일 2시까지 pc실로 모여주세요. 역시 나름대로 해오시고 결과물 보겠습니다. 15일 결과물을 보고 이후 일정과 할일을 결정하겠습니다.
2002. 1. 22 화요일 오후 2시 pc실로 모여주세요 : 역시나 마찬가지 진행 상황의 확인이고, 29일에 종칩니다.
차후 일정에서 29일을 마지막으로 한다는걸 30일로 변경하겠습니다. 29일에 ibm에서 세미나가 있어서 갈려고 합니다.
30일에 영창, 영서군의 참여도 있었으면 합니다. 참석해 주세요. 최종 정리와 지금까지의 스터디의 진행을 되돌아 보려고 합니다.
2002. 1. 22 화요일 오후 2시 : 역시나 마찬가지 진행 상황의 확인이고, 29일에 종칩니다. --상민
차후 일정에서 29일을 마지막으로 한다는걸 30일로 변경하겠습니다. 29일에 ibm에서 세미나가 있어서 갈려고 합니다. --상민
2002. 1. 30 최종 모임 그리고 변 : 영창군 영서군도 참석하시길. 완전 정리입니다. --상민
사실 22일을 마지막으로 종지부를 찍으려 했지만, 30일을 종착점으로 삼겠습니다. 일단 프로젝트 상황 체크는 종료이고, 종료하는 이유는 언급한것과 같이 Java에 좀더 신경을 써달라는 의미와 더 자세한 이유는 다음 30일 최종 모임에서 이야기 하겠습니다. 여름방학부터 진행되어 왔던 계획들의 이야기와, 그동안의 거시적 미시적 성과 같은것을 살펴보겠습니다. 그리고 영서, 영창 오세요. --상민
진행상황 체크는 하지 않지만 마지막 각자의 산출물을 30일에 링크 걸고 이 위키 페이지 최종 정리에 들어 갈것입니다. 30일 이후에 프로그램을 받겠습니다.
1월 5일 - 공( 기존 지뢰찾기 스마일 표시 차용 ), 배경, 마스킹, 공 출동 처리, 벽돌 깨지는 부분 처리(반응이 즉각 안옴-뭘로 가렸다가 치워야 깨진게 보임)
1월 10일 - 블록 내구도별로 색깔 다 나옵니다. 전통적인 게임 색깔상 가장 나은상태(내구도4):파랑
그저그런상태(내구도3) :초록
조금안좋은상태(내구도2):노랑
완전안좋은상태(내구도1):빨강
박살난상태(내구도0):배경그림
이렇게 해서 그려줘써요.
1월 11일 - 멀티미디어 타이머 쓰다가 계속 에러가 난다. 자꾸 형이 틀렸다고 나오는데 열받아서 때려쳤다. 나중에 기분풀리면 다시.. 벽돌 즉각즉각 깨짐. 블록 두개에 동시에 부딪칠때도 같이 처리. 이제 95프로 정도 기본틀 완성. 죽을 때 처리만 해주 면 완성. 그 뒤로 미사일이나 아이템 넣고 싶으면 넣을 생각..-.- 100 프로 완성! 벽돌 다 깨지고 죽는거 처리돼고 어쨌든 지금 보기엔 완벽한것 같음. 앞으로는 좀더 이쁘게 다듬어볼 생각..~~ 멀티미디어 타이머를 쓴다고 써봤는데.. 확실히 바를 막 움직여도 공은 상관안하고 원래 속도 유지하면서 가긴 하거든요 근데 호출주기를 너무 줄여버리니까(1~20정도) 바가 움직이지 못하는 현상이... 끝낼때는 디버그 에러도 나더군요. 뭐 가 잘못된 건지..
1월 12일 - 마우스로 움직이는 것까지 가능하게 했습니다.(이건 혜영이 누나께 마우스,키보드 다 된다는 걸 보고..-.-) 확실히 마우스로 왔다리갔다리 하니까 훨씬 부드럽게 움직이네요. ClipCursor()인가? 요거로 영역 지정해줘서 마우스 커서가 박스 밖으로 못나가게 해놨구여. 키보드는 너무 무뚝뚝하게 움직여서리..-.-;;
알게된점 또는 처음해본것 : 내가 만든 클래스 넣기,has-a 포함 이랑 더블 버퍼링이랑 2차원 배열 전달하기,강제 형변환의 위험성,
기타 : 삽질하다가 내 이쁜 스마일 공이 날아가버림 걍 검은 배경이랑 보색이 맞게 노란공으로 바꿨음 * 앞으로 할것 : 아이템 넣기, 미사일 쏘기(--;), 멀티미디어 타이머 다시 해보기 등등..
이상한 점 : 내껀 왜 일케 실행파일이 클까..--;; 거의 2메가 가까이 되네.. 컴파일할때 뭔가 설정을 해줘야 하는것일까.. 음.. 제 배경화면 비트맵이 24bit 트루컬러라서 굉장히 커서 그런걸까요..-.-
이상한 점2 : 울집에선 잘 돌아간단 말얏! 왜 딴집에선 안 돌아가는 거시야..ㅠ.ㅠ 리소스 새는 걸 어떻게 잡지.. DeleteObject 다 해줬고.. 힝..ㅠ.ㅠ * 그외 : 상협이한테 줘서 테스트 해봤는데요. 처음엔 잘되다가 중간부터 공이 잔상이 생긴다네요. 그리고 상민이형 왈, 오래 놔두면 너네 집에서도 뻗을거야 라는 말씀에 한시간 동안 틀어놔봤거든요. 별다른 변화를 못 느끼겠어여--; 도대체 어떻게 잡을지..ㅠ.ㅠ
이상한 점3 : 내껀 cpu 점유율이 장난이 아니더라고여.. 배경 비트맵 큰 거 가지고 이렇게 될것 같지는 않은데.. 혜영이누나랑 선호꺼는 점유율 1-3정돈데.. 제껀 젤 높게 갔을때가 70오버더라고여..--;; 어떻게 된일인지..
느낀 점 : 역시 난 아직 걸음마를 익힌 단계에 불과한 넘이다. 이런 허접한걸 프로그램이라고 만들어 놓고 좋아하다니..--; 앞으로 더욱 열심히 매진을! 메모리 엄청 새고.. DC에 대해 더 공부를 해야 하는 걸까..
느낀 점2 : 다시 짤래 -.-
from 느낀 점2 네번째 다시 짜기
1월 23일 밤-1월 24일 새벽 - 다시 짜서 완성..--;
일단은 멀티 타이머 1까지 먹히는 걸로 봐서 98에서도 돌아갈 거라고 짐작됨..--;
고친점 : 별로 없다. 비트맵을 멤버 변수로 넣었다.
밤 새서 다시짰음.. 이번에도 안되면 난 몰라-.-
지금 돌려서 테스트중...(xp 됨.98 안됨--;(실행하면 잘못된 연산 에러남),2000됨,me됨)
결론 : (멋대로) xp에서 짠거랑 98에서 짠거랑 호환이 안된다?--;
근거 : 벌써 4번째 다시 짠건데 98에서는 타이머가 제대로 안먹히거나 뭔가 안좋은 상황이 계속 발생됨
여름방학때 98에서 짠 지뢰찾기를 xp에서 돌려보니 그림이 막 이상한데에 그려진다.
고로 앞으로는 98 따위는 신경 안쓰기로 했다
아쉬운점 : 1,2번째는 너무 대충 짰고, 3번째는 정말 정성 들여서 내가 생각하고 있는 OOP는 다 지켰고
정말 열심히 짰는데 거의 다 됐을 무렵 멀티미디어 타이머란 복병이 플밍을 말리게 했다. 결국
리소스 다 새고 바 안 움직이고 공 버벅거리는 등등.. 굉장히 더러워졌다. 그래도 난 이걸 평생
가지고 있을 거다. OOP라는 것(내 멋대로긴 하지만..--;)을 최초로 지켜본 소스기 때문에..^^;
마지막 작품이 될 4번째. 3번째로 끝낼까 했지만.. 역시나 미완성은 맘에 안들기 때문에 열받는
걸 무릅쓰고 다 다시 짰다. 밤 새서 짜다보니까 혈압 오르고.. 짜증나는 바람에 oop고 뭐고 없다.
일단 클래스 별로 다 분류하긴 했지만.. 개별 멤버에 접근하려니까(3번째에서는 몽땅 리턴하는
함수를 마니 만들었었다.) 함수 만들기도 짜증나고 해서.. 다 프렌트 클래스로 넣어 버렸다. 좀
아쉽다. 4번째것이 겉모습은 꽤 잘되었다고 생각되지만.. 3번째것보다 정이 안가는건 왜일까
1월 2일 : 메뉴 만들기
Option으로 Ball Size, Paddle Size, Ball Speed를 사용자가 선택하도록 하기 위해서 필요. Ball Size는 11,13,15 Pixel 중에서 하나를 선택해야 함 - 중복 선택할 수 없도록하기 위한 처리..--;나중에 보니 1학기때 실습예제로 있었는데 몰라서 한참을 삽질) 그리고 게임중일때는 Option메뉴를 선택할 수 없도록 하기 위한 처리까지 했다.
1월 3일 : 비트맵완성..;
비록 공은 다른 곳에서 캡쳐해오기도 했지만, 예쁘지는 않지만 비트맵을 다 만들었네요..; 괜히 포토샵으로 삽질 한 것 같기도 하지만 그래도 뿌듯..--;
1월 7일 : Define 상수 결정, Stage 1의 블럭 초기화, 바의 움직임(키보드 or 마우스)
1월 8일 : 마우스 커서 안보이게 하기, Stage2, Stage3의 블럭초기화
1월 10~11일 : 공움직이게 하기, 벽돌깨지기, 검은 벽돌은 두번 닿아야 깨지도록 하기
1월 12~13일 : 멀티미디어 타이머 사용. 3번의 기회가 주어지고 3번 다 죽으면 게임 끝. (게임 끝 처리)
Stage가 증가하면 벽돌을 하나 당 깼을때 점수 증가 & 공의 속도 20%증가
1월 14일 : 공이 떨어지는 각도를 랜덤함수를 사용해서 일정하지 않도록 함, Stage 4, 5 그림
마스크가 안되는 이유를 알았습니다..; 비트맵을 바꿔서 그렸더군요..; 마스크..에서 검은공에 흰배경인데 저는 흰공에 검은 배경으로 ..; 휴우~ --; 왠 삽질이래..;
흐음..; 절대좌표랄까.. 그걸로 바를 움직였더니 마우스 냅두고 키보드로 움직이면 바가 이상하게 움직임..; 그래서 지금 메뉴에서 처음부터 무엇을 쓸것인지 물어보는 것을 둘까 생각중.. 같이 사용은...아아.. 생각하기 싫다..--;
1월 6일 - 현재까지 2인용, 33처리는 완성, 1인용 인공지능 방어는 완성, 공격은 일부 완성
LT를 갔다온 관계로 2,3일 정도 손을 못 댔습니다.
구체적으로 공격은 컴퓨터가 2->3개 놓는거와 3->4개 놓는거는 되는데 4->5개 놓는게 이상하게도
잘 되지 않더라구여.
현재는 계속 TRACE 구문을 이용해서 어디서 잘못되었는지를 찾고 있습니다.
1월 8일 - 인공지능 오목 기초 완성, 앞으로 보강할일들
상대가 한칸 띈 공격을 할때의 방어
자신도 한칸 띈 공격을 하게 만들기
0,0 좌표에 아주 가끔 돌이 놓아지는 기현상의 버그 수정
1월 9일 - 대망의 띈 2->3 방어와 띈 3->4 방어 완결 및 띈 2->3 공격 띈3->4 공격 완성, 컴퓨터 상당히 똑똑해짐. 이제 앞으로 또 보강할일
가끔 생기는 버그 수정 및 사람도 손쉽게 이길정도의 지능 보강.
1월 10일 - 인공지능 또 다시 보강 - 3을 막을경우에 3,4가 되지 않게 막기(띈 경우 붙은 경우 모두) 앞으로 할일
띈 3,3 방어
3,4 공격 방어
띈 3,3 공격 및 3,4 공격
가장자리 버그 해결
1월 12일 - 인공지능 보강한것들
띈 3 방어 및 가장자리 버그 해결
예전에 두었던것들 기억(공격할것 이나 방어할것들)
3,4 방어 일부 완성, 진행중
띈 3 이나 띈 4 일 경우 공격가능
1월 14일 - 13일 일요일에 석천이형의 조언에 따라 코드 전체적으로 대대적인 Refactoring(이 용어가 맞는지는 모르겠네여..^^;;)을 해서 할수 있는 한 많은 코드들을 함수로 만들었습니다. 이에 따라 라인수가 아주 많이 줄어들게 되었고, 공격과 방어 인공지능을 같은 함수로 동작하게 하여 방어 할 수 있는 패턴은 모두 컴퓨터 공격할 수 있게 하였습니다.(덕분에 코드를 체계적으로 만들때는 상당히 힘들었지만, 한번 그렇게 하니 작업이 훨씬 쉬어 졌습니다. 참으로 중용한 사실을 몸소 체험 한거 같습니다) 3,4 방어 및 공격 인공 지능을 추가 했습니다. 이제 사람을 이길 확률이 좀더 높아 졌지만, 아직도 부족한것 같고 띈 3,3 방어 및 공격과 효율적인 3 만들기를 추가할 예정입니다.
1월 19일 - 그동안 여러가지 일들이 있어서..(01 엠티, 자바 스터디 등등..) 한동안 못하다가 오늘에서야 몇가지 일들을 했습니다. 한일들
가장자리를 판같이 보이도록 했습니다. (지금까지는 판같이 안 보였는데 ㅡㅡ;;)
가장자리에 놓을시에 발생하는 버그들 해결
예전에 놓았던 돌 무한 기억 + leve3 공격까지(2->3개 만드는 레벨) 기억하게 함(지금까지는 예전거 한번만이었지만...)
34공격및 방어에서 발생했던 사소한 버그 해결
지금까지는 2개 만드는것에는 신경을 안썼지만, 이번에 효율적으로 2개를 만들어서 나중에 훌륭한(?) 공격을 할 발판이 되도록 하였음.
앞으로 더 할일(level3 공격 함수화, 띈 3,3 공격및 방어, 오목 알고리즘 문서화)
1월 21일 - 이제는 버그 찾기가 힘들어져 가고 있음..그래도 버그는 여전히 존재
오목 문서화 조금 진행
level3공격의 함수화
베타 테스트(ㅡㅡ;; 결과는...사람과 약간 만만한 수준..)
또 아주 가끔 생기는 버그들 수정 및 띈 3,3 공격및 방어 함수 작성시도..(아직 달성 못함)
효율적인 2개 만들기 업그레이드
앞으로 더 할일 - 오목 알고리즘 문서화 및 띈 3,3 공격과 방어 함수 작성
1월 26일 - 오래 간만에 오목에 손을 댔습니다. 띈 3,3 공격과 방어 알고리즘은 잠깐 사이에 퍼뜩 생각 해냈는데 그걸 구현하는 동안에 버그때문에 많은 시간을 잡아 먹었음.
띈 3,3 방어 및 공격(인공지능중 마지막 최후의 지능...강력한 기능...)
컴퓨터가 너무 빨리 둔다는 의견이 있어서 잠시 생각하는 것 처럼 보이도록 함.
앞으로 할일 - 자잘한 처리들과 띈 3,3 과 컴퓨터의 시간지연을 옵션으로 넣는것.(시간 나면 네트워크도...)
1월 30일 - 자잘한 처리 끝. + 연속 공격(3개 만드는 공격을 연속으로)추가..(1.3배 정도 똑똑해진거 같음..)
기타 느낀점
지금까지 - 코드가 너무 길어지다 보니, 도데체 뭐가 잘못된건지 점점 헷갈려지네여..ㅠㅜ쉽게 해결될줄 알았는데, 정말 코드가 점점 엉망이 되어가는 듯한 느낌이..또한번 벽에 부딪히네여...후유...
1월 8일 - 정말 아주 오래동안 생각하고 고치려고 했던 버그를 수정하니 날아갈듯 하네여~~^^
1월 9일 - 오예 이제 사람도 이길 가능성이 있다 곧있으면 완성할 수 있겠다~~ 얏호~
1월 12일 - 와우.. 완성의 날도 머지 않은듯..
1월 19일 - 점점 사람이 쉽게 이기긴 어려운 오목이 되어가고 있습니다~~앗싸..~ 이제 곧 저도 못이길 오목의 탄생도 머지 않은듯...
1월 21일 - 제가 짠 오목 인공지능이 사람을 이길때 느끼는 희열은 정말 말로 표현할 수 없을정도. 너무 기쁘져.. 특히 요사이 인공지능이 좀 좋아져서 이기는 경우가 많아져서 기쁨을 느끼는 경우도 더 많아져서 살맛남.
1월 27일 - 컴퓨터가 한층 똑똑해져서 너무 기쁨...
1월 29일 - 이제는 그냥 가끔 심심하면 오목 손대는데, 한번 다른 사람이 짠 오목 인공지능은 과연 어떨까 하는 궁금증이 생겨서 데브피아에서 인공지능 되는 오목이 하나 있길래 다운 받아서 해보니..인공지능이 상당히 좋던데여..은근히 제가 짠 오목보다 못하기를 바랬는데.. (막는 기능은 제것과 비슷하게 작동하는거 같은데.. 흠.. 더 컴이 승리할 확률이 이상하게 높더라구여..ㅡㅡ;)그거 보고 조금 기죽었음.. ㅡㅡ;; 그 소스 보고 더 기죽었음....소스가 상당히 짧고..깨끗하고.. 아무래도 나중에 제가 짠 오목 소스 손질좀 해야 할듯...