괜찮은 C++ 프로젝트 주제가 뭐가 있을까요??

jihwang의 이미지

저는 컴퓨터공학과 3학년이고, 현재 동기친구들과 C++ 스터디를 하고 있는데요.
그냥 막연히 '책 하나 끝내서 개념 한 번 훑자~'식으로 열혈 C++ 사서 진도 빼고 있는데
사실 아직까지는 여럿이서 하는 스터디의 이점을 잘 못느끼고 있습니다.

그래서 목표 프로젝트같은걸 잡으면 조금 벅차더라도 재미도 있고, 끝냈을 때 보람도 있지 않을까 싶어서
괜찮은 주제를 찾아보고 있는데요.

ACM-ICPC에 문제들이 많다길래 찾아보니까
최대한 빠른 시간에 해결할 수 있다면 그다지 코딩도 이쁘게 할 필요도 없고, 클래스 개념도 쓰이지 않는 것 같아서(C로도 전부 해결가능한 문제들이더라구요)
이번 C++ 프로젝트 주제로는 별로 적합하지 않은 것 같습니다.

선배한테 물어보니까 테트리스를 만들어보라는데..
괜히 콘솔창에다가 그래픽 요소 우겨넣을라고 clrscr() 엄청 써댈까봐 그것도 별로 맘에 드는 주제는 아닌 것 같아서요..

혹시 이런 프로젝트 주제로 삼을 만한 문제은행(?) 비슷한 곳 아시는 분이 있나요??
혹은 여기 포럼분들이 아시거나 해보셨던 적당한 프로젝트 주제가 혹시 있나요?

oosap의 이미지

열혈C++ 보셨으면 그 다음에 디자인패턴 보시면 되겠네요.
http://headfirstlabs.com/books/hfdp/

이 책은 자바 예제로 쓰여졌는데 그 예제를 C++ 로 작성해서 오픈소스로 공개한 사람이 있습니다.
http://hfdp-cpp.sourceforge.net/

디자인 패턴 공부하시고 여력이 되시면 이 오픈소스를 나름대로 발전시켜서 공개해보시는 것도 좋지 않을까요?

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

나그네나그네의 이미지

어떤 걸 구현하든 객체지향적인 방법으로 구현하는 게 중요한 것이 아닐까요.

계산기를 만들어도 객체지향적으로 식, 상수, 함수 등을 객체로 표현해서 실제 계산시엔 어떤 종류의 식이든 .calc(); 함수 하나로 답을 구하게 만들 수도 있는 것이고

콘솔 창에서 테트리스 구현하는 것도 객체지향적으로 Game, Board, Block 클래스 등을 정의한 다음에 블록 회전, 줄 없애기, 게임 저장 등을 구현할 수도 있는 것이구요..(clrscr와 같은 함수들은 그 안에 포장해 넣어야죠)

아니면 아예 특정 라이브러리(이미지 효과 내는 라이브러리, 물리 엔진 라이브러리, 스크립트 언어 실행 라이브러리 등등..)을 하나 만들어 보는 것도 괜찮을 거 같구요.

왠지 실제 목표가 객체지향언어를 배우는 김에 겉보기에 그럴듯한 프로그램도 하나 만들어보고 싶다 이신것 같은데.. 그렇다면 Qt를 배우시는 것을 추천해드립니다. Qt로 만든 윈도우 프로그램은 대단히 코드가 깔끔하고 객체 지향적입니다.

cless11의 이미지

저도 아기다리 님의 의견에 동의합니다.

똑같은 테트리스나 체스를 만들더라도, 구현 방식은 수백, 수천만가지가 될 것입니다.

테트리스를 객체지향적으로 짜기엔 적합하지 않은것 같다...는 말은 아직 객체지향을 이해하지 못하신 것이 아닌가 하는 생각이 듭니다.

객체지향이라는 개념은 굉장히 추상화된 개념이라 굉장히 많은 문제들에 적용할 수 있습니다.

심지어 같은 객체지향 프로그래밍 언어라도 매우 다른 특성들을 가지고 있죠. C++, Java, Smalltalk, Python 등... 다 다릅니다.

저도 대학교 3학년때 C++로 프로젝트를 진행한 적이 있는데요, 그때 제가 만든 것은 체스였습니다.

개인적으로 보드게임에 관심이 있어서, 만들어보고 싶었습니다. 물론 C가 아니라 C++이니까 객체지향적으로 만들기 위해 노력했죠.

글쓴이께서 말씀하신 그래픽적 요소들은, Java Swing을 사용해서 구현하고, 코어 로직은 C++로 짜서 둘을 JNI로 묶었습니다.

잡설이 길었는데... 객체지향 프로그래밍 프로젝트를 원하신다면, 어떤 주제든 가능합니다.

jihwang의 이미지

아직 공부가 덜 되어서 객체지향이라는 단어에 대해 오해를 한 것 같네요 ^^ㅋㅋㅋ

모두들 조언 감사드립니다!

simminjo의 이미지

테트리스가 쉬울까요?

전 처음 테트리스를 만들 당시( 대학교 2학년 ) 정말 많은걸 깨달았던 기억이 납니다.
별거 아니라고 생각했던 게임이 이렇게나 복잡하다니...라구요..

테트리스는 프로그래밍의 테크닉을 다지기엔 정말 좋은 주제라고 생각합니다...정말루요..

---------------------------------------------------------------
Opensource에 기여하는 것이 꿈입니다.
내가 만든 코드를 모두가 사용할 때 까지~