You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
854 B

2 years ago
  1. import 'dart:developer';
  2. import 'package:flutter/material.dart';
  3. import 'package:my_flutter_puzzle/utils/puzzle_solver.dart';
  4. class Helpers {
  5. static Map<int, FractionalOffset> createOffset(
  6. List<int> board,
  7. PuzzleSolverClient solverClient,
  8. ) {
  9. Map<int, FractionalOffset> offsetMap = {};
  10. int j = 0;
  11. log('BOARD: $board');
  12. for (int i = 0; i < board.length; i++) {
  13. var _puzzleSize = solverClient.size;
  14. final xMod = i % _puzzleSize;
  15. double x = xMod / (_puzzleSize - 1);
  16. if (x % i == 0 && i != 0) j++;
  17. int yMod = j % _puzzleSize;
  18. double y = yMod / (_puzzleSize - 1);
  19. offsetMap.addEntries([
  20. MapEntry<int, FractionalOffset>(
  21. board[i],
  22. FractionalOffset(x, y),
  23. )
  24. ]);
  25. }
  26. log('INITIAL OFFSET MAP: $offsetMap');
  27. return offsetMap;
  28. }
  29. }