znnwe1作者
14年3个月前IP:未同步
452833
5楼
怎么好像没人看实现文件呢[s:309]是懒得下载吗那就在贴一点给大家看看
bool MoFang_3::MoFang_ZT_S_S(void)
{
    //魔方整体上滚原始函数
    //数据交换缓存数组
    struct MoFang_kuai mian[3][3];
    struct MoFang_kuai kuai[2];
    int i,j;
    //魔方数组第一面数据写入缓存数组
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            mian[i][j]=MoFang[0][i][j];
        }
    }
    //第六面数据写入第一面
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            MoFang[0][i][j]=MoFang[5][i][j];
        }
    }
    //第三面数据写入第六面
    ///////////////////////////////
    //因为魔方结构的布局问题这一面的数组赋值规律被打乱须逐块赋值
    MoFang[5][0][0]=MoFang[2][2][2];
    MoFang[5][0][1]=MoFang[2][2][1];
    MoFang[5][0][2]=MoFang[2][2][0];
    MoFang[5][1][0]=MoFang[2][1][2];
    MoFang[5][1][1]=MoFang[2][1][1];
    MoFang[5][1][2]=MoFang[2][1][0];
    MoFang[5][2][0]=MoFang[2][0][2];
    MoFang[5][2][1]=MoFang[2][0][1];
    MoFang[5][2][2]=MoFang[2][0][0];
    ///////////////////////////////
    //第五面数据写入第三面
    ///////////////////////////////
    //因为魔方结构的布局问题这一面的数组赋值规律被打乱须逐块赋值
    MoFang[2][0][0]=MoFang[4][2][2];
    MoFang[2][0][1]=MoFang[4][2][1];
    MoFang[2][0][2]=MoFang[4][2][0];
    MoFang[2][1][0]=MoFang[4][1][2];
    MoFang[2][1][1]=MoFang[4][1][1];
    MoFang[2][1][2]=MoFang[4][1][0];
    MoFang[2][2][0]=MoFang[4][0][2];
    MoFang[2][2][1]=MoFang[4][0][1];
    MoFang[2][2][2]=MoFang[4][0][0];
    ///////////////////////////////
    //第一面数据写入第五面:第一面数据缓存在缓存数组
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            MoFang[4][i][j]=mian[i][j];
        }
    }
    //第二面上旋(正面看为逆时针旋转)
    /////////////////////////////
    kuai[0]=MoFang[1][0][0];
    kuai[1]=MoFang[1][0][1];
    /////////////////////////////
    MoFang[1][0][0]=MoFang[1][0][2];
    MoFang[1][0][1]=MoFang[1][1][2];
    /////////////////////////////
    MoFang[1][0][2]=MoFang[1][2][2];
    MoFang[1][1][2]=MoFang[1][2][1];
    /////////////////////////////
    MoFang[1][2][2]=MoFang[1][2][0];
    MoFang[1][2][1]=MoFang[1][1][0];
    /////////////////////////////
    MoFang[1][2][0]=kuai[0];
    MoFang[1][1][0]=kuai[1];
    /////////////////////////////
    //第四面左旋(正面看为顺时针旋转)
    /////////////////////////////
    kuai[0]=MoFang[3][0][0];
    kuai[1]=MoFang[3][0][1];
    /////////////////////////////
    MoFang[3][0][0]=MoFang[3][2][0];
    MoFang[3][0][1]=MoFang[3][1][0];
    /////////////////////////////
    MoFang[3][2][0]=MoFang[3][2][2];
    MoFang[3][1][0]=MoFang[3][2][1];
    /////////////////////////////
    MoFang[3][2][2]=MoFang[3][0][2];
    MoFang[3][2][1]=MoFang[3][1][2];
    /////////////////////////////
    MoFang[3][0][2]=kuai[0];
    MoFang[3][1][2]=kuai[1];
    /////////////////////////////
    return 0;
}
bool MoFang_3::MoFang_ZT_S(void)
{
   //魔方整体上滚
   ////////////////////////
   MoFang_ZT_S_S();
   ///////////////////////////
   MoFang_GDI();     //更新屏幕
   return 0;
}
bool MoFang_3::MoFang_ZT_X(void)
{
    //魔方整体下滚
    //魔方上滚三次就相当于一次下滚
    ////////////////////////
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    ///////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}  
bool MoFang_3::MoFang_ZT_Z_S(void)
{
    //魔方整体左滚原始函数
    //数据交换缓存数组
    struct MoFang_kuai mian[3][3];
    struct MoFang_kuai kuai[2];
    int i,j;
    //魔方数组第一面数据写入缓存数组
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            mian[i][j]=MoFang[0][i][j];
        }
    }
    //第四面数据写入第一面
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            MoFang[0][i][j]=MoFang[3][i][j];
        }
    }
    //第三面数据写入第四面
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            MoFang[3][i][j]=MoFang[2][i][j];
        }
    }
    //第二面数据写入第三面
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            MoFang[2][i][j]=MoFang[1][i][j];
        }
    }
    //第一面数据写入第二面:第一面数据缓存在缓存数组里
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            MoFang[1][i][j]=mian[i][j];
        }
    }
    //第五面左旋(正面看为顺时针旋转)
    /////////////////////////////
    kuai[0]=MoFang[4][0][0];
    kuai[1]=MoFang[4][0][1];
    /////////////////////////////
    MoFang[4][0][0]=MoFang[4][2][0];
    MoFang[4][0][1]=MoFang[4][1][0];
    /////////////////////////////
    MoFang[4][2][0]=MoFang[4][2][2];
    MoFang[4][1][0]=MoFang[4][2][1];
    /////////////////////////////
    MoFang[4][2][2]=MoFang[4][0][2];
    MoFang[4][2][1]=MoFang[4][1][2];
    /////////////////////////////
    MoFang[4][0][2]=kuai[0];
    MoFang[4][1][2]=kuai[1];
    /////////////////////////////
    //第六面左旋(正面看为逆时针旋转)
    /////////////////////////////
    kuai[0]=MoFang[5][0][0];
    kuai[1]=MoFang[5][0][1];
    /////////////////////////////
    MoFang[5][0][0]=MoFang[5][0][2];
    MoFang[5][0][1]=MoFang[5][1][2];
    /////////////////////////////
    MoFang[5][0][2]=MoFang[5][2][2];
    MoFang[5][1][2]=MoFang[5][2][1];
    /////////////////////////////
    MoFang[5][2][2]=MoFang[5][2][0];
    MoFang[5][2][1]=MoFang[5][1][0];
    /////////////////////////////
    MoFang[5][2][0]=kuai[0];
    MoFang[5][1][0]=kuai[1];
    /////////////////////////////
    return 0;
}
bool MoFang_3::MoFang_ZT_Z(void)
{
    //魔方整体左滚
    MoFang_ZT_Z_S();
    ///////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}
bool MoFang_3::MoFang_ZT_Y(void)
{
    //魔方整体右滚
    //魔方整体左滚三次就相当于右滚一次
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ///////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}
bool MoFang_3::MoFang_F_S(void)
{
     //顺时针翻转原始函数
    //数据缓存
    struct MoFang_kuai kuai[3];
    //正面旋转开始
    /////////////////////////////
    kuai[0]=MoFang[0][0][0];
    kuai[1]=MoFang[0][0][1];
    /////////////////////////////
    MoFang[0][0][0]=MoFang[0][2][0];
    MoFang[0][0][1]=MoFang[0][1][0];
    /////////////////////////////
    MoFang[0][2][0]=MoFang[0][2][2];
    MoFang[0][1][0]=MoFang[0][2][1];
    /////////////////////////////
    MoFang[0][2][2]=MoFang[0][0][2];
    MoFang[0][2][1]=MoFang[0][1][2];
    /////////////////////////////
    MoFang[0][0][2]=kuai[0];
    MoFang[0][1][2]=kuai[1];
    /////////////////////////////
    //侧面旋转开始
    kuai[0]=MoFang[4][2][0];
    kuai[1]=MoFang[4][2][1];
    kuai[2]=MoFang[4][2][2];
    /////////////////////////////
    MoFang[4][2][0]=MoFang[1][2][2];
    MoFang[4][2][1]=MoFang[1][1][2];
    MoFang[4][2][2]=MoFang[1][0][2];
    //////////////////////////////
    MoFang[1][2][2]=MoFang[5][0][2];
    MoFang[1][1][2]=MoFang[5][0][1];
    MoFang[1][0][2]=MoFang[5][0][0];
    ////////////////////////////////
    MoFang[5][0][2]=MoFang[3][0][0];
    MoFang[5][0][1]=MoFang[3][1][0];
    MoFang[5][0][0]=MoFang[3][2][0];
    ////////////////////////////////
    MoFang[3][0][0]=kuai[0];
    MoFang[3][1][0]=kuai[1];
    MoFang[3][2][0]=kuai[2];
    return 0;
}
bool MoFang_3::MoFang_F(void)
{
    //魔方前片顺时针转90度
      MoFang_F_S();
     ////////////////////////////////
    MoFang_GDI();     //更新屏幕
     return 0;
}    
bool MoFang_3::MoFang_F_(void)
{
    //魔方前片逆时针转90度
    //顺时针旋转3次就等于逆时针旋转1次
    MoFang_F_S();
    MoFang_F_S();
    MoFang_F_S();
     ////////////////////////////////
    MoFang_GDI();     //更新屏幕
     return 0;
}
bool MoFang_3::MoFang_B(void)
{
    //魔方后片顺时针转90度
    ////////////////////////////////
    //魔方整体左滚2次
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    //前片顺时针翻转一次
    MoFang_F_S();
    ////////////////////////////////
    //魔方整体左滚2次完成方向B操作
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}
bool MoFang_3::MoFang_B_(void)
{
    //魔方后片逆时针转90度
    ////////////////////////////////
    //魔方整体左滚2次
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    //前片逆时针翻转一次
    MoFang_F_S();
    MoFang_F_S();
    MoFang_F_S();
    ////////////////////////////////
    //魔方整体左滚2次完成方向B操作
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}
bool MoFang_3::MoFang_L(void)
{
    //魔方左片顺时针转90度
    ////////////////////////////////
    //右滚一次
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    //前片顺时针翻转一次
    MoFang_F_S();
    ////////////////////////////////
    //左滚一次还原完成L方向操作
    MoFang_ZT_Z_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
     return 0;
}
bool MoFang_3::MoFang_L_(void)
{
    //魔方左片顺时针转90度
    ////////////////////////////////
    //右滚一次
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    //前片逆时针翻转一次
    MoFang_F_S();
    MoFang_F_S();
    MoFang_F_S();
    ////////////////////////////////
    //左滚一次还原完成L_方向操作
    MoFang_ZT_Z_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
     return 0;
}
bool MoFang_3::MoFang_R(void)
{
    //魔方右片顺时针转90度
     ////////////////////////////////
    //魔方整体左滚一次
    MoFang_ZT_Z_S();
    /////////////////////////////////
    //前片顺时针翻转一次
    MoFang_F_S();
    ////////////////////////////////
    //魔方整体右滚一次完成R方向操作
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
     return 0;
}
bool MoFang_3::MoFang_R_(void)
{
    //魔方右片逆时针转90度
     ////////////////////////////////
    //魔方整体左滚一次
    MoFang_ZT_Z_S();
    /////////////////////////////////
    //前片逆时针翻转一次
    MoFang_F_S();
    MoFang_F_S();
    MoFang_F_S();
    ////////////////////////////////
    //魔方整体右滚一次完成R_方向操作
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    MoFang_ZT_Z_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
     return 0;
}
bool MoFang_3::MoFang_U(void)
{
    //魔方上片顺时针转90度
     ////////////////////////////////
    //魔方整体下滚一次
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    /////////////////////////////////
    //前片顺时针翻转一次
    MoFang_F_S();
    /////////////////////////////////
    //魔方整体上滚一次完成U方向操作
    MoFang_ZT_S_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}
bool MoFang_3::MoFang_U_(void)
{
    //魔方上片逆时针转90度
    ////////////////////////////////
    //魔方整体下滚一次
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    /////////////////////////////////
    //前片逆时针翻转一次
    MoFang_F_S();
    MoFang_F_S();
    MoFang_F_S();
    /////////////////////////////////
    //魔方整体上滚一次完成U_方向操作
    MoFang_ZT_S_S();
    ////////////////////////////////
    MoFang_GDI();     //更新屏幕
     return 0;
}
bool MoFang_3::MoFang_D(void)
{
    //魔方下片顺时针转90度
    ////////////////////////////////
    //魔方整体上滚一次
    MoFang_ZT_S_S();
    ////////////////////////////////
    //前片顺时针翻转一次
    MoFang_F_S();
    ////////////////////////////////
    //魔方整体下滚一次完成D方向操作
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    ///////////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}
bool MoFang_3::MoFang_D_(void)
{
    //魔方下片逆时针转90度
    ////////////////////////////////
    //魔方整体上滚一次
    MoFang_ZT_S_S();
    ////////////////////////////////
    //前片顺时针翻转一次
    MoFang_F_S();
    MoFang_F_S();
    MoFang_F_S();
    ////////////////////////////////
    //魔方整体下滚一次完成D方向操作
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    MoFang_ZT_S_S();
    ///////////////////////////////
    MoFang_GDI();     //更新屏幕
    return 0;
}
评论
文号 / 452833

一表人才
名片发私信
学术分 0
总主题 8 帖总回复 34 楼拥有证书:笔友
注册于 2012/09/16 23:59:49最后登录 2018/01/10 00:56:33
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:0

个人简介

暂未填写
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的