ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:34.93KB ,
资源ID:6183778      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6183778.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(游戏程序魔方.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

游戏程序魔方.docx

1、游戏程序魔方计算机技术基础课程设计C语言设计报告题目:游戏程序-魔方学院:机电工程学院 专业:工业工程班级:050109姓名:石万广指导教师: 设计日期:2007年1月5日题目:游戏程序魔方一、选题背景:问题的提出:大家小时候都玩过魔方,将它设计成一个小程序在C语言里,以便在游戏的过程中丰富我们对这门学科的了解!二、设计思想:魔方共有26块,其中6块位于每一面的中心位置,当魔方转动时它们是不动的;有8块位于顶角位置,各有三个不同颜色的小面;剩余12块各有二个不同颜色的小面。用比较常见的函数来实现魔方程序制作,主要应用画图的方法来制作,并且通过光标来完成魔方的运转,其主要的思想是用光标完成对魔方

2、颜色的改变从而获得胜利!三、程序流程图四、程序清单:#include#include#include#includeint a33=1,1,1,1,1,1,1,1,1; /*INITIALIZE SIX PLANS*/ int b33=2,2,2,2,2,2,2,2,2;int c33=4,4,4,4,4,4,4,4,4;int d33=3,3,3,3,3,3,3,3,3;int e33=5,5,5,5,5,5,5,5,5;int f33=7,7,7,7,7,7,7,7,7;int top33,front33,side33;int position=0,temp3=0,0,0,new33; /

3、*POSITION ASSIGN THE ARROW POSITION*/int sign;main()int l=60,x=50,y=50,key,count,input=0,errorcode; /*L MEANS THE LENTH OF THE SQUARE,X MEANS THE INITAIL POSITION OF X,Y MEANS THE INITIAL POSITION OF Y*/int a133=1,1,1,1,1,1,1,1,1; /*INITIALIZE SIX PLANS FOR BACKUP*/int b133=2,2,2,2,2,2,2,2,2;int c13

4、3=4,4,4,4,4,4,4,4,4;int d133=3,3,3,3,3,3,3,3,3;int e133=5,5,5,5,5,5,5,5,5;int f133=7,7,7,7,7,7,7,7,7;int graphdriver=VGA,graphmode=VGAHI;initgraph(&graphdriver,&graphmode,);errorcode = graphresult();if (errorcode != grOk) /*MEET ERROR*/ /*SHOW THE ERROE*/printf(Graphics error: %sn, grapherrormsg(err

5、orcode);printf(Press any key to exit:);getch();exit(1);drawing(x,y,l); /*DRAWING THE BIG SQUARE*/drawing(x+400,y,l/2); /*DRAWING THE SMALL SQUARE*/dosign=position%3; /*COPY DATA TO SHOW*/copy (&a,&top);copy (&b,&front);copy (&c,&side);color(x,y,l); /*SHOWING THE BIG SQUARE*/copy (&e,&top);change2(&t

6、op,1);copy (&f,&front);change2(&front,2);copy (&d,&side);color(x+400,y,l/2); /*SHOWING THE SMALL SQUARE*/setcolor(14);arrow(x,y,l);key=bioskey(0); /*READ KEYBORD*/switch(key)case 283:printf(Esc); /*IF INPUT_KEY=ESC TO EXIT THE PROGRAM*/ goto end;case 20480:setcolor(0); /*IF INPUT_KEY=DOWN TO CHANGE

7、THE ARROW*/ arrow(x,y,l); if(position=8) position=0; else position=position+1; break; /*IF INPUT_KEY=UP TO CHANGE THE ARROW*/case 18432:setcolor(0); arrow(x,y,l); if(position=0) position=8; else position=position-1; break;case 19712:input=1; /*IF INPUT_KEY=RIGHT TO MOVE FORWARD*/ break;case 19200:in

8、put=3; /*IF INPUT_KEY=LEFT TO MOVE REWARD*/ break;case 7181: setcolor(0); /*IF INPUT_KEY=ENTER TO RELOAD */ arrow(x,y,l); copy(&a1,&a); copy(&b1,&b); copy(&c1,&c); copy(&d1,&d); copy(&e1,&e); copy(&f1,&f); position=0; break;case 14624:setcolor(0); /*IF INPUT_KEY=SPACE TO RANDOM MOVE*/ arrow(x,y,l);

9、randomize(); position=random(9); input=1; break;if(input!=0) /*USE POSITION TO JUDGE AND CHANGE DATA*/ /*IF INPUT=0,CHANGE CLOCKWISE,IF INPUT=3,CHANGE REVERSE-CLOCKWISE*/for(count=0;countinput;count+) if(position/3=0) /*IF NEED TO CHANGE TOP*/ change2(&b,1); change2(&c,1); change2(&d,3); change2(&f,

10、1); change1(&b,&c); change1(&c,&d); change1(&d,&f); change1(&f,&b); change2(&b,3); change2(&c,3); change2(&d,1); change2(&f,3); temp0=0;temp1=0;temp2=0; if(position%3=0) change2(&a,1); if(position%3=2) change2(&e,1); if(position/3=1) /*IF NEED TO CHANGE FRONT*/ change1(&a,&b); change1(&b,&e); change

11、1(&e,&d); change1(&d,&a); temp0=0;temp1=0;temp2=0; if(position%3=0) change2(&f,1); if(position%3=2) change2(&c,1); if(position/3=2) /*IF NEED TO CHANGE SIDE*/ change2(&a,3); change2(&e,1); change2(&f,2); change1(&a,&c); change1(&c,&e); change1(&e,&f); change1(&f,&a); change2(&a,1); change2(&e,3); ch

12、ange2(&f,2); temp0=0;temp1=0;temp2=0; if(position%3=0) change2(&b,1); if(position%3=2) change2(&d,1); input=0;while(1);end:clearviewport(); /*CLEAR THE SCREEN*/drawing(int inital_x,int inital_y,int lenth) /*DRAWING THE STRUCTURE OF THE PICTURE*/setlinestyle(0,0,3);line(inital_x+1.5*lenth,inital_y+0,

13、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,in

14、ital_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

15、*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,ini

16、tal_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_

17、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*l

18、enth,inital_y+3.0*lenth,inital_x+3.0*lenth,inital_y+4.5*lenth);color(int inital_x,int inital_y,int lenth) /*FILL COLOR BY THE DATA*/int i,j;int color_num;int x1=inital_x+1.5*lenth;int y1=inital_y+0.25*lenth;int x2,y2;for (i=0;i3;i+)x2=x1;y2=y1;for (j=0;j3;j+)color_num=topij;setfillstyle(1,color_num)

19、;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;for (i=0;i3;i+)x2=x1;y2=y1;for (j=0;j3;j+)color_num=frontij;setfillstyle(1,color_num);floodfill(x2,y2,WHITE);x2=x2+lenth;y1=y1+lenth;x1=inital_x+3.25*lenth;y1=inital_y+2*lenth;for (i=0;i3;i+

20、)x2=x1;y2=y1;for (j=0;j3;j+)color_num=sideij;setfillstyle(1,color_num);floodfill(x2,y2,WHITE);x2=x2+0.5*lenth;y2=y2-0.5*lenth;y1=y1+lenth;arrow(int inital_x,int inital_y,int lenth) /*DRAWING THE ARROW BY THE POSITION*/if(position=2)line(inital_x-30,inital_y+2*lenth-3+position*lenth,inital_x-20,inita

21、l_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*le

22、nth+position*lenth);if(position2)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(in

23、ital_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(position5)line(inital_x+3.25*lenth+(position-6)*

24、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

25、+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,

26、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)int i,j;for (i=0;i3;i+)for (j=0;j3;j+)*q=*p;p+;q+;change1(int *p,int *q) /*CONVERT TWO ARRAY*/int i,ling;p=p+sign;q=q+sign;if (temp0=0)for

27、(i=0;i3;i+)tempi=*p;p=p+3;p=p-9;for(i=0;i3;i+)ling=*q;*q=tempi;tempi=ling;p=p+3;q=q+3;change2(int *p,int x) /*CHANGE THE ARRAY BY REVERSE-CLOCKWISE*/int i,j,k;for (k=0;kx;k+)for(i=0;i=0;j-)newji=*p;p=p+1;p=p-9;for (i=0;i3;i+)for (j=0;j3;j+)*p=newij;p+;p=p-9; 五、设计结果说明: 可以通过键盘对魔方进行旋转,但是由于程序设计还不够完善,不能与鼠标并用进行操作,有待改进。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1