游戏程序魔方Word格式.docx
- 文档编号:19186951
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:13
- 大小:34.93KB
游戏程序魔方Word格式.docx
《游戏程序魔方Word格式.docx》由会员分享,可在线阅读,更多相关《游戏程序魔方Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
四、程序清单:
#include<
conio.h>
stdio.h>
stdlib.h>
graphics.h>
inta[3][3]={1,1,1,1,1,1,1,1,1};
/*INITIALIZESIXPLANS*/
intb[3][3]={2,2,2,2,2,2,2,2,2};
intc[3][3]={4,4,4,4,4,4,4,4,4};
intd[3][3]={3,3,3,3,3,3,3,3,3};
inte[3][3]={5,5,5,5,5,5,5,5,5};
intf[3][3]={7,7,7,7,7,7,7,7,7};
inttop[3][3],front[3][3],side[3][3];
intposition=0,temp[3]={0,0,0},new[3][3];
/*POSITIONASSIGNTHEARROWPOSITION*/
intsign;
main()
{
intl=60,x=50,y=50,key,count,input=0,errorcode;
/*LMEANSTHELENTHOFTHESQUARE,XMEANSTHEINITAILPOSITIONOFX,YMEANSTHEINITIALPOSITIONOFY*/
inta1[3][3]={1,1,1,1,1,1,1,1,1};
/*INITIALIZESIXPLANSFORBACKUP*/
intb1[3][3]={2,2,2,2,2,2,2,2,2};
intc1[3][3]={4,4,4,4,4,4,4,4,4};
intd1[3][3]={3,3,3,3,3,3,3,3,3};
inte1[3][3]={5,5,5,5,5,5,5,5,5};
intf1[3][3]={7,7,7,7,7,7,7,7,7};
intgraphdriver=VGA,graphmode=VGAHI;
initgraph(&
graphdriver,&
graphmode,"
"
);
errorcode=graphresult();
if(errorcode!
=grOk)/*MEETERROR*/
{/*SHOWTHEERROE*/
printf("
Graphicserror:
%s\n"
grapherrormsg(errorcode));
Pressanykeytoexit:
getch();
exit
(1);
}
drawing(x,y,l);
/*DRAWINGTHEBIGSQUARE*/
drawing(x+400,y,l/2);
/*DRAWINGTHESMALLSQUARE*/
do
sign=position%3;
/*COPYDATATOSHOW*/
copy(&
a,&
top);
b,&
front);
c,&
side);
color(x,y,l);
/*SHOWINGTHEBIGSQUARE*/
e,&
change2(&
top,1);
f,&
front,2);
d,&
color(x+400,y,l/2);
/*SHOWINGTHESMALLSQUARE*/
setcolor(14);
arrow(x,y,l);
key=bioskey(0);
/*READKEYBORD*/
switch(key)
case283:
Esc"
/*IFINPUT_KEY="
ESC"
TOEXITTHEPROGRAM*/
gotoend;
case20480:
setcolor(0);
DOWN"
TOCHANGETHEARROW*/
arrow(x,y,l);
if(position==8)
position=0;
else
position=position+1;
break;
UP"
case18432:
if(position==0)
position=8;
position=position-1;
case19712:
input=1;
RIGHT"
TOMOVEFORWARD*/
case19200:
input=3;
LEFT"
TOMOVEREWARD*/
case7181:
setcolor(0);
ENTER"
TORELOAD*/
copy(&
a1,&
a);
b1,&
b);
c1,&
c);
d1,&
d);
e1,&
e);
f1,&
f);
case14624:
SPACE"
TORANDOMMOVE*/
randomize();
position=random(9);
input=1;
if(input!
=0)/*USEPOSITIONTOJUDGEANDCHANGEDATA*/
{/*IFINPUT=0,CHANGECLOCKWISE,IFINPUT=3,CHANGEREVERSE-CLOCKWISE*/
for(count=0;
count<
input;
count++)
if(position/3==0)/*IFNEEDTOCHANGETOP*/
{
change2(&
b,1);
c,1);
d,3);
f,1);
change1(&
b,3);
c,3);
d,1);
f,3);
temp[0]=0;
temp[1]=0;
temp[2]=0;
if(position%3==0)
a,1);
if(position%3==2)
e,1);
}
if(position/3==1)/*IFNEEDTOCHANGEFRONT*/
if(position/3==2)/*IFNEEDTOCHANGESIDE*/
a,3);
f,2);
e,3);
input=0;
while
(1);
end:
clearviewport();
/*CLEARTHESCREEN*/
drawing(intinital_x,intinital_y,intlenth)/*DRAWINGTHESTRUCTUREOFTHEPICTURE*/
setlinestyle(0,0,3);
line(inital_x+1.5*lenth,inital_y+0,inital_x+4.5*lenth,inital_y+0);
line(inital_x+1.0*lenth,inital_y+0.5*lenth,inital_x+4.0*lenth,inital_y+0.5*lenth);
line(inital_x+0.5*lenth,inital_y+1*lenth,inital_x+3.5*lenth,inital_y+1*lenth);
line(inital_x+0,inital_y+1.5*lenth,inital_x+3*lenth,inital_y+1.5*lenth);
line(inital_x+0,inital_y+2.5*lenth,inital_x+3*lenth,inital_y+2.5*lenth);
line(inital_x+0,inital_y+3.5*lenth,inital_x+3*lenth,inital_y+3.5*lenth);
line(inital_x+0,inital_y+4.5*lenth,inital_x+3*lenth,inital_y+4.5*lenth);
line(inital_x+0,inital_y+1.5*lenth,inital_x+0,inital_y+4.5*lenth);
line(inital_x+1.0*lenth,inital_y+1.5*lenth,inital_x+1.0*lenth,inital_y+4.5*lenth);
line(inital_x+2.0*lenth,inital_y+1.5*lenth,inital_x+2.0*lenth,inital_y+4.5*lenth);
line(inital_x+3.0*lenth,inital_y+1.5*lenth,inital_x+3.0*lenth,inital_y+4.5*lenth);
line(inital_x+3.5*lenth,inital_y+1.0*lenth,inital_x+3.5*lenth,inital_y+4.0*lenth);
line(inital_x+4.0*lenth,inital_y+0.5*lenth,inital_x+4.0*lenth,inital_y+3.5*lenth);
line(inital_x+4.5*lenth,inital_y+0,inital_x+4.5*lenth,inital_y+3.0*lenth);
line(inital_x+1.5*lenth,inital_y+0,inital_x+0,inital_y+1.5*lenth);
line(inital_x+2.5*lenth,inital_y+0,inital_x+1.0*lenth,inital_y+1.5*lenth);
line(inital_x+3.5*lenth,inital_y+0,inital_x+2.0*lenth,inital_y+1.5*lenth);
line(inital_x+4.5*lenth,inital_y+0,inital_x+3.0*lenth,inital_y+1.5*lenth);
line(inital_x+4.5*lenth,inital_y+1.0*lenth,inital_x+3.0*lenth,inital_y+2.5*lenth);
line(inital_x+4.5*lenth,inital_y+2.0*lenth,inital_x+3.0*lenth,inital_y+3.5*lenth);
line(inital_x+4.5*lenth,inital_y+3.0*lenth,inital_x+3.0*lenth,inital_y+4.5*lenth);
color(intinital_x,intinital_y,intlenth)/*FILLCOLORBYTHEDATA*/
inti,j;
intcolor_num;
intx1=inital_x+1.5*lenth;
inty1=inital_y+0.25*lenth;
intx2,y2;
for(i=0;
i<
3;
i++)
x2=x1;
y2=y1;
for(j=0;
j<
j++)
color_num=top[i][j];
setfillstyle(1,color_num);
floodfill(x2,y2,WHITE);
x2=x2+lenth;
x1=x1-0.5*lenth;
y1=y1+0.5*lenth;
x1=inital_x+0.5*lenth;
y1=inital_y+2*lenth;
color_num=front[i][j];
y1=y1+lenth;
x1=inital_x+3.25*lenth;
color_num=side[i][j];
x2=x2+0.5*lenth;
y2=y2-0.5*lenth;
arrow(intinital_x,intinital_y,intlenth)/*DRAWINGTHEARROWBYTHEPOSITION*/
if(position<
=2)
line(inital_x-30,inital_y+2*lenth-3+position*lenth,inital_x-20,inital_y+2*lenth-3+position*lenth);
line(inital_x-30,inital_y+2*lenth+3+position*lenth,inital_x-20,inital_y+2*lenth+3+position*lenth);
line(inital_x-21,inital_y+2*lenth-6+position*lenth,inital_x-15,inital_y+2*lenth+position*lenth);
line(inital_x-21,inital_y+2*lenth+6+position*lenth,inital_x-15,inital_y+2*lenth+position*lenth);
=5&
&
position>
2)
line(inital_x+0.5*lenth+(position-3)*lenth-3,inital_y+4.5*lenth+30,inital_x+0.5*lenth+(position-3)*lenth-3,inital_y+4.5*lenth+20);
line(inital_x+0.5*lenth+(position-3)*lenth+3,inital_y+4.5*lenth+30,inital_x+0.5*lenth+(position-3)*lenth+3,inital_y+4.5*lenth+20);
line(inital_x+0.5*lenth+(position-3)*lenth-6,inital_y+4.5*lenth+21,inital_x+0.5*lenth+(position-3)*lenth,inital_y+4.5*lenth+15);
line(inital_x+0.5*lenth+(position-3)*lenth+6,inital_y+4.5*lenth+21,inital_x+0.5*lenth+(position-3)*lenth,inital_y+4.5*lenth+15);
if(position>
5)
line(inital_x+3.25*lenth+(position-6)*lenth*0.5-3+5,inital_y+4.5*lenth+30-(position-5)*0.5*lenth+20,inital_x+3.25*lenth+(position-6)*0.5*lenth-3+5,inital_y+4.5*lenth+20-(position-5)*0.5*lenth+20);
line(inital_x+3.25*lenth+(position-6)*lenth*0.5+3+5,inital_y+4.5*lenth+30-(position-5)*0.5*lenth+20,inital_x+3.25*lenth+(position-6)*0.5*lenth+3+5,inital_y+4.5*lenth+20-(position-5)*0.5*lenth+20);
line(inital_x+3.25*lenth+(position-6)*lenth*0.5-6+5,inital_y+4.5*lenth+21-(position-5)*0.5*lenth+20,inital_x+3.25*lenth+(position-6)*0.5*lenth+5,inital_y+4.5*lenth+15-(position-5)*0.5*lenth+20);
line(inital_x+3.25*lenth+(position-6)*lenth*0.5+6+5,inital_y+4.5*lenth+21-(position-5)*0.5*lenth+20,inital_x+3.25*lenth+(position-6)*0.5*lenth+5,inital_y+4.5*lenth+15-(position-5)*0.5*lenth+20);
copy(int*p,int*q)
*q=*p;
p++;
q++;
change1(int*p,int*q)/*CONVERTTWOARRAY*/
inti,ling;
p=p+sign;
q=q+sign;
if(temp[0]==0)
for(i=0;
temp[i]=*p;
p=p+3;
p=p-9;
ling=*q;
*q=temp[i];
temp[i]=ling;
q=q+3;
change2(int*p,intx)/*CHANGETHEARRAYBYREVERSE-CLOCKWISE*/
inti,j,k;
for(k=0;
k<
x;
k++)
for(j=2;
j>
=0;
j--)
new[j][i]=*p;
p=p+1;
*p=new[i][j];
五、设计结果说明:
可以通过键盘对魔方进行旋转,但是由于程序设计还不够完善,不能与鼠标并用进行操作,有待改进。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游戏 程序 魔方