前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯面试题之C++实现魔方程序

腾讯面试题之C++实现魔方程序

作者头像
week
发布2018-08-24 09:45:26
4010
发布2018-08-24 09:45:26
举报
文章被收录于专栏:用户画像用户画像

设计一个魔方(六面)的程序。

代码语言:javascript
复制
#include <iostream>
using namespace std;

class MagicCube
{
private:
    enum{LEN = 3,SPACE = 6};
    enum color{red,yellow,black,blue,green,purple};
    enum color Spacexy[SPACE][LEN][LEN];
public:
    MagicCube();
    ~MagicCube(){};
    void LeftRotate(int x,int y);
    void UpRotate(int y);
    void PrintCube();
};
void MagicCube::UpRotate(int y)
{
    color tmp[3];

    for(int i = 0;i<3;i++)
        tmp[i] = Spacexy[0][i][y];

    for(int i = 0;i<3;i++)
        Spacexy[0][i][y] = Spacexy[5][i][y];
    for(int i = 0;i<3;i++)
        Spacexy[5][i][y] = Spacexy[2][i][2-y];
    for(int i = 0;i<3;i++)
        Spacexy[2][i][2-y] = Spacexy[4][i][y];
    for(int i = 0;i<3;i++)
        Spacexy[4][i][y] = tmp[i];
}
void MagicCube::PrintCube()
{
    for(int s = 0;s<6;s++)
    {
        switch(s)
        {
        case 0:cout << " 正面:" << endl; break;
        case 1:cout << " 右面:" << endl; break;
        case 2:cout << " 后面:" << endl; break;
        case 3:cout << " 左面:" << endl; break;
        case 4:cout << " 上面:" << endl; break;
        case 5:cout << " 下面:" << endl; break;
        default:break ;
        }
        for(int i = 0;i<3;i++)
        {
            for(int j = 0;j<3;j++)
            {
                cout << Spacexy[s][i][j] << " ";
            }
            cout << endl;
        }
        cout << endl;
    }

    cout << "---------------------------------------" << endl;
}
MagicCube::MagicCube()
{
    for(int i = 0;i<6;i++)//每一面一个颜色
        for(int j = 0;j<3;j++)
            for(int k = 0;k<3;k++)
            {
                Spacexy[i][j][k] = (color)i;
            }
}
void MagicCube::LeftRotate(int x,int y)
{
    color tmp[3];

    for(int i = 0;i<3;i++)
        tmp[i] = Spacexy[0][x][i];

    for(int i = 0;i<3;i++)
        Spacexy[0][x][i] = Spacexy[1][x][i];
    for(int i = 0;i<3;i++)
        Spacexy[1][x][i] = Spacexy[2][x][i];
    for(int i = 0;i<3;i++)
        Spacexy[2][x][i] = Spacexy[3][x][i];
    for(int i = 0;i<3;i++)
        Spacexy[3][x][i] = tmp[i];

}
int main(void)
{
    MagicCube a;
    a.PrintCube();
    a.UpRotate(1);
    a.PrintCube();
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年06月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档