U E D R , A S I H C RSS

Cpp/2011년스터디


1. 스터디 소개

  • 2학기ì—� 들어가기 ì „ì—� 잉여로운 방학시간ì�„ ì�´ìš©í•´ì„œ C++ì—� 관한 여러가지를 공부해보는 스터디입니다.
  • 스터디 시간: 둘 모ë‘� í•™êµ�ì—� 오는 ì €ë…�시간(7시~10시).
  • 참가ìž�: 김태진, 고한종
  • ì§„í–‰ ë°©ì‹�: 간단하게 C++ì±…ì�„ 학습한뒤 테트리스 코드 ë ˆì�´ìŠ¤ë¡œ 둘ì�´ ê°™ì�´ 짜면서 필요한 부분ì�„ 다시 íƒ�ë�…한다.

2. 목표

  • í�´ëž˜ìФì—� 관해 공부하고, 그걸 토대로 프로그램ì�„ 짜본다.
  • OOPì—� 한발 다가선다.
  • 테트리스를 완성한다.

3. 진행 �황

3.1. 8.1~5

  • í�´ëž˜ìŠ¤ë¶€ë¶„ì�„ 간단하게 공부해봄.
  • 테트리스를 짜는중.
  • 움ì§�ì�´ëŠ” 블럭ì�„ í�´ëž˜ìŠ¤í™”í•´ì„œ 짜려고 하는 중.
  • 어떻게 짤지 설계는 대충 ë��낸 ìƒ�태ì�´ê³ , 코딩ì—� 들어가는 중.

3.2. 8.11~12

  • XCodeì—�서 코드를 좀 ë�” 업그레ì�´ë“œ 시켜보려고 했으나 ë§�í•  VS2008 '윈ë�„' ì—�ë§Œ ë�Œì•„가는 것들(Windows.h)ì�´ 있어 실패하고 한종ì�´ 컴퓨터ì—�서만 짜기로 í–ˆì�Œ.
  • 역시 마소는 표준따위 무시하는 마레기.
  • 시간ì—� ë”°ë�¼ 블럭ì�„ 내려오게 하려고 하고 있으나 뭔가 ì�´ìƒ�함.
    • 12시 13ë¶„ 현재, 블럭ì�´ ê°‘ìž�기 사ë�¼ì§€ëŠ” 현ìƒ�ì�„ 수정하고 지정한 시간ì—� ë”°ë�¼ 조금씩 내려가게 하는ë�° 성공.

3.3. 8.13~14

  • 모ì�´ì§„ 않고 혼ìž� í–ˆì�Œ. 미안.
  • 태진ì�´ 한í…� 좀 미안한ë�° 혼ìž�서 따로 만들어 ë³´ê³  있었다. X코드와 VS2008ì�€ 서로 다른ì �ì�´ 너무 많아서 둘ì�´ ê°™ì�´í•˜ë©´ ì�´ëž˜ì €ëž˜ ì§„í–‰ì�´ 안ë� ê²ƒ 같아서; 움ì§�ì�´ëŠ” 블ë¡�ê³¼ ì�´ë¯¸ ìž�리잡ì�€ 블럭(+ë°°ê²½) 그리고 ì�´ë“¤ì�„ 움ì§�ì�´ê²Œ 하는 함수. ì�´ë ‡ê²Œ 3개를 classí™” 했다. ì�´ 중 ì�´ë¯¸ ìž�리를 ìž¡ì�€ 블럭ì�€ 다른 ë‘�ê°œì�˜ ê°�ì²´ì—�서 접근가능하면서, 유ì�¼í•˜ê²Œ 하나만 존재해야 했다. 그래서 찾아본결과. 싱글톤 패턴ì�´ëž€ê²Œ 있어서... ì�´ê²ƒ 때문ì—� 하루ë�™ì•ˆ ê³ ìƒ�했다. 어쨋든 성공 ã…‹ã…‹ 뭔가 ë��ì�´ ë³´ì�´ëŠ” ëŠ�낌ì�´ë‹¤. ê·¼ë�° ì™ ì§€ 완성시키고 나면 종나 ëŠ�릴것 같아..

