コード例 #1
0
ファイル: aux2.c プロジェクト: anylonen/omega
/* hooray */
void p_win(void)
{
  morewait();
  clearmsg();
  print1("You won!");
  morewait();
  display_win();
  endgraf();
  exit(0);
}
コード例 #2
0
ファイル: main.c プロジェクト: nicball/playground
void gameloop(int nrow, int ncol) {
    timeout(1000 / SAMPLING_RATE);
    const clock_t checkpoint = (clock_t) (CLOCKS_PER_SEC/GAME_SPEED);
    clock_t last_update = clock();
    struct snake * snake = new_snake(ncol/2, nrow/2);
    struct point food_pos = generate_food(nrow, ncol, snake);
    redraw(snake, food_pos);
    for (;;) {
        struct point tail_pos = snake->tail->pos;
        int ch;
        if ((ch = getch()) != ERR) {
            switch (ch) {
            case KEY_UP:
            case KEY_DOWN:
            case KEY_LEFT:
            case KEY_RIGHT:
                if (to_dir(ch) == reverse_dir(snake->heading)) {
                    break;
                }
                else {
                    snake->heading = to_dir(ch);
                    step_snake(snake);
                    tail_pos = snake->tail->pos;
                    redraw(snake, food_pos);
                }
                break;
            default:
                break;
            }
        }
        if (clock() - last_update >= checkpoint) {
            step_snake(snake);
            tail_pos = snake->tail->pos;
            redraw(snake, food_pos);
            last_update = clock();
        }
        if (point_equal(snake->head->pos, food_pos)) {
            grow_snake(snake, tail_pos);
            food_pos = generate_food(nrow, ncol, snake);
            redraw(snake, food_pos);
        }
        if (out_of_border(snake->head->pos, nrow, ncol)
                || eat_self(snake)) {
            display_lose(nrow, ncol);
            return;
        }
        if (snake->length == (nrow-2)*(ncol-2)) {
            display_win(nrow, ncol);
            return;
        }
    }
}
コード例 #3
0
ファイル: main.c プロジェクト: yaomoon/GT2440
int main(int argc, const char *argv[])
{
    int x_max,y_max;
    
    init_curses(); 
    draw_bottom();

#ifdef debug
    fprintf(moon_log,"hello yaomoon\n");
#endif

    fill_state();
    display_win(&state);
    fill_error();
    display_win(&error);

    //wprintw(state.win,"%s  %s\n","name","yaomoon");
    //wrefresh(state.win);
    
    while(1);
    endwin();
    return 0;
}
コード例 #4
0
ファイル: main.c プロジェクト: yaomoon/GT2440
void draw_bottom(void)
{
    int y_max,x_max;

    getmaxyx(stdscr, y_max,x_max);

    //场景窗口
    Create_win(&scene[0],y_max/3*2,x_max/3*2,1,0);
    //scene[0].win = subwin(stdscr,y_max/3*2,x_max/3*2,1,0);

    // 框条窗口
    Create_win(&bar[0],1,x_max/3*2,0,0);
    //bar[0].win = subwin(stdscr,1,x_max/3*2,0,0);
    Create_win(&bar[1],1,0,y_max/3*2+1,0);
   //bar[1].win = subwin(stdscr,1,0,y_max/3*2+1,0);
    Create_win(&bar[2], y_max/3*2+1,2,0,x_max/3*2);
    //bar[2].win = subwin(stdscr,y_max/3*2+1,2,0,x_max/3*2);

    //状态窗口 
    Create_win(&state,y_max/3*2+1,x_max/3-1,0,x_max/3*2+1);
    //state.win = newwin(y_max/3*2+1,x_max/3-1,0,x_max/3*2+1);
    //error.win = newwin(y_max/3-1,0,y_max/3*2+2,0);
    Create_win(&error,y_max/3-1,0,y_max/3*2+2,0);

    wbkgd(scene[0].win,COLOR_PAIR(PANEL));
    wbkgd(bar[0].win,COLOR_PAIR(BAR));
    wbkgd(bar[1].win,COLOR_PAIR(BAR));
    wbkgd(bar[2].win,COLOR_PAIR(BAR));
    wbkgd(state.win,COLOR_PAIR(PANEL));
    wbkgd(error.win,COLOR_PAIR(PANEL));

    display_win(&scene[0]);
    display_win(&bar[0]);
    display_win(&bar[1]);
    display_win(&bar[2]);
    display_win(&state);
    display_win(&error);

}