Skip to content
Snippets Groups Projects
Select Git revision
  • 5b8fca201e5e4154b9391760d6bba22f65a699a8
  • master default protected
  • 100-upgrade-framework-and-dependencies
  • 65-improve-app-metadata
  • Release_1.8.0_80 protected
  • Release_1.7.2_79 protected
  • Release_1.7.1_78 protected
  • Release_1.7.0_77 protected
  • Release_1.6.0_76 protected
  • Release_1.5.0_75 protected
  • Release_1.4.0_74 protected
  • Release_1.3.2_73 protected
  • Release_1.3.1_72 protected
  • Release_1.3.0_71 protected
  • Release_1.2.1_70 protected
  • Release_1.2.0_69 protected
  • Release_1.1.3_68 protected
  • Release_1.1.2_67 protected
  • Release_1.1.1_66 protected
  • Release_1.1.0_65 protected
  • Release_1.0.63_64 protected
  • Release_1.0.62_63 protected
  • Release_1.0.61_62 protected
  • Release_1.0.60_61 protected
24 results

WorkspaceSettings.xcsettings

Blame
  • game_utils.dart 3.14 KiB
    import 'dart:async';
    import 'dart:math';
    import 'dart:typed_data';
    
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart' show rootBundle;
    import 'package:image/image.dart' as imglib;
    import 'package:puzzlegame/entities/moving_tile.dart';
    import 'package:puzzlegame/entities/tile.dart';
    import 'package:puzzlegame/provider/data.dart';
    
    class GameUtils {
      static String getImageAssetName(String imageCode) {
        return 'assets/images/' + imageCode + '.png';
      }
    
      static startGame(Data myProvider, String imageCode) {
        myProvider.updateIsShufflingBoard(true);
        myProvider.updateSelectedImage(imageCode);
    
        new Timer(new Duration(seconds: 1), () {
          GameUtils.splitImageInTiles(myProvider);
        });
      }
    
      static startRandomGame(Data myProvider) {
        List sizes = [3, 4, 5];
        sizes.shuffle();
        myProvider.updateTilesCount(sizes[0]);
    
        List images = myProvider.availableImages;
        images.shuffle();
    
        startGame(myProvider, images[0]);
      }
    
      static Future<void> resetGame(Data myProvider) async {
        myProvider.resetSelectedImage();
        myProvider.updateIsTipImageDisplayed(false);
      }
    
      static bool checkTilesetIsCleared(List<MovingTile> tiles) {
        for (Tile tile in tiles) {
          if (!tile.isCorrect()) {
            return false;
          }
        }
        return true;
      }
    
      static List<MovingTile> shuffleMovingTiles(List<MovingTile> tiles) {
        var random = new Random();
        int tilesCount = tiles.length;
    
        for (int i = 0; i < (10 * tilesCount); i++) {
          int indexTile1 = random.nextInt(tilesCount);
          int indexTile2 = random.nextInt(tilesCount);
    
          MovingTile swap = tiles[indexTile1];
          tiles[indexTile1] = tiles[indexTile2];
          tiles[indexTile2] = swap;
    
          int swapCol = tiles[indexTile1].currentCol;
          tiles[indexTile1].currentCol = tiles[indexTile2].currentCol;
          tiles[indexTile2].currentCol = swapCol;
    
          int swapRow = tiles[indexTile1].currentRow;
          tiles[indexTile1].currentRow = tiles[indexTile2].currentRow;
          tiles[indexTile2].currentRow = swapRow;
        }