3.4. 8.20~21

  • 사실 ì € 저번 때부터 ì�´ëŸ´ê²ƒ ê°™ì�€ ì¡°ì§�ì�´ 있었지. ê²°êµ­ 파토 ã…‹ã…‹ã…‹ã…‹ 혼ìž�서 합니다 ì�´ì™•시작한거 테트리스는 만들고 ë��내야 겠으!
  • 그래서 ì–´ì œ ë°¤ì—� 초벌 완성
    • ê·¼ë�° 안ë�Œì•„ê°€
      • 보니까 ë�™ì �할당한답시고 í�¬ì�¸í„°í˜•ë§Œ 선언해놓고 정리를 안함
    • 블럭ì�´ 키를 누르니까 1칸만 움ì§�ì�¸ë‹¤.. 테트리스 블럭ì�€ 4칸짜리ì�¼í…�ë�°.. 1칸
      • ì�´ë•Œì„œì•¼ 깨달았다. ì•„ 함수만 선언해놓고 순서를 안정해 놨구나.
    • ì�´ë²ˆì—” 블럭ì�´ 안떨어져
      • ì�´ê±´ 보니까 시간 재설정ì�„ 안해줘서 시간재는 ì¹´ìš´í„°ê°€ ì�Œì�˜ìˆ˜ë¥¼ 향해 달려가는 중ì�´ì˜€ë‹¤.
    • 드디어 성공하나 ì‹¶ë�”니 ì�´ë²ˆì—” 블럭ì�´ ë²½ì�„ 뚫고 지나가는구나
      • Set함수ì—� false를 반환하는것ë�„ 대충해놨었고. false를 받았ì�„시 작업ë�„ 안 설정 해놨었다.. 으아
    • ì•„ ë��으 ì�´ì œ 해볼까! -> 블럭ì�´ 바닥ì—� ë�„달해서 죽어야 하는ë�° 죽지않고 버틴다. 게다가 왼쪽으로 ì�´ë�™í•˜ê¸° 까지!
      • ì�´ê±´ 바닥ì—� ë�„달하는 ì¡°ê±´ì�„ if(MKB()==false)로 했었ë�˜ê°€? ì�¸ë�°.. MKBì—� 들어가보니 false 반환ì�´ 없었다.. í—�.
      • 왼쪽ì�´ë�™ì�€ switch 문ì—� break;를 안ì�¨ë†”서 그런거였다 ã…¡ã…¡;
    • 위ì�˜ 문제를 해결하니 블럭ì�´ ì›�하는ë�°ë¡œ 잘 죽고 잘 ìƒ�성ë�˜ë�”ë�¼. ê·¼ë�° 1줄ì�„ 없애려 하니...
      • 없애야 하는 줄위ì�˜ 모든 쌓여있ë�˜ 블럭ì�´ 소멸
      • ê·¸ 다ì�Œí„´ì—� ìƒ�긴 블럭ì�„ ë•…ì—� 놓ìž�마ìž� rayerë°°ì—´ì�´ í„°ì§�! ê·¼ë�° ì�´ê±´ 절대 터질리가 없는 변수ë�¼ëŠ”ê±°?!
      • 위ì�˜ ìƒ�황ì�€ 디버그ì�¼ë•Œ ì�¼ì�´ê³  릴리즈ì�¼ë•ŒëŠ”.. 프로그램ì�´ 죽진 않으나.... ë§�로 표현할수가 없다.
      • 블럭ì�„ 대충쌓아 Game Over ìƒ�황ì�„ ì—°ìœí•˜ë ¤ í•´ë´¤ë�”니 디버그모드ì—�서는 ë§µì�˜ 높ì�€ê³³ì—� ë�„착하기ë�„ì „ì—� rayerí�­íŒŒ -_-
      • 릴리즈ì—�ì„ ... 안죽어... 사실 죽는 ì¡°ê±´ì�„ 잘못 설정한 탓ë�„ 있긴한ë�°.. 심지어 그냥 냅ë‘�ë©´ 부활ë�„ 한다 으앜 ë­�ì§€!

