Command 콘솔창에서 그래픽을 구현하려면?

sucho의 이미지

c언어 공부중인데요..

command콘솔창에서 그래픽을 구현하려면 어떻게 해야 하나요?

api를 불러다 쓰는 방법이 최선인가요??

아니면 옛날 터보씨에서 쓰던 라이브러리와 흡사한 적당하고 가벼운 라이브러리 없나요?

가벼운 프로젝트를 하는데... gui쓰면 욕먹을 꺼 같고..

콘솔창에서 적당히 그래픽 좀 메뉴 구현할만한 라이브러리 있으면 알려주세요..

컬러 캐릭터 어느정도 되고, 라인정도 그릴수 있는 거면 좋겠네요..

현재 vs2005로 하고 있는데... 영..

devcpp깔고 패키지 업데이트 하면 괜찮은 거 있긴 하던데... gg_tk? <- 이거는 gui로 넘어가는 거 같고

sdl <-이거는 완전 게임용 같고... 적당한 거 없을까요??

ddoman의 이미지

allegro - http://www.talula.demon.co.uk/allegro/

It is a game library, but still very useful for small programs as well.

coderheart의 이미지

콘솔 그래픽이라 말하시면, ASCII 형식의 그래픽을 말씀하시는건가요?
만약 아니라면 질문이 다소 틀린 것 같네요 ^^;
일단, ASCII 그래픽을 가정하고 말씀 드리겠습니다.
콘솔은 애초에 ASCII 형식의 그래픽을 지원합니다.
Windows API 차원에서 콘솔에서 사용할 수 있는 함수를 지원합니다.
하지만, 불편하기 때문에 curses(윈도우는 ncurses) 와 같은 라이브러리를 사용합니다.
이 라이브러리는 역사가 꽤 되었는데, 과거에 COBOL 시절에 콘솔 어플리케이션을 개발할 때
CUI(CLI 아닌; Console User Interface)을 구현할 때 사용하였다고 합니다.
참고로 외부 라이브러리이므로, 따로 설치하셔야 합니다.

그리고, 일단 윈도우 그래픽을 말씀하신 거라면
WINAPI GDI 나 WINAPI GDI+ 을 사용하시는 것이 나을 것 같습니다.
GDI 은 WINAPI 책 보면 쉽게 알 수 있고,
GDI+ 은 몇년 전 나온 것인데, 최근 개발툴에서 기본적으로 사용할 수 있고,
GDI 보다 사용하기 쉽게 클래스화된 그래픽 라이브러리입니다.
표준 라이브러리는 아니지만, VC++ 깔면 기본적으로 사용할 수 있습니다.

윗 분이 올려주신 ALLEGRO 은 SDL 보다 더 게임 용도네요. ^^;
SDL 도 나쁘지 않습니다 ^^

---

참고로 왜 콘솔 그래픽이라는 (ASCII 그래픽을 말씀하신 게 아니라면) 말이 틀렸냐면
도스 시절에는 콘솔모드, 그래픽모드를 눈으로 확인할 수 없었기에(모든 그래픽모드가 전체화면모드니)
마치 콘솔모드에서 그래픽이 구현되는 것 처럼 보였을 것입니다.
하지만, 윈도우는 GUI 기반 OS 이기 때문에, 콘솔창(CMD 에 의한)에서는 그래픽을 지원하지 않습니다.
다만, DOS 에뮬레이션 모드에서는 DOS 그래픽이 콘솔창에서 띄어지는 것 처럼 보일 수는 있겠네요. (아마 Vista 부터는 DOS 시절 그래픽 에뮬레이션이 지원안되는듯)

sucho의 이미지

dos그래픽이 콘솔창에 띄어지는 것을 말한 것이네요.
예..c언어 공부중에 윈도우에서 주어진 것으로 ( 포함된 라이브러리로),gui 넘어가지 않는 선에서 프로젝트 하나 해볼라는 차에 질문 했었네요..

allegro, sdㅣ은 아쉽게도 한글이 지원이 안되는 것 같은데요..

그래서 winapi에서 컬러만 불러다 쓸수 있을 정도 선에 마무리 했네요..

궁금한 것은 ncurses는 어디서 구하는 거죠? 리눅스에서 curses를 제가 보긴 한 것 같은데..

ncurses 라이브러리는 어디서 구해서 설치하는 것인지 궁금하네요.

hiseob의 이미지

jos77의 이미지

고딩 때 친구 하나가 c 로 게임 만든 적 있습니다.
뭐더라... 암튼 put(x,y) 같은 기본 함수써서...
당시 Hercules 였나 EGA 였나...
암튼 화면 해상도 640x480 에 도트 직접 뿌려서 만드는게 가능합니다...
이건 뭐 라이브러리 수준도 아니고 조잡하긴 한데
unix 나 linux 라이브러리같은 다른 라이브러리 없이 가능은 했었던 걸로 기억합니다.

-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.