
本文由风雨雪浪人贡献
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#define R 4 /*球半径*/
struct box
{ int x
int y
int color
}a[6][14]
int Keystate
int MouseExist
int MouseButton
int MouseX
int MouseY=400
int dx=1,dy=1/*计算球的反d*/
int sizex=18,sizey=10/*box的宽度和长度*/
void draw(int x,int y) /* x, y为左上角坐蚂祥标sizex,sizey
为长和宽*/
{
int sizx=sizex-1
int sizy=sizey-1
setcolor(15)/*这里最好用白色*/
line(x,y,x+sizx-1,y)
line(x,y+1,x+sizx-2,y+1)
line(x,y,x,y+sizy-1)
line(x+1,y,x+1,y+sizy-2)
setcolor(8)/*这里最好用深灰色*/
line(x+1,y+sizy,x+sizx,y+sizy)
line(x+2,y+sizy-1,x+sizx,y+sizy-1)
line(x+sizx-1,y+1,x+sizx-1,y+sizy)
line(x+sizx,y+2,x+sizx,y+sizy)
setcolor(7)/*这里最好用灰色*/
putpixel(x,y+sizy,3)
putpixel(x+1,y+sizy-1,3)
putpixel(x+sizx,y,3)
putpixel(x+sizx-1,y+1,3)
setfillstyle(1, 7)/*这里最好用灰色,设置填充模式*/
bar(x+2,y+2,x+sizx-2,y+sizy-2)
}
void picture() /*画box*/
{ int i,j
setcolor(15)
rectangle(99,49,413,451)
for(i=0i<6i++)
for(j=0j<14j++)
{ a[i][j].color=0
a[i][j].x=104+j*22
a[i][j].y=54+i*14
draw(104+j*22,54+i*14)
}
sizex=50,sizey=5
}
/*鼠标光标显示*/
void MouseOn(int x,int y)
{
draw(x,y)
}
/*隐藏鼠标*/
void MouseOff()
{
int x,y
x=MouseX
y=MouseY
setfillstyle(1,0)
bar(x,y,x+sizex,y+sizey)
}
/*鼠标是否加载
MouseExist:1=加载
0=未加载
MouseButton:鼠标按键数目 */
void MouseLoad()
{
_AX=0x00
geninterrupt(0x33)
MouseExist=_AX
MouseButton=_BX
}
/*鼠标状态值初始化*/
void MouseReset()
{
_AX=0x00
geninterrupt(0x33)
}
/*设置鼠标左右边界
lx:左边界
gx:右边界 */
void MouseSetX(int lx,int rx)
{
_CX=lx
_DX=rx
_AX=0x07
geninterrupt(0x33)
}
/*设置鼠标上下边闷让搏界
uy:上边界
dy:下边界 */
void MouseSetY(int uy,int dy)
{
_CX=uy
_DX=dy
_AX=0x08
geninterrupt(0x33)
}
/*设置鼠标当前位置
x:横向坐标
y:纵向坐标 */
void MouseSetXY(int x,int y)
{
_CX=x
_DX=y
_AX=0x04
geninterrupt(0x33)
}
/*设置鼠标速度(缺省值:vx=8,vy=1)
值越大滑拿速度越慢 */
void MouseSpeed(int vx,int vy)
{
_CX=vx
_DX=vy
_AX=0x0f
geninterrupt(0x33)
}
/*获取鼠标当前位置*/
void MouseGetXY()
{
_AX=0x03
geninterrupt(0x33)
MouseX=_CX
MouseY=_DX
}
void MouseStatus()/*鼠标按键情况*/
{
int x
int status
status=0/*默认鼠标没又移动*/
x=MouseX
if(x==MouseX&&status==0) /*鼠标没动*/
{
MouseGetXY()
if(MouseX!=x)
if(MouseX+50<413)
status=1
}
if(status)/*移动情况才重新显示鼠标*/
{
setfillstyle(1,0)
bar(x,MouseY,x+sizex,MouseY+sizey)
MouseOn(MouseX,MouseY)/*新位置显示*/
}
}
void Move()
{int ballX/*球的圆心*/
int ballY=MouseY-R
int i,j,t=0
randomize()
while(ballX=random(409))
if(ballX>=105 &&ballX<=408)
break
while(kbhit)
{
MouseStatus()
if(ballY<=(58-R)) /*碰上反d*/
dy*=(-1)
if(ballX>=(413-R)||ballX<=(108-R)) /*碰左右反d*/
dx*=(-1)
setcolor(YELLOW)
circle(ballX+=dx,ballY-=dy,R-1)
delay(2500)
setcolor(0)
circle(ballX,ballY,R-1)
for(i=0i<6i++)
for(j=0j<14j++) /*判断是否传记撞击box*/
if(t<84&&a[i][j].color==0 &&ballX>=a[i][j].x &&
ballX<=a[i][j].x+18
&&ballY>=a[i][j].y &&ballY<=a[i][j].y+10)
{t++
dy*=(-1)
a[i][j].color=1
setfillstyle(1,0)
bar(a[i][j].x,a[i][j].y,a[i][j].x+18,a[i][j].y+10)
}
if(ballX==MouseX||ballX==MouseX-1||
ballX==MouseX-2&&ballX==(MouseX+50+2)||
ballX==(MouseX+50+1)||ballX==(MouseX+50)) /*
碰板反d*/
if(ballY>=(MouseY-R))
{ dx*=(-1)
dy*=(-1)/*原路返回*/
}
if(ballX>MouseX &&ballX<(MouseX+50)) /*碰板反
d*/
if(ballY>=(MouseY-R))
dy*=(-1)
if(t==84)
{ sleep(1)
cleardevice()
setcolor(RED)
settextstyle(0,0,4)
outtextxy(100,200,"Win")sleep(1)
break
}
if(ballY>MouseY)
{ sleep(1)
cleardevice()
setcolor(RED)
settextstyle(0,0,4)
outtextxy(100,200,"Game Over")sleep(1)
break
}
}
}
void main()
{int gd=DETECT,gm
initgraph(&gd,&gm,"c:\\tc")
picture()
MouseSetX(100,362)/*设置鼠标移动的范围*/
MouseSetY(MouseY,MouseY)/*鼠标只能左右移动*/
MouseSetXY(150,MouseY)/*鼠标的初始位置*/
MouseOn(MouseX,MouseY)/*第一次显示鼠标*/
Move()
closegraph()
}
有。玩具除开木头材质的,其他玩具都需要ccc认证。
3c认证全称为中国强制性产品认证,它是中国政府为保护消费者人身安全和国家安全、加强产品质量管理、依照法律法规实施的一种产品合格评定制度。3C标志纳衫历一般贴在产品表面,或通过模具压在产品上,其图形为椭圆形的CCC标志,每个标志后面都有一个随机码。3C认证的特点是:国家公布统一的目塌桐录,确定统一适用的国家标准、技术规则和洞搜实施程序,制定统一的标志标识,规定统一的收费标准。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)