참고 : 경악스러운 문제� 그 릴리즈 http://pds22.egloos.com/pds/201108/21/51/Tetris-rino2.exe

조작� WASD와 ,.로합니다. space는 아� 못합니다 ㅜㅠ
,는 반시계방향회전
.는 시계방향회전
w를 누르면 시계방향 회전입니다.

4. 후기

  • 고한종 - ì •ë³´ì�€ë‹‰, ìƒ�ì†�, ìƒ�성ìž�, 소멸ìž�, 복사ìƒ�성ìž�... ë­�ê°€ ì�´ë¦¬ 많앜ㅋㅋㅋ // 대한민국ì�€ 윈ë�„ê°€ 甲
    • 실질ì � ê°‘ì�€ ë§¥ì�´ëž€ë‹¤ -ì�µëª…
  • 고한종 - 디버그 모드와 릴리즈 모드ì�˜ ì°¨ì�´ë¥¼ ì�´ë²ˆ 기회를 통해 ëŠ�ë�¼ê²Œ ë�˜ì—ˆë‹¤.. ì†�ë�„ì°¨ì�´ 엄청나고.. 디버그 ì—�러가 나고 안나고 ì°¨ì�´ì •ë�„, ê·¼ë�° 그게 꽤나 ì�¸ìƒ�깊ì�€.... ì�´ìƒ�한것ì�´ 만들어졌다. ì•„, 설계ë�„ ê²�나 중요한걸 깨달ì�Œ ã…¡ã…¡; 나중ì—�가서 고치려면 매우 힘듬.

5. 후�담

  • 스터디는 ë��났지만(?) 난 ì•„ì§�ë�„ 테트리스를 붙잡고 있다.
    • 컬러기능            미묘하게 ì �ìš©ë�¨.
    • Hold기능            (완성/패ë„�티와 횟수제한ì�´ ì—†ì�Œã…‹ã…‹ã…‹)
    • 다ì�Œì—� 나올 블럭 보여주는 기능            완성
    • 랭킹기능
    • 난ì�´ë�„ ì¦�가            완성
    • 2ì�¸í”Œë ˆì�´
    • 시작시 ë§µì�„ ì„ íƒ� 가능하게
    • 절차지향ì �으로 먼저 짜본다
    • ê°�체지향ì �으로 짜보고 고친다. 확장성까지 ê³ ë ¤ë�œ ë§�ë�”한 형태가 나올때까지.....

  • 보니까 06ë…„ë�„ì—� 06학번ì�„ 대ìƒ�으로 테트리스 만들기 ë�¼ëŠ” 활ë�™ë�„ 있었고 10ë…„ ë�°ë¸”스캠프ì—�서ë�„ 테트리스가 언급ë�˜ì—ˆë�˜ê²ƒ ê°™ì�€ë�° 아예 새싹êµ�실할때 테트리스를 í�¬í•¨í•´ë³´ëŠ”ê±´ 어떨까. 기본ì �ì�¸ 블럭낙하ì—� 줄ì�´ 없어지고 ì �수가 표시ë�˜ëŠ” ì •ë�„ë�¼ë©´ 잘ë�˜ëŠ” 새싹반ì�€ 완성ë�„ 가능하지 않ì�„까?
    • 새싹ì�´ 1학기 ë��날때 ë��나는ë�°, 그때는 시험기간ì�´ì§€. 보통 테트리스를 만든다면 여름방학ì�´ì§€ 싶다 ã…‹ã…‹ -김태진

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:02
Processing time 0.0079 sec