JFVDXTQS6OZQWXXRQ3I4HC7BBFXWQUWQO56C7AXQ35PMWUQI2MKAC
var formatQueen = function (_v3) {
var i = _v3.a;
var j = _v3.b;
return '&queen=' + ($elm$core$String$fromInt(i) + (':' + $elm$core$String$fromInt(j)));
};
var solveUrl = 'solve?id=1&size=' + ($elm$core$String$fromInt(model.size) + A3(
$elm$core$List$foldl,
$elm$core$Basics$append,
'',
A2(
$elm$core$List$map,
formatQueen,
$elm$core$Set$toList(model.queens))));
var $mdgriffith$elm_ui$Internal$Model$AlignX = function (a) {
return {$: 'AlignX', a: a};
};
var $mdgriffith$elm_ui$Internal$Model$Right = {$: 'Right'};
var $mdgriffith$elm_ui$Element$alignRight = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$Right);
var status = A2(
$mdgriffith$elm_ui$Element$el,
_List_fromArray(
[
$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
$mdgriffith$elm_ui$Element$padding(10)
]),
function () {
var _v0 = model.status;
if (_v0.$ === 'Just') {
var s = _v0.a;
if (s.$ === 'Solved') {
return $mdgriffith$elm_ui$Element$text('Solved ✔');
} else {
return $mdgriffith$elm_ui$Element$text('Unsolvable ✖');
}
} else {
return $mdgriffith$elm_ui$Element$none;
}
}());
Solve
->
( model
, Http.get
{ url = "solve?id=1&size=" ++ String.fromInt model.size
, expect = Http.expectJson ReceivedSolution solutionDecoder
}
ChangeBoardSize size
-> (
{ model
| size = size
, queens = Set.filter (\(x,y) -> x < size && y < size) model.queens
, status = Nothing
}
, Cmd.none
ReceivedSolution maybeSol
-> case maybeSol of
Ok(sol) -> ( { model | queens = Set.fromList <| List.map (\l -> listToTuple l) sol}, Cmd.none )
Err(err) -> ( model, Cmd.none )
Solve
->
( model
, Http.get
{ url = solveUrl
, expect = Http.expectJson ReceivedSolution solutionDecoder
}
)
ReceivedSolution maybeSol
-> case maybeSol of
Ok(sol) -> ( { model | status = Just Solved, queens = Set.fromList <| List.map (\l -> listToTuple l) sol}, Cmd.none )
Err(err) -> ( { model | status = Just Unsolvable }, Cmd.none )
elmcorePlatformProgramauthorprojectQueensFlags��������authorprojectQueensModel���������������id��elmcoreBasicsIntqueens��elmcoreSetSetelmcoreBasicsIntelmcoreBasicsInt�size��elmcoreBasicsInt�authorprojectQueensMsg�������Msg���������������AddQueen����������������������elmcoreBasicsIntelmcoreBasicsIntRemoveQueen���������������������elmcoreBasicsIntelmcoreBasicsIntClearQueens�����������������������ChangeBoardSize���������������������elmcoreBasicsIntSolve�����������������������ReceivedSolution��������������������� elmcoreResultResultelmhttpHttpErrorelmcoreListListelmcoreListListelmcoreBasicsIntNoOp��������������������������������������Flags��������Model���������������id��elmcoreBasicsIntqueens�elmcoreSetSetelmcoreBasicsIntelmcoreBasicsInt�size�elmcoreBasicsInt���������
elmcorePlatformProgramauthorprojectQueensFlags��������authorprojectQueensModel���������������id��elmcoreBasicsIntqueens��elmcoreSetSetelmcoreBasicsIntelmcoreBasicsInt�size��elmcoreBasicsIntstatus��elmcoreMaybeMaybeauthorprojectQueensStatus�authorprojectQueensMsg�������Msg���������������AddQueen����������������������elmcoreBasicsIntelmcoreBasicsIntRemoveQueen���������������������elmcoreBasicsIntelmcoreBasicsIntClearQueens�����������������������ChangeBoardSize���������������������elmcoreBasicsIntSolve�����������������������ReceivedSolution��������������������� elmcoreResultResultelmhttpHttpErrorelmcoreListListelmcoreListListelmcoreBasicsIntNoOp�������������������������������Status���������������Solved������������������������
Unsolvable�������������������������������������Flags��������Model���������������id��elmcoreBasicsIntqueens�elmcoreSetSetelmcoreBasicsIntelmcoreBasicsInt�size�elmcoreBasicsIntstatus�elmcoreMaybeMaybeauthorprojectQueensStatus���������