資源簡介
用C++寫的解魔方的算法,300行以內。詳細注釋,配合我的博客使用。
代碼片段和文件信息
#include?“sovle.h“
int?applicableMoves[]?=?{?0?262143/*18個1*/?259263/*111111010010111111*/?74943/*10010010010111111*/?74898/*10010010010010010*/?};
//?TODO:?Encode?as?strings?e.g.?for?U?use?“ABCDABCD“
int?affectedCubies[][8]?=?{ //對每一個塊編碼,前四位棱塊,后四位角塊(頂層右下角開始0.1.2.3,底層右下角開始4.5.6.7),相同塊數字相同。
{?0??1??2??3??0??1??2??3?}???//?U
{?4??7??6??5??4??5??6??7?}???//?D
{?0??9??4??8??0??3??5??4?}???//?F
{?2?10??6?11??2??1??7??6?}???//?B
{?3?11??7??9??3??2??6??5?}???//?L
{?1??8??5?10??1??0??4??7?}???//?R
};
/********************************************************************************
*對state狀態進行旋轉(順時針90°180°270°),返回旋轉后的狀態
*
*move=0時,U面順時針旋轉90°move=1時,U面順時針旋轉180°move=2時,U面順時針旋轉270°
*move=3時,D面順時針旋轉90°move=4時,D面順時針旋轉180°move=5時,D面順時針旋轉270°
*move=6時,F面順時針旋轉90°move=7時,F面順時針旋轉180°move=8時,F面順時針旋轉270°
*move=9時,B面順時針旋轉90°move=10時,B面順時針旋轉180°move=11時,B面順時針旋轉270°
*move=12時,L面順時針旋轉90°move=13時,L面順時針旋轉180°move=14時,L面順時
- 上一篇:飛思卡爾智能車 上位機 LabVIEW
- 下一篇:scrapy抓取知乎話題回答
評論
共有 條評論