Skip to content
Snippets Groups Projects
Commit 6914731f authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '17-avoid-print-calls-in-production-code' into 'master'

Resolve "Avoid print calls in production code"

Closes #17

See merge request !16
parents 7b563fee a3449975
No related branches found
No related tags found
1 merge request!16Resolve "Avoid print calls in production code"
Pipeline #5352 canceled
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.14
app.versionCode=14
app.versionName=0.0.15
app.versionCode=15
Avoid print calls in production code.
Supprime les appels à print dans le code de production.
......@@ -46,7 +46,7 @@ class Tile {
},
onAcceptWithDetails: (DragTargetDetails<List<int>> source) {
List<int> target = [currentCol, currentRow];
// print('(drag) Pick from ' + source.toString() + ' and drop on ' + target.toString());
// printlog('(drag) Pick from ' + source.toString() + ' and drop on ' + target.toString());
if (GameUtils.isMoveAllowed(myProvider, source.data, target)) {
GameUtils.move(myProvider, source.data, target);
}
......
......@@ -2,6 +2,7 @@ import 'dart:math';
import 'package:solitaire_game/entities/tile.dart';
import 'package:solitaire_game/provider/data.dart';
import 'package:solitaire_game/utils/tools.dart';
class BoardUtils {
static printGrid(List cells) {
......@@ -9,8 +10,8 @@ class BoardUtils {
String textHole = '·';
String textPeg = 'o';
print('');
print('-------');
printlog('');
printlog('-------');
for (int rowIndex = 0; rowIndex < cells.length; rowIndex++) {
String row = '';
for (int colIndex = 0; colIndex < cells[rowIndex].length; colIndex++) {
......@@ -21,10 +22,10 @@ class BoardUtils {
}
row += textCell;
}
print(row);
printlog(row);
}
print('-------');
print('');
printlog('-------');
printlog('');
}
static List<List<Tile?>> createBoardFromSavedState(Data myProvider, String savedBoard) {
......
import 'package:solitaire_game/entities/tile.dart';
import 'package:solitaire_game/provider/data.dart';
import 'package:solitaire_game/utils/board_utils.dart';
import 'package:solitaire_game/utils/tools.dart';
class GameUtils {
static Future<void> quitGame(Data myProvider) async {
......@@ -13,7 +14,7 @@ class GameUtils {
}
static Future<void> startNewGame(Data myProvider) async {
print('Starting game');
printlog('Starting game');
BoardUtils.createNewBoard(myProvider);
......@@ -36,7 +37,7 @@ class GameUtils {
myProvider.updateGameIsRunning(true);
} catch (e) {
print('Failed to resume game. Will start new one instead.');
printlog('Failed to resume game. Will start new one instead.');
myProvider.resetCurrentSavedState();
myProvider.initParametersValues();
startNewGame(myProvider);
......@@ -49,7 +50,7 @@ class GameUtils {
}
static bool isMoveAllowed(Data myProvider, List<int> source, List<int> target) {
// print('(test) Pick from ' + source.toString() + ' and drop on ' + target.toString());
// printlog('(test) Pick from ' + source.toString() + ' and drop on ' + target.toString());
List<List<Tile?>> board = myProvider.board;
int sourceCol = source[0];
int sourceRow = source[1];
......@@ -61,39 +62,39 @@ class GameUtils {
sourceRow > (myProvider.boardSize - 1) ||
sourceCol < 0 ||
sourceCol > (myProvider.boardSize - 1)) {
// print('move forbidden: source is out of board');
// printlog('move forbidden: source is out of board');
return false;
}
if (targetRow < 0 ||
targetRow > (myProvider.boardSize - 1) ||
targetCol < 0 ||
targetCol > (myProvider.boardSize - 1)) {
// print('move forbidden: target is out of board');
// printlog('move forbidden: target is out of board');
return false;
}
// ensure source exists and has a peg
if (board[sourceRow][sourceCol] == null || board[sourceRow][sourceCol]?.hasPeg == false) {
// print('move forbidden: source peg does not exist');
// printlog('move forbidden: source peg does not exist');
return false;
}
// ensure target exists and is empty
if (board[targetRow][targetCol] == null || board[targetRow][targetCol]?.hasPeg == true) {
// print('move forbidden: target does not exist or already with a peg');
// printlog('move forbidden: target does not exist or already with a peg');
return false;
}
// ensure source and target are in the same line/column
if ((targetCol != sourceCol) && (targetRow != sourceRow)) {
// print('move forbidden: source and target are not in the same line or column');
// printlog('move forbidden: source and target are not in the same line or column');
return false;
}
// ensure source and target are separated by exactly one tile
if (((targetCol == sourceCol) && ((targetRow - sourceRow).abs() != 2)) ||
((targetRow == sourceRow) && ((targetCol - sourceCol).abs() != 2))) {
// print('move forbidden: source and target must be separated by exactly one tile');
// printlog('move forbidden: source and target must be separated by exactly one tile');
return false;
}
......@@ -101,7 +102,7 @@ class GameUtils {
int middleRow = (sourceRow + ((targetRow - sourceRow) / 2)).round();
int middleCol = (sourceCol + ((targetCol - sourceCol) / 2)).round();
if (board[middleRow][middleCol] == null || board[middleRow][middleCol]?.hasPeg == false) {
// print('move forbidden: tile between source and target does not contain a peg');
// printlog('move forbidden: tile between source and target does not contain a peg');
return false;
}
......@@ -110,7 +111,7 @@ class GameUtils {
}
static void move(Data myProvider, List<int> source, List<int> target) {
print('Move from $source to $target');
printlog('Move from $source to $target');
int sourceCol = source[0];
int sourceRow = source[1];
int targetCol = target[0];
......
import 'package:flutter/foundation.dart';
void printlog(String message) {
if (!kReleaseMode) {
debugPrint(message);
}
}
......@@ -151,10 +151,10 @@ packages:
dependency: "direct main"
description:
name: provider
sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096"
sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
url: "https://pub.dev"
source: hosted
version: "6.1.1"
version: "6.1.2"
shared_preferences:
dependency: "direct main"
description:
......
name: solitaire_game
description: Solitaire Game
publish_to: 'none'
version: 0.0.14+14
version: 0.0.15+15
environment:
sdk: '^3.0.0'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment