Example #1
0
void initialize_pong_game(){
	unsigned i;
	clear_screen();
	for (i=0;i<ROW_SIZE;i++){
		 video_buffer[i+TOP_BORDER*ROW_SIZE]=0xff;
		 video_buffer[i+ROW_SIZE*BOTTOM_BORDER]=0xff;
	}
	for (i=TOP_BORDER+1;i<(BOTTOM_BORDER-1);i++){
		 if (i&1) video_buffer[ROW_SIZE*i+3]=1u;
	}
	running=0;
	score[LEFT_PLAYER]=0;
	score[RIGHT_PLAYER]=0;
	server=winner;
	winner=NO_WINNER;
	paddle[LEFT_PLAYER]=read_pot(LEFT_PLAYER)+TOP_BORDER;
	paddle[RIGHT_PLAYER]=read_pot(RIGHT_PLAYER)+TOP_BORDER;
	if (server==LEFT_PLAYER){
		ball.x=LEFT_BORDER+1;
		ball.y=paddle[LEFT_PLAYER]+1;
	}else{
		ball.x=RIGHT_BORDER-1;
		ball.y=paddle[RIGHT_PLAYER]+1;
	}
	ball.dx=0;
	ball.dy=0;
	write_score(LEFT_PLAYER,score[LEFT_PLAYER]);
	write_score(RIGHT_PLAYER,score[RIGHT_PLAYER]);
	draw_paddle(LEFT_PLAYER,WHITE);
	draw_paddle(RIGHT_PLAYER,WHITE);
	plot(ball.x,ball.y,WHITE);
	srand(frame_cntr);
}//f()
Example #2
0
// attend que le joueur déplace sa raquette
void wait_service(){
	int y;
	paddle[server]=read_pot(server)+TOP_BORDER;
	while (1){
		y=read_pot(server)+TOP_BORDER;
		if (y<paddle[server]-1 || y>paddle[server]+1) break;
		move_paddle(1-server);// l'autre joueur peut se déplacer en attendant le service.
	}
	ball.dy=rand()%3 - 1;
	if (server==LEFT_PLAYER){
		ball.dx=1;
	}else{
		ball.dx=-1;
	}
	ball.skip=rand()%2;
}//f()
Example #3
0
// déplace la raquette du joueur
void move_paddle(int player){
	int new_y;
	new_y=read_pot(player)+TOP_BORDER;
	if (new_y!=paddle[player]){
		draw_paddle(player, HIDE);
		paddle[player]=new_y;
		draw_paddle(player,SHOW);
	}
}//f()
Example #4
0
uint8_t read_mode(void)
{
    uint8_t pot_reading = read_pot();
    if (pot_reading > ((3 * MAX_POT_VALUE) / 4))
        return MODE_NORMAL;
    if (pot_reading > (MAX_POT_VALUE / 2))
        return MODE_SILENT;
    if (pot_reading > (MAX_POT_VALUE / 4))
        return MODE_HARD;
    return MODE_FREE_PLAY;
}