[ c o d e ]
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
//nome_var1 è sempre riferito agli oggetti a sinistra
//nome_var2 è sempre riferito agli oggetti a destra
void main()
{
int x_palla,y_palla,x_barra1,y_barra1,x_barra2,y_barra 2,x_corn,y_corn,somma;
int x_palla2,y_palla2,punteggio1=0,punteggio2=0,speed, y_b1[3],y_b2[3],i;
char mov1; //memorizza i caratteri premuti
x_barra1=1;
//a seconda del n casuale calcolato in seguito,
//questo valore potrebbe non essere usato
y_barra1=11;
x_barra2=80;
//a seconda del n casuale calcolato in seguito,
//questo valore potrebbe non essere usato
y_barra2=11;
//informazioni iniziali per l'utilizzo del programma
printf("Comandi: BARRA DESTRA SU: k\n");
printf(" BARRA DESTRA GIU: m\n");
printf(" BARRA SINISTRA SU: a\n");
printf(" BARRA SINISTRA GIU: z\n\n");
printf("IMPORTANTE PER EVITARE PROBLEMI!!! ");
printf("NON MUOVERE LA BARRETTA OPPOSTA AL VERSO DEL MOTO DELLA PALLINA.\n");
printf("\nInserire velocita' movimento pallina (millisecondi): ");
scanf("%d",&speed);
printf("\nSe in qualsiasi momento vuoi uscire dal programma premi ESC.");
printf("\n\nPremi un tasto per cominciare...");
getch();
clrscr();
//inizio parte principale
inizio:
//stampa cornicie
y_corn=1;
x_corn=0;
for(i=0;i<=79;i++)
{
x_corn=x_corn++;
gotoxy(x_corn,y_corn);
printf("#");
}
y_corn=24;
x_corn=0;
for(i=0;i<=79;i++)
{
x_corn=x_corn++;
gotoxy(x_corn,y_corn);
printf("#");
}
//fine stampa cornicie
//stabilisce inizialmente le posizioni delle barre e la direzione della palla
//in tutta questa prima parte i è usata come variabile di comodo
randomize();
i=random(21)+2;
if(i%2==0)
{
if(random(2)==0)
{
somma=2;
y_barra2=i;
x_palla=x_barra2;
y_palla=y_barra2+2;
}
else
{
somma=3;
y_barra2=i;
x_palla=x_barra2;
y_palla=y_barra2;
}
}
else
{
if(random(2)==0)
{
somma=1;
y_barra1=i;
x_palla=x_barra1;
y_palla=y_barra1+2;
}
else
{
somma=0;
y_barra1=i;
x_palla=x_barra1;
y_palla=y_barra1;
}
}
gotoxy(25,25);
printf("Giocatore 1: %d || Giocatore 2: %d",punteggio1,punteggio2);
//FINE "PRIMA PARTE"
do
{
for(i=0;i<=2;i++)
{
gotoxy(x_barra1,y_barra1+i);
printf("%c",219);
y_b1[i]=y_barra1+i;
gotoxy(x_barra2,y_barra2+i);
printf("%c",219);
y_b2[i]=y_barra2+i;
}
do{
x_palla2=x_palla;
y_palla2=y_palla;
switch(somma)
{
case 0: {
x_palla=x_palla++;
y_palla=y_palla++;
break;
}
case 1: {
x_palla=x_palla+1;
y_palla=y_palla-1;
break;
}
case 2: {
x_palla=x_palla-1;
y_palla=y_palla-1;
break;
}
case 3: {
x_palla=x_palla-1;
y_palla=y_palla+1;
break;
}
case 4: {
x_palla=x_palla+1;
y_palla=y_palla-2;
break;
}
case 5: {
x_palla=x_palla-1;
y_palla=y_palla+2;
break;
}
case 6: {
x_palla=x_palla+1;
y_palla=y_palla+2;
break;
}
case 7: {
x_palla=x_palla-1;
y_palla=y_palla-2;
break;
}
}
if((y_palla>=24)&&(somma==0||somma==1||somma==2||s omma==3))
{
y_palla=y_palla-2;
if(x_palla2>x_palla) somma=2;
else somma=1;
}
if((y_palla>=24)&&(somma==4||somma==5||somma==6||s omma==7))
{
y_palla=y_palla-3;
if(x_palla2>x_palla) somma=7;
else somma=4;
}
if((y_palla<=1)&&(somma==0||somma==1||somma==2||so mma==3))
{
y_palla=y_palla+2;
if(x_palla2>x_palla) somma=3;
else somma=0;
}
if((y_palla<=1)&&(somma==4||somma==5||somma==6||so mma==7))
{
y_palla=y_palla+3;
if(x_palla2>x_palla) somma=5;
else somma=6;
}
for(i=0;i<=2;i++)
{
if((x_palla==x_barra1)&&(y_palla2==y_b1[i]))
{
switch(i)
{
case 0: {
x_palla=x_palla+3;
if(y_palla2>y_palla) somma=4;
else somma=6;
break;
}
case 1: {
x_palla=x_palla+2;
if(y_palla2>y_palla) somma=1;
else somma=0;
break;
}
case 2: {
x_palla=x_palla+3;
if(y_palla2>y_palla) somma=4;
else somma=6;
break;
}
}
}
else
{
if((x_palla==x_barra2)&&(y_palla2==y_b2[i]))
{
switch(i)
{
case 0: {
x_palla=x_palla-3;
if(y_palla2>y_palla) somma=7;
else somma=5;
break;
}
case 1: {
x_palla=x_palla-2;
if(y_palla2>y_palla) somma=2;
else somma=3;
break;
}
case 2: {
x_palla=x_palla-3;
if(y_palla2>y_palla) somma=7;
else somma=5;
break;
}
}
}
}
}
if(x_palla>=x_barra2)
{
punteggio1=punteggio1++;
gotoxy(25,25);
printf("Giocatore 1: %d || Giocatore 2: %d",punteggio1,punteggio2);
gotoxy(27,11);
printf("PUNTEGGIO AGGIORNATO!!!\n");
gotoxy(15,12);
printf("(Premi ESC per uscire, o un tasto per ripartire)");
Sleep(1000);
mov1=getch();
if(mov1==27) goto fine;
clrscr();
goto inizio;
}
if(x_palla<=x_barra1)
{
punteggio2=punteggio2++;
gotoxy(25,25);
printf("Giocatore 1: %d || Giocatore 2: %d",punteggio1,punteggio2);
gotoxy(27,11);
printf("PUNTEGGIO AGGIORNATO!!!\n");
gotoxy(15,12);
printf("(Premi ESC per uscire, o un tasto per ripartire)");
Sleep(1000);
mov1=getch();
if(mov1==27) goto fine;
clrscr();
goto inizio;
}
gotoxy(x_palla,y_palla);
printf("O");
Sleep(speed);
gotoxy(x_palla,y_palla);
printf(" ");
}while(!kbhit());
mov1=getch();
for(i=0;i<=2;i++)
{
gotoxy(x_barra1,y_barra1+i);
printf(" ");
gotoxy(x_barra2,y_barra2+i);
printf(" ");
}
if((mov1=='a')&&((y_barra1-1)!=1)) y_barra1=y_barra1-1;
if((mov1=='z')&&((y_barra1+3)!=24)) y_barra1=y_barra1++;
if((mov1=='k')&&((y_barra2-1)!=1)) y_barra2=y_barra2-1;
if((mov1=='m')&&((y_barra2+3)!=24)) y_barra2=y_barra2++;
}while(mov1!=27); //condizione di uscita
fine:
}
[ / c o d e ]