Exemple #1
0
int main(int argn, char** argv){
        char user[10];
	if(argn != 2){
		printf("Usage: %s \"YOUR NAME\"\n",argv[0]);
		return 1;
	}
        strcpy(user,argv[1]);
        if((!strcmp("user",user))&&(strlen(user)>8))
		winner();
	else
		looser();
	return 0;
}
void main(void) {


	uint8_t genx = 0;
	uint8_t geny = 0;
	int8_t posx = 0;
	int8_t posy = 0;
	uint8_t bumpx[ANZ + 1];
	uint8_t bumpy[ANZ + 1];
	uint8_t i = 0;
	uint8_t mscount = 0;
	int8_t randx = 0;
	int8_t randy = 0;
	//char *schtring = "hello world";
	PDR00 = 0xff;
	DDR00 = 0xff; // Set Port00 as output (right 7Segment display)
	PDR09 = 0xff;
	DDR09 = 0xff; // Set Port09 as output (left 7Segment display)


	PDR09 = DEC7SEG[1];
	PDR00 = DEC7SEG[1];

	lcd_init();
	adc_init();
	lcd_clear(0);
	random_init();

	for(i = 0; i < ANZ + 1; i++)
	{
		do
		{
			genx = (random() % (128 / bumpsize)) * bumpsize;
			geny = (random() % (64 / bumpsize)) * bumpsize;
		} while((genx == 0 && geny == 0) || bumpcollision(bumpx, bumpy, i, genx, geny));
		bumpx[i] = genx;
		bumpy[i] = geny;
	}
	for(;;)
	{
		for(i = 0; i < ANZ; i++)
		{
			lcd_drawRect(bumpx[i], bumpy[i], bumpsize, bumpsize, 1, 1);
		}
		lcd_drawRect(bumpx[ANZ], bumpy[ANZ], size + 2, size + 2, 0, 1);
		lcd_drawRect(posx, posy, size, size, 0, 1);
		posx = minmax((int) (((float) -(adc_getValue(1) - 255) / (float) 255) * (128 - size)) + randx, 128);
		posy = minmax((int) (((float) -(adc_getValue(2) - 255) / (float) 255) * (64 - size)) + randy, 64);
		lcd_drawRect(posx, posy, size, size, 1, 1);
		if(checkCollision(posx, posy) == 1)
			looser();
		if(posx == bumpx[ANZ] + 1 && posy == bumpy[ANZ] + 1)
			winner();
		lcd_drawRect(bumpx[ANZ], bumpy[ANZ], size + 2, size + 2, 1, 1);
		lcd_drawRect(bumpx[ANZ] + 1, bumpy[ANZ] + 1, size, size, 0, 1);
		mscount++;
		if(mscount == 50)
		{
			mscount = 0;
			if(random() % 2)
			{
				randx = minmax(randx + posorneg(), 5 + size);
			}
			else
			{
				randy = minmax(randy + posorneg(), 5 + size);

			}
		}
		delay_ms(10);
	}
}