Download - 큐브공식 시뮬레이션
큐브공식 시뮬레이션Linear Algebra with Matlab
201311308 전세진201311279 백승대201311302 이정우
개요
• 큐브공식 시뮬레이션 ?• 시연• GUI 코드• 데이터 처리 및 내부동작함수• 전체적 구조• 확장가능성
본프로젝트의 개념
큐브공식 시뮬레이션 ?
컴퓨터 스스로 루빅스큐브 솔루션에 따라큐브를 맞춰주는 프로그램
큐브공식 시뮬레이션 ?
큐브의 상태를 이미지로 표현 ( 프로세싱 연동 )공식에 따라 해결과정을 한 단계씩 보여줌
사용자가 직접 맞추는 것 역시 가능
큐브의 회전 / 확대 / 축소 기능으로 관찰이 용이
큐브 공식개발 등의 연구에 적합할 것으로 예상
시연
GUI 코드
GUI 코드 - 구조도
신경 쓸 것은 크게 둘
2. 큐브 구현1. 데이터 전달
GUI 코드 – 데이터 전달
GUI 코드 – 데이터 전달
hist, cube
cube
GUI 코드 – 데이터 전달
VARIABLES
GUI 코드 – 데이터 전달
GUI 코드 – 큐브 구현
GUI 코드 – 큐브 구현
ㆍㆍㆍ
GUI 코드 – 큐브 구현
데이터 및내부동작함수
여기부터는
데이터 & 내부동작함수 - 개요
• 데이터 - variables.m (A~Z & 1~6)
• 내부동작함수 – turn 시리즈• 내부동작함수 – mixup.m• 내부동작함수 – 공식의 적용
우선
• if : 경우의 수가 너무 많음 find 를 쓰더라도 결국 if 의 사용이 불가피• while : while 과 find 가 여사건관계 – find 쓰면
경우의 수가 너무 많아짐
데이터 (variables.m)
내부동작함수 – turn series
가장 많은 파일 수를 차지
함수호출 로그를 저장• Processing 부분에서는 로그만을
가져감• 한 번에 한 단계씩 보여주기 위함
cube 변수 처리• cube : 전체 큐브 모양을 담는 변수• 큐브공식의 진행단계를 확인하기 위함• 매우 많은 단순 대입연산
내부동작함수 – mixup.m
큐브를 랜덤하게 섞어주는 함수
랜덤값 6 개를 받음• 0~3 사이의 정수• 시드를 받기 때문에 실행시마다 다른 값
섞는 작업• U, D, F, B, R, L 의 6 군데에서• 3 번 이하의 횟수로 큐브를 돌려줌
내부동작함수 – 공식의 적용
57 개의 OLL, 21 개의 PLL 등등 – 디버거 정우에게 경의를 ...
기본구조는
단 , topcross.m, sideT.m 의 경우
?
그래서
모든 경우의 수를 조사하기로-> 승대가 제안 , 승대가 해결 , 대단한 승대
ㆍㆍㆍ
전체적 구조
전체적 구조
cube=[A,B,C,…,Z];hist=[’Fn’; ’Bp’; ’Rn’;
…];
returnCubeStatus();
matlabCube();
hist = []; % 초기화cube
확장가능성
확장가능성 1 – 사용자 지정 큐브상태
사용자가 공식을 보며 따라할 수 있도록
큐브 해부하듯 조각의 클릭을 통한 교환
확장가능성 2 – n×n×n 큐브
조각 데이터 갈아엎기 - 2n^2+(n-2)(2n+2(n-2)) 개 필요
회전함수 추가 - 6n 개 필요
공식 입력 - 하… .
감사합니다