說明:我用VC外掛了TC的圖形庫,所以VC不能正確運行,要安裝一個叫easyx的軟件才行這是一個雙人彈球游戲一個人用ws控制左邊板的上下,一個人用ol控制右邊板的上下,一共30秒,比分高的人勝。
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main()
{
initgraph(640, 480);
struct pai
{
int x;
int y;
int a;
}pai1,pai2;
int x3,y3,m=0,n=0,i=1,j=2,k=30000;
char p1,p2,p3,p4;
loop:
pai1.x=220;pai1.y=260;
pai2.x=220;pai2.y=260;
x3=320;y3=240;
setcolor(WHITE);
setfillstyle(WHITE);
rectangle(0,pai1.x,5,pai1.y);
rectangle(635,pai2.x,640,pai2.y);
circle(x3,y3,5);
// 畫初始圖形
char c;
while(1)
{
p1=m+'0';
p2=n+'0';
p3=k/10000+'0';
p4=(k/1000)%10+'0';
outtextxy(300,5,p1);
outtextxy(340,5,p2);
outtextxy(280,20,"TIME");
outtextxy(360,20,p3);
outtextxy(370,20,p4);
if (kbhit())
{
// 獲取按鍵
c = getch();
// 先擦掉上次顯示的舊圖形
setcolor(BLACK);
setfillstyle(BLACK);
rectangle(0,pai1.x,5,pai1.y);
rectangle(635,pai2.x,640,pai2.y);
// 根據輸入,計算新的坐標
switch(c)
{
case 'w': {pai1.x-=10;pai1.y-=10;} break;
case 's': {pai1.x+=10;pai1.y+=10;}; break;
case 'o': {pai2.x-=10;pai2.y-=10;}break;
case 'l': {pai2.x+=10;pai2.y+=10;}break;
case 27: break;
}
// 繪制新的圖形
setcolor(WHITE);
setfillstyle(WHITE);
rectangle(0,pai1.x,5,pai1.y);
rectangle(635,pai2.x,640,pai2.y);
// 延時
Sleep(10);
}
setcolor(BLACK);
setfillstyle(BLACK);
circle(x3,y3,5);
if(y3<=480&&y3>=0)
{if((i>0&&(635-x3)>=6)||(i<0&&x3>=11))
{x3+=i;y3+=j;}
else if(i>0&&(635-x3)==5)
{if (y3>=pai2.x&&y3<=pai2.y)
{i=-i;x3+=i;y3+=j;}
else {m+=1;setcolor(BLACK);rectangle(0,pai1.x,5,pai1.y);
rectangle(635,pai2.x,640,pai2.y);goto loop;}
}
else if(i<0&&x3==10)
{if(y3>=pai1.x&&y3<=pai1.y)
{i=-i;x3+=i;y3+=j;}
else {n+=1;setcolor(BLACK);
rectangle(0,pai1.x,5,pai1.y);
rectangle(635,pai2.x,640,pai2.y);goto loop;}
}
}
else if(y3>480||y3<0) {x3+=i;j=-j;y3+=j;}
setcolor(WHITE);
setfillstyle(WHITE);
circle(x3,y3,5);
Sleep(18);
//球的初始運行軌跡
k-=10;
if(k==0) goto loop1;
}
loop1:
if(m>n) outtextxy(320,240,"player1 wins");
else if(m<n) outtextxy(320,240,"player2 wins");
else if(m==n) outtextxy(320,240,"平局");
getch();
closegraph();
}



|