/* * draws the snake and food to the screen */ void Window::draw_screen() { erase(); draw_game_frame(); draw_snake(); draw_food(); refresh(); }
int MlxLib::redraw(const std::list<Position>& pos, const Position& food) { clear_game(); draw_snake(pos); draw_food(food); repaint(); return (LIB_SUCCESS); }
int snake_move(SNAKE *snake, int *food) { // 丢掉最后一节身体 pop_last_body(snake); // 在头部加个新身体 new_body_affer_head(snake); // 脑袋前进一下 move_head(snake); mvaddch(snake->y, snake->x, snake->head_chr); // 吃豆儿 if (snake->y == food[1] && snake->x == food[0]) { add_last_body(snake); food = random_food(snake); draw_food(food); if (speed - speed_up > speed_max) { speed = speed - speed_up; } } // 死蛇 if ((judge_dead(snake)) == 1) { snake->head_chr = 'X'; snake->body_chr = 'x'; init_pair(3, COLOR_RED, COLOR_BLACK); attron(COLOR_PAIR(3)); draw_whole_snake(snake); char dead_str[] = "OH, THE POOR LITTLE SNAKE"; mvprintw(LINES/2-1, COLS/2-sizeof(dead_str)/2-1, dead_str ); refresh(); attroff(COLOR_PAIR(3)); return 1; } mvprintw(0, 0, "snake head at: %d, %d; snake length: %d; food at: %d, %d; ", snake->x, snake->y, snake->length, food[0], food[1]); refresh(); return 0; }
void render() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 0.0f, 0.0f); calculate_field_size(); draw_food(); draw_ants(); if (grid) draw_grid(); calculate_fps(); if (debug) { draw_debug(); } glutSwapBuffers(); }
int main() { INITSCR(); INITINFOWIN(); INITGAMEWIN(); food Tfood=creat_food(); snake Tsnake = init_snake(); //创建贪吃蛇 draw_food(Tfood,Tsnake); /* 开始游戏 */ while(start_game(Tsnake,Tfood)>0) ; getch(); destory_snake(Tsnake); endwin(); return 0; }
void check_draw(char *tmp) { if (my_strcmp(tmp, "linemate") == 0) draw_stone(1); if (my_strcmp(tmp, "deraumere") == 0) draw_stone(2); if (my_strcmp(tmp, "sibur") == 0) draw_stone(3); if (my_strcmp(tmp, "mendiane") == 0) draw_stone(4); if (my_strcmp(tmp, "phiras") == 0) draw_stone(5); if (my_strcmp(tmp, "thystame") == 0) draw_stone(6); if (my_strcmp(tmp, "nourriture") == 0) draw_food(); if (my_strcmp(tmp, "player") == 0) draw_player(); }
int main() { self[0] = 0b00000100; self[1] = 0b00000100; self[2] = 0b00000011; self[3] = 0b00000100; self[4] = 0b00000010; self[5] = 0b00000100; /* self[6] = 0b00000001; self[7] = 0b00000100; self[8] = 0b00000000; self[9] = 0b00000100; self[10] = 0b00000000; self[11] = 0b00000101; self[12] = 0b00000000; self[13] = 0b00000110; */ generate_food(); while(1) { check_control(); move(); update_fb(); draw_food(); draw(); delay(); undraw_food(); draw(); delay(); } return 0; }
void redraw(struct snake * s, struct point f) { clear(); draw_border(); draw_food(f); draw_snake(s); }
/** * Hauptfunktion. Wird als erstes aufgerufen. * Struktogramm: * <img src="../../Spielablauf_Struktogramm.png"> * @return gibt 0 zurück */ int main() { init_graphics(); //Function um Grafik Lib zu initialisieren, gibt evtl später mal Errorcode zurück... init_counter(); /** * \todo UART Interrupts funktionieren noch nicht. * Als Workaround wird nun alle 1ms im Timer-Interrupt-Handler die UART1 Schnittstelle gepollt. <br> */ init_uart(); init_genrand(GUI_GetTime()); while(1) { init_game(); init_level(); // warten bis eine taste gedrückt wird, welche den initialen Zustand von snake_direction ändert snake_direction = '?'; while(snake_direction == '?'); // jetzt food zeichnen food = randomize_food(); draw_food(food); enable_interrupts(); do { switch(step_forward(check_initial_state())) { case COLLISION: game_over = 1; disable_interrupts(); //write_byte(score); FFLCR &= ~(1<<7); // DLAB löschen für zugriff while (!(FFLSR & (1<<5))); // Solange UART Busy FFTHR = score; enable_interrupts(); break; case FOOD: score++; if(size >= 15) { // wenn Länge = 15: Level-Up score += 10; level++; init_level(); } food = randomize_food(); disable_interrupts(); draw_food(food); enable_interrupts(); break; case NOTHING: break; } delay(delay_time); } while(game_over != 1); } return 0; }
int main(int argc, char *argv[]) { int ch; initscr(); start_color(); cbreak(); keypad(stdscr, TRUE); noecho(); curs_set(0); init_pair(1, COLOR_CYAN, COLOR_BLACK); attron(COLOR_PAIR(1)); //画边 mvaddch(1, 0, '+'); mvaddch(1, COLS-1, '+'); mvaddch(LINES-1, COLS-1, '+'); mvaddch(LINES-1, 0, '+'); mvhline(1, 1, '-', COLS-1-1); mvhline(LINES-1, 1, '-', COLS-1-1); mvvline(2, 0, '|', LINES-2-1); mvvline(2, COLS-1, '|', LINES-2-1); refresh(); attroff(COLOR_PAIR(1)); // 来条蛇 SNAKE snake; init_snake(&snake); draw_whole_snake(&snake); // 初始豆儿 int *food; food = random_food(&snake); //mvaddch(food[1], food[0], '*'); draw_food(food); int d; int i; now_time=0; while (1) { if(ioctl(0,FIONREAD,&i)<0) { printf("ioctl failed, error=%d\n ",errno); break; } if(!i) // 小蛇自动跑部分 { usleep(time_rate); now_time = now_time + time_rate; if (!(now_time < speed)) { now_time = 0; if (snake_move(&snake, food)) break; } continue; } now_time = 0; ch = getch(); if (ch < 258 || ch > 261) continue; if ( ch+snake.d != KEY_LEFT+KEY_UP ) { d = ch - snake.d; if ( d == 1 || d == -1) continue; } snake.d = ch; if (snake_move(&snake, food)) break; } getch(); endwin(); return 0; }
int game ( int *c ) { char title[100]; int **body; int i = 0; int dir = *c; int state = 0; snakesize = 7; food_x = 0; food_y = 0; points = 0; *c = KEY_RIGHT; clear(); body = (int **) malloc(sizeof(int *)*snakesize); for ( i = 0; i != snakesize; i++ ) { body[i] = (int *) malloc(sizeof(int)*2); } attron(COLOR_PAIR(PANEL)); for ( i = 0; i != COLS; i++ ) { mvaddch(0, i, ' '); } sprintf(title," ..:: Snakie v 1.0 ::.. "); mvaddstr(0, COLS/2-strlen(title)/2, title); attroff(COLOR_PAIR(PANEL)); refresh(); for ( i = 0; i!= snakesize; i++ ) { body[i][x] = (COLS/2)-i; body[i][y] = (LINES/2); } pos_food(body); draw_food(); draw_snake(body); while ( 1 ) { clear_snake(body); switch(*c) { case KEY_UP: dir = 'U'; break; case KEY_DOWN: dir = 'D'; break; case KEY_RIGHT: dir = 'R'; break; case KEY_LEFT: dir = 'L'; break; } if ( *c == 'q' ) { if ( confirm() == 1 ) { state = 0; break; } } move_snake(dir, &body); if ( (state = check_position(body)) != 0 ) { dead = 1; break; } eat_food(&body); draw_food(); draw_info(); draw_snake(body); usleep( dir == 'L' || dir == 'R' ? speed*0.75 : speed ); } int ret = quit(&body, state); return ret; }