【发布时间】:2014-07-09 08:25:20
【问题描述】:
我正在制作一个迷宫游戏,其中人通过我创建的 printf'ed 迷宫移动光标。迷宫由许多充当墙壁的“F”字符组成。有什么办法可以告诉我程序,如果光标要移动的地方有一个“F”字符,请执行以下操作,例如打印一条消息。我写了下面的程序,当光标移到字符“F”上时应该显示一条消息。当我编译它时,它给我一个错误说'ncurses.c:24:14:警告:逗号表达式的左操作数无效[-Wunused-value]'。
这是整个程序的关注部分,可以在下面找到
if(m == 's')
{
if((oldy+1,x)=='F')
{
mvwprintw(win, 0,0,"Sorry, you cant move there.");
wrefresh(win);
}
else
{
move((y= oldy+1),x);
refresh();
oldy = y;
}
}
如果您想看的话,这就是完整的程序
#include <ncurses.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int y = 0;
int x = 0;
int oldy = 0;
int oldx = 0;
char m = 'l';
initscr();
WINDOW* win;
win = newwin(1, 40, 40 ,0);
refresh();
mvwprintw(win, 0,0,"First line");
wrefresh(win);
while(m != 'q')
{
m=getch();
if(m == 's')
{
if((oldy+1,x)=='F')
{
mvwprintw(win, 0,0,"Sorry, you cant move there.");
wrefresh(win);
}
else
{
move((y= oldy+1),x);
refresh();
oldy = y;
}
}
else if(m == 'd')
{
move(y,(x=oldx+1));
refresh();
oldx = x;
}
else if(m == 'a')
{
move(y,(x=oldx-1));
refresh();
oldx = x;
}
else if(m == 'w')
{
move((y= oldy-1),x);
refresh();
oldy = y;
}
else
m = 'q';
}
delwin(win);
endwin();
return 0;
}
【问题讨论】:
-
开启警告并注意它们