간단한 리눅스 콘솔용 게임을 c로 만드려합니다

shin7의 이미지

간단한 아주 간단한 게임입니다

일명 술래잡기 게임인데요
일단 2차원 배열로 맵을

 
#############
#           #
#     @     #
#           #
#           #
#############

이렇게 만들고 저 가운데서 @가 움직이게끔 만드려고 합니다
캐릭터는 그냥 문자 @ 로 했습니다.

일단 저맵을 화면에 출력하고
@가 있는 위치를 전역변수 nx,ny 에 담아놓고
키보드에 up,left,down,right 를 누를때마다 저 값을 +1,-1 시키면서 @를 움직이게 하고픈데

문제가 키보드를 누르게되면
@는 움직이지 않고
화면상에 오른쪽 버튼을 누르면 ^[[C 가 출력되고 위버튼을 누르면 ^[[A 가 출력되버리네요 다른것도 마찬가지입니다..

참고로
LEFT 75
RIGHT 77
UP 72
DOWN 80 이렇게 했는데 이게 문제인가요?

소스는
http://winapi.co.kr/clec/cpp1/9-4-1.htm 여기있는 소스를 참고하였습니다

여기사이트에 소스는 윈도우에서 turboc.h 헤더파일을 사용해서 만든거라
제가 리눅스에서 돌아가게끔 약간 수정을 해서 사용하고 있습니다.

답변 부탁드릴게요
리눅스 콘솔게임을 만들때 주의점같은것도 알려주시면 감사하겠습니다.

ironiris의 이미지

키가 입력되면 출력되는 코드를 만들어서 키보드 입력값을 알아내시면 될듯합니다. :)

Hyun의 이미지

tcsetattr 등의 함수로 현재 터미널에 대해 echo 속성을 없어줘야 합니다. 또한 키보드 하나를 눌렀을 때 바로바로 소프트웨어에서 값을 알아오려면 non-canonical 모드로 콘솔을 바꿔야 합니다.
경험상 관련프로그램을 짜보지 않은상태에서 처음 접하면 많이 생소한 개념들입니다.. 어렵죠...
관련 함수들은 tcgetattr, tcsetattr등일테니... man tcgetattr 하셔서 설명을 읽어보세요...

dragonkun의 이미지

ncurses 라이브러리를 이용하신다면...

keypad(stdscr, TRUE);

와 같은 함수를 써 줘야 keypad 및 BS, insert, delete, ... 등등을 getch 로 캡춰하실 수 있습니다.
ncurses 라이브러리에 대한 레퍼런스를 찾아 읽어보셔면 도움이 될 겁니다.
----------------------
Emerging the World!

Emerging the World!

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.