<script>
import Tile from './Tile.svelte'
let name = 'DP';
//맵 정보 초기화
let maps = new Array(4).fill(0).map(() => new Array(6).fill(' '));
//플레이어 초기 위치
const player={"i":maps.length-1, "j":0};
//목적지 초기 위치
const dest={"i":0, "j":maps[0].length-1};
//이동 비용
const moveCost=1;
//아이콘 별 점수 *주의: 양의 점수는 이동 비용을 넘어선 안 됨
const bonus={' ':0, '💰':1, '☠️':-1, '🏁':0};
//목적지 설정
maps[dest.i][dest.j]='🏁';
//최선의 경로
let maxPath=[];
//최선의 점수. 초깃값이 0이어야 값이 올바르게 갱신됨.
let maxScore=-Infinity;
//전수조사를 하므로 동적 계획법을 사용
function dpSearch()
{
//가로 세로 초기화
let width=maps[0].length, height=maps.length;
//동적 계획법에 사용할 베열인 dp 초기화. dp는 maps의 상하 반전ㅇ,로, 각 칸에서 최선의 점수가 들어간다.
let dp =new Array(height).fill(0).map(() => new Array(width).fill(0));
//상하반전시 인덱스 처리에 도움을 주는 함수
let upsideDown=(i)=>height-1-i;
//각 칸마다 선택한 최선의 (직전) 경로를 저장 하는 배열
let chosenDirection=new Array(height).fill(0).map(() => new Array(width).fill(''));
//검색할 대각선의 수
let maxDiagonal=width+height;
//대각선을 1부터 maxDiagonal-1까지 '/' 모양으로 검색. 대각선0번인 dp[0,0]은 0이므로 검색 불요.
for (let d=1; d<maxDiagonal;d++)
{