提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
三阶魔方
前言
提示:这里可以添加本文要记录的大概内容:
目前只写了六个面,目前只是简单的贴出六个面,后期会逐渐完善剩下的,比如魔方每个面之间的转动,以及还原前后的判断,还有开始前魔方随机打乱等
提示:以下是本篇文章正文内容,下面案例可供参考
一、魔方是什么?
魔术方块,也称鲁比克方块
魔方,Rubik’s Cube 又叫魔术方块,也称鲁比克方块。是匈牙利布达佩斯建筑学院厄尔诺·鲁比克教授在1974年发明的。
二、使用步骤
1.引入头文件库
代码如下(示例):
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<Windows.h>
#include<easyx.h>
#include<time.h>
/*******************/
void MFSuiJiM(IMAGE img[]); ///魔方随机面
void MFtietie();//加载图片
/*函数声明*/
/*常数*/
#define N 6
#define width 141*9
#define height 141*6
/******************/
2.设置需要调用的函数进行调用
代码如下(示例):
void MFSuiJiM(IMAGE img[]) ///魔方随机面
{
int MF3[N][3][3] = {
{{1,1,1},{1,1,1},{1,1,1}},
{{2,2,2},{2,2,2},{2,2,2}},
{{3,3,3},{3,3,3},{3,3,3}},
{{4,4,4},{4,4,4},{4,4,4}},
{{5,5,5},{5,5,5},{5,5,5}},
{{6,6,6},{6,6,6},{6,6,6}}
};
/*打印6个面*/
for (int n = 0; n < N;)
{
printf("【***********魔方第%d面**********】\n",n+1);
for (int i = 0; i < 3; )
{
for (int k = 0; k < 3;)
{
if (MF3[n][i][k] == 4)
{
printf("红");
putimage(k * 141, (3+i) * 141, img+4);
//k++;
}
else if (MF3[n][i][k] == 3)
{
printf("橙");
putimage((k+6) * 141, i * 141, img+3);
//k++;
}
else if (MF3[n][i][k] == 1)
{
printf("黄");
putimage(k * 141, i * 141, img+1);
//k++;
}
else if (MF3[n][i][k] == 2)
{
printf("白");
putimage((k + 3) * 141, i * 141, img + 2);
//k++;
}
else if (MF3[n][i][k] == 5)
{
printf("蓝");
putimage((k+3) * 141, (i+3) * 141, img+5);
//k++;
}
else if (MF3[n][i][k] == 6)
{
printf("绿");
putimage((k+6) * 141,(3+ i )* 141, img+6);
//k++;
}
k++;
}
printf("\n");
i++;
}
printf("\n");
n++;
} //
}
void MFtietie()//加载图片
{
//批量加载
IMAGE img[7];
char buff[25] = { 0 };
for (int i = 1; i < 7; i++)
{
sprintf(buff, "./res/%d.png", i);
loadimage(&img[i], buff, 139, 139);
MFSuiJiM(img);
}
}
该处进行上面的函数调用:
/*主函数*/
int main()
{
/*创建窗口*/
initgraph(width, height, 1);
/*设置窗口颜色*/
setbkcolor(WHITE);
cleardevice();///刷新
//srand((unsigned int)time(NULL));///设置时间种子
//加载图片
MFtietie();
while (1);
return 0;
}
总结
以上就是今天要讲的内容,本文仅仅简单介绍了三维数组的使用,写了一简易的三阶魔方界面,后期会逐渐完善。图片素材可以再任意地方自行截取,我的图片素材是在WPS里面截图截的,需要素材可以找我,或者在评论区留言。
#题外话:
我还只是 一个萌新,今天是刚接触C语言的第二天。感谢大佬的支持若有不足之处,还望各位大佬指点迷津,谢谢