Correction model (UUID to int), more test and complete function for User and Game Manager

pull/20/head
Emre KARTAL 2 years ago
parent aa18451fce
commit 477bea5aa5

@ -1,20 +1,18 @@
import 'package:uuid/uuid.dart';
class Game {
Uuid _id;
int _id;
DateTime _time;
int _pointsCurrentUser;
bool _isFinished;
List<Uuid> _playersId = [];
List<int> _playersId = [];
// Constructor
Game(this._id, this._time, this._pointsCurrentUser, this._isFinished,
this._playersId);
// Getters and setters
Uuid get id => _id;
int get id => _id;
set id(Uuid value) {
set id(int value) {
_id = value;
}
@ -36,9 +34,9 @@ class Game {
_isFinished = value;
}
List<Uuid> get playersId => _playersId;
List<int> get playersId => _playersId;
set playersId(List<Uuid> value) {
set playersId(List<int> value) {
_playersId = value;
}
}

@ -1,17 +1,14 @@
import 'dart:developer';
import 'package:uuid/uuid.dart';
import 'Player.dart';
import 'Round.dart';
class GameDetail {
Uuid _id;
int _id;
DateTime _time;
Uuid _winner;
int _winner;
int _nbPoints;
bool _isFinished;
Round? _currentRound;
Uuid _host;
int _host;
List<Round> _rounds = [];
List<Player> _players = [];
@ -28,9 +25,9 @@ class GameDetail {
this._players);
// Getters and setters
Uuid get id => _id;
int get id => _id;
set id(Uuid value) {
set id(int value) {
_id = value;
}
@ -40,9 +37,9 @@ class GameDetail {
_time = value;
}
Uuid get winner => _winner;
int get winner => _winner;
set winner(Uuid value) {
set winner(int value) {
_winner = value;
}
@ -64,9 +61,9 @@ class GameDetail {
_currentRound = value;
}
Uuid get host => _host;
int get host => _host;
set host(Uuid value) {
set host(int value) {
_host = value;
}
@ -82,10 +79,10 @@ class GameDetail {
_players = value;
}
int getPointByPlayerId(Uuid uuid) {
int getPointByPlayerId(int id) {
int pointPlayer = 0;
for (var player in players) {
if (player.id == uuid) {
if (player.id == id) {
for (var element in rounds) {
if (element.player == player) {
pointPlayer += element.points;
@ -97,8 +94,8 @@ class GameDetail {
throw Exception("Player not in the game.");
}
Map<Uuid, int> getRank() {
Map<Uuid, int> rank = {};
Map<int, int> getRank() {
Map<int, int> rank = {};
for (var player in players) {
rank.addAll({player.id: this.getPointByPlayerId(player.id)});

@ -4,5 +4,5 @@ import 'Player.dart';
class Guest extends Player {
// Constructor
Guest(Uuid id, String image, String name) : super(id, image, name);
Guest(int id, String image, String name) : super(id, image, name);
}

@ -1,15 +1,13 @@
import 'package:uuid/uuid.dart';
import 'package:uuid/uuid_util.dart';
import 'GameDetail.dart';
import 'Player.dart';
import 'User.dart';
abstract class IGameManager {
// Methods
GameDetail getGameById(Uuid id);
List<GameDetail> getGamesByPlayerId(Uuid id);
GameDetail getGameById(int id);
List<GameDetail> getGamesByPlayerId(int id);
List<GameDetail> getGamesByPlayer(Player user);
List<GameDetail> getGamesByPlayers(List<Player> users);
List<User> getPlayersByIdGame(Uuid id);
Map<int, Uuid> getRankByIdGame(Uuid id);
List<User> getPlayersByIdGame(int id);
Map<int, int> getRankByIdGame(int id);
}

@ -1,5 +1,5 @@
import 'package:uuid/uuid.dart';
import 'User.dart';
import 'Player.dart';
import 'IAuthManager.dart';
abstract class IUserManager {
@ -10,6 +10,6 @@ abstract class IUserManager {
// Methods
IAuthManager get authMgr => _authMgr;
List<User> getUsersByName(String name);
User getUserById(Uuid id);
List<Player> getUsersByName(String name);
Player getUserById(int id);
}

@ -1,7 +1,5 @@
import 'package:uuid/uuid.dart';
class Player {
final Uuid _id;
final int _id;
String _name;
String _image;
@ -9,7 +7,7 @@ class Player {
Player(this._id, this._name, this._image);
// Getters and setters
Uuid get id => _id;
int get id => _id;
String get name => _name;

@ -7,17 +7,15 @@ import '../Player.dart';
import '../User.dart';
import '../Guest.dart';
import 'StubData.dart';
import 'package:uuid/uuid.dart';
class GameManager extends IGameManager {
List<GameDetail> games = [];
final StubData parent;
// Constructor
GameManager(this.parent);
// Methods
GameDetail getGameById(Uuid id) {
GameDetail getGameById(int id) {
for (var element in parent.gameDetails) {
if (element.id == id) {
return element;
@ -26,29 +24,47 @@ class GameManager extends IGameManager {
throw Exception("Game not found.");
}
List<GameDetail> getGamesByPlayerId(Uuid id) {
List<GameDetail> getGamesByPlayerId(int id) {
List<GameDetail> games = [];
for (var element in parent.gameDetails) {
if (element.players.contains(id)) {
games.add(element);
for (Player player in element.players) {
if (player.id == id) {
games.add(element);
break;
}
}
}
throw Exception("Game not found.");
return games;
}
List<GameDetail> getGamesByPlayer(Player user) {
return [];
List<GameDetail> games = [];
for (var element in parent.gameDetails) {
for (Player player in element.players) {
if (player.id == user.id) {
games.add(element);
break;
}
}
}
return games;
}
List<GameDetail> getGamesByPlayers(List<Player> users) {
return [];
List<GameDetail> games = [];
for (var element in parent.gameDetails) {
if (element.players.toSet().containsAll(users.toSet())) {
games.add(element);
}
}
return games;
}
List<User> getPlayersByIdGame(Uuid id) {
List<User> getPlayersByIdGame(int id) {
return [];
}
Map<int, Uuid> getRankByIdGame(Uuid id) {
Map<int, int> getRankByIdGame(int id) {
return {};
}
}

@ -13,7 +13,6 @@ import '../GameDetail.dart';
import '../Stat.dart';
import 'UserManager.dart';
import 'GameManager.dart';
import 'package:uuid/uuid.dart';
class StubData extends IManager {
late IUserManager _userMgr;
@ -25,21 +24,23 @@ class StubData extends IManager {
_initRounds();
_initGameDetails();
_initGame();
}
List<Player> players = [
Player(Uuid(), "Mathieu", "./assets/images/image_user_cyan.png"),
Player(Uuid(), "Robin", "./assets/images/image_user_purple.png"),
Player(Uuid(), "Lucas", "./assets/images/image_user_red.png"),
Player(Uuid(), "Emre", "./assets/images/image_user_blue.png"),
Player(Uuid(), "Louison", "./assets/images/image_user_cyan.png"),
Player(Uuid(), "Arthur", "./assets/images/image_user_yellow.png"),
Player(Uuid(), "David", "./assets/images/image_user_pink.png"),
];
IUserManager get userMgr => _userMgr;
IGameManager get gameMgr => _gameMgr;
List<User> users = [
List<Player> players = [
Player(1, "Mathieu", "./assets/images/image_user_cyan.png"),
Player(2, "Robin", "./assets/images/image_user_purple.png"),
Player(3, "Lucas", "./assets/images/image_user_red.png"),
Player(4, "Emre", "./assets/images/image_user_blue.png"),
Player(5, "Louison", "./assets/images/image_user_cyan.png"),
Player(6, "Arthur", "./assets/images/image_user_yellow.png"),
Player(7, "David", "./assets/images/image_user_pink.png"),
User(
Uuid(),
8,
"Emre",
"https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4",
"emre.kartal@etu.uca.fr",
@ -49,9 +50,10 @@ class StubData extends IManager {
Achievement("Win a game")
],
[],
Stat(10, 2, 12, 130, 7, 6, 700, 58.33, 30.2)),
Stat(10, 2, 12, 130, 7, 6, 700, 58.33, 30.2)
),
User(
Uuid(),
9,
"Dave",
"https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4",
"david.d_almeida@etu.uca.fr",
@ -61,45 +63,51 @@ class StubData extends IManager {
Achievement("Win a game")
],
[],
Stat(2, 7, 9, 80, 4, 3, 250, 27.77, 10.55))
Stat(2, 7, 9, 80, 4, 3, 250, 27.77, 10.55)
)
];
List<GameDetail> gameDetails = [];
List<GameDetail> _gameDetails = [];
void _initGameDetails() {
var uui = Uuid();
gameDetails.add(GameDetail(Uuid(), DateTime.now(), users[0].id, 123, true,
null, users[0].id, rounds, [players[0], players[1]]));
gameDetails.add(GameDetail(Uuid(), DateTime.now(), users[1].id, 113, true,
null, users[1].id, rounds, [players[0], players[1]]));
gameDetails.add(GameDetail(1, DateTime.now(), players[7].id, 123, true,
null, players[7].id, rounds, [players[0], players[1]]));
gameDetails.add(GameDetail(2, DateTime.now(), players[8].id, 113, true,
null, players[8].id, rounds, [players[0], players[1], players[2]]));
}
List<Round> rounds = [];
List<GameDetail> get gameDetails => _gameDetails;
List<Round> _rounds = [];
void _initRounds() {
rounds.add(Round(4, 5, 9, users[0]));
rounds.add(Round(4, 1, 5, users[1]));
rounds.add(Round(4, 5, 9, users[0]));
rounds.add(Round(4, 1, 5, users[1]));
rounds.add(Round(4, 5, 9, users[0]));
rounds.add(Round(1, 5, 6, users[1]));
rounds.add(Round(4, 1, 5, users[0]));
rounds.add(Round(1, 5, 6, users[1]));
rounds.add(Round(4, 5, 9, users[0]));
rounds.add(Round(9, 0, 9, users[1]));
rounds.add(Round(4, 5, 9, users[0]));
rounds.add(Round(4, 5, 9, users[1]));
rounds.add(Round(4, 2, 6, users[0]));
rounds.add(Round(3, 5, 8, users[1]));
rounds.add(Round(4, 5, 9, users[0]));
rounds.add(Round(4, 5, 9, users[1]));
rounds.add(Round(1, 5, 6, users[0]));
rounds.add(Round(4, 5, 9, users[1]));
rounds.add(Round(4, 5, 9, users[0]));
rounds.add(Round(4, 1, 5, users[1]));
rounds.add(Round(4, 5, 9, players[7]));
rounds.add(Round(4, 1, 5, players[8]));
rounds.add(Round(4, 5, 9, players[7]));
rounds.add(Round(4, 1, 5, players[8]));
rounds.add(Round(4, 5, 9, players[7]));
rounds.add(Round(1, 5, 6, players[8]));
rounds.add(Round(4, 1, 5, players[7]));
rounds.add(Round(1, 5, 6, players[8]));
rounds.add(Round(4, 5, 9, players[7]));
rounds.add(Round(9, 0, 9, players[8]));
rounds.add(Round(4, 5, 9, players[7]));
rounds.add(Round(4, 5, 9, players[8]));
rounds.add(Round(4, 2, 6, players[7]));
rounds.add(Round(3, 5, 8, players[8]));
rounds.add(Round(4, 5, 9, players[7]));
rounds.add(Round(4, 5, 9, players[8]));
rounds.add(Round(1, 5, 6, players[7]));
rounds.add(Round(4, 5, 9, players[8]));
rounds.add(Round(4, 5, 9, players[7]));
rounds.add(Round(4, 1, 5, players[8]));
}
List<Round> get rounds => _rounds;
List<Game> games = [];
List<Game> _games = [];
void _initGame() {
games.add(Game(gameDetails[0].id, DateTime.now(), 123, true, []));
games.add(Game(gameDetails[1].id, DateTime.now(), 101, true, []));
}
List<Game> get games => _games;
}

@ -3,9 +3,8 @@ import '../IUserManager.dart';
import '../IAuthManager.dart';
import 'AuthManager.dart';
import 'StubData.dart';
import '../User.dart';
import '../Player.dart';
import '../Stat.dart';
import 'package:uuid/uuid.dart';
class UserManager extends IUserManager {
final StubData parent;
@ -14,10 +13,26 @@ class UserManager extends IUserManager {
UserManager(this.parent):super(AuthManager(parent));
// Methods
List<User> getUsersByName(String name) {
return [];
List<Player> getUsersByName(String name) {
List<Player> players = [];
for (var player in parent.players)
{
if (player.name == name)
{
players.add(player);
}
}
return players;
}
User getUserById(Uuid id) {
return User(Uuid(),"","","",[],[], Stat(10,10,10,10,10,10,10,10,10));
Player getUserById(int id) {
for (var player in parent.players)
{
if (player.id == id)
{
return player;
}
}
throw new Exception("Player not found");
}
}

@ -1,4 +1,3 @@
import 'package:uuid/uuid.dart';
import 'Achievement.dart';
import 'Game.dart';
import 'Player.dart';
@ -12,7 +11,7 @@ class User extends Player {
List<Game> games = [];
// Constructor
User(Uuid id, String name, String image, this._mail, this._achievements,
User(int id, String name, String image, this._mail, this._achievements,
this._friends, this._stat)
: super(id, name, image);
@ -37,7 +36,7 @@ class User extends Player {
Stat get stat => _stat;
set stats(Stat value) {
set stat(Stat value) {
_stat = value;
}
}

@ -5,105 +5,120 @@ packages:
dependency: transitive
description:
name: archive
url: "https://pub.dartlang.org"
sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d
url: "https://pub.dev"
source: hosted
version: "3.3.6"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
url: "https://pub.dev"
source: hosted
version: "2.4.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.10.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted
version: "1.2.1"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
url: "https://pub.dartlang.org"
sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
url: "https://pub.dev"
source: hosted
version: "2.0.2"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.dartlang.org"
sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c"
url: "https://pub.dev"
source: hosted
version: "0.3.5"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted
version: "3.0.2"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
url: "https://pub.dartlang.org"
sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
url: "https://pub.dev"
source: hosted
version: "1.0.5"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
url: "https://pub.dev"
source: hosted
version: "2.0.1"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.4"
flutter:
@ -115,14 +130,16 @@ packages:
dependency: "direct dev"
description:
name: flutter_launcher_icons
url: "https://pub.dartlang.org"
sha256: ce0e501cfc258907842238e4ca605e74b7fd1cdf04b3b43e86c43f3e40a1592c
url: "https://pub.dev"
source: hosted
version: "0.11.0"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
url: "https://pub.dartlang.org"
sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
url: "https://pub.dev"
source: hosted
version: "2.0.1"
flutter_test:
@ -139,175 +156,200 @@ packages:
dependency: "direct main"
description:
name: go_router
url: "https://pub.dartlang.org"
sha256: b4bb06205ec607278b6fc23db238278417bca84a3905779cc68d1eb7afae37e2
url: "https://pub.dev"
source: hosted
version: "6.2.0"
google_fonts:
dependency: "direct main"
description:
name: google_fonts
url: "https://pub.dartlang.org"
sha256: "8f099045e2f2a30e4d4d0a35f40c6bc941a8f2ca0e10ad9d214ee9edd3f37483"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
http:
dependency: transitive
description:
name: http
url: "https://pub.dartlang.org"
sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted
version: "0.13.5"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
image:
dependency: transitive
description:
name: image
url: "https://pub.dartlang.org"
sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6"
url: "https://pub.dev"
source: hosted
version: "3.3.0"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted
version: "0.6.4"
version: "0.6.5"
json_annotation:
dependency: transitive
description:
name: json_annotation
url: "https://pub.dartlang.org"
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
url: "https://pub.dev"
source: hosted
version: "4.8.0"
lints:
dependency: transitive
description:
name: lints
url: "https://pub.dartlang.org"
sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted
version: "0.12.12"
version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted
version: "1.8.2"
path_provider:
dependency: transitive
description:
name: path_provider
url: "https://pub.dartlang.org"
sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9"
url: "https://pub.dev"
source: hosted
version: "2.0.13"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
url: "https://pub.dartlang.org"
sha256: "7623b7d4be0f0f7d9a8b5ee6879fc13e4522d4c875ab86801dee4af32b54b83e"
url: "https://pub.dev"
source: hosted
version: "2.0.23"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
url: "https://pub.dartlang.org"
sha256: eec003594f19fe2456ea965ae36b3fc967bc5005f508890aafe31fa75e41d972
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
sha256: "525ad5e07622d19447ad740b1ed5070031f7a5437f44355ae915ff56e986429a"
url: "https://pub.dev"
source: hosted
version: "2.1.9"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
url: "https://pub.dev"
source: hosted
version: "2.0.6"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
sha256: "642ddf65fde5404f83267e8459ddb4556316d3ee6d511ed193357e25caa3632d"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
petitparser:
dependency: transitive
description:
name: petitparser
url: "https://pub.dartlang.org"
sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4"
url: "https://pub.dev"
source: hosted
version: "5.1.0"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
pointycastle:
dependency: transitive
description:
name: pointycastle
url: "https://pub.dartlang.org"
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
url: "https://pub.dev"
source: hosted
version: "3.6.2"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.4"
simple_gradient_text:
dependency: "direct main"
description:
name: simple_gradient_text
url: "https://pub.dartlang.org"
sha256: "075a2cbabac021d3713d0d199b2d1b0d40f6293e1e9d37b25e84936ae43c90fa"
url: "https://pub.dev"
source: hosted
version: "1.2.4"
sky_engine:
@ -319,91 +361,104 @@ packages:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted
version: "0.4.12"
version: "0.4.16"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
uuid:
dependency: "direct main"
description:
name: uuid
url: "https://pub.dartlang.org"
sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
url: "https://pub.dev"
source: hosted
version: "3.0.7"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
version: "2.1.4"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
url: "https://pub.dev"
source: hosted
version: "3.1.3"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
url: "https://pub.dev"
source: hosted
version: "1.0.0"
xml:
dependency: transitive
description:
name: xml
url: "https://pub.dartlang.org"
sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb
url: "https://pub.dev"
source: hosted
version: "6.1.0"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
sdks:

@ -5,9 +5,9 @@ import '../lib/model/Stat.dart';
import '../lib/model/Round.dart';
import '../lib/model/GameDetail.dart';
import '../lib/model/StubManager/StubData.dart';
import '../lib/model/IManager.dart';
import 'dart:math';
import '../lib/model/Achievement.dart';
import 'package:uuid/uuid.dart';
void main() {
List<Stat> stats = [];
@ -30,12 +30,11 @@ void main() {
print("Stats:");
for (var stat in stats) {
print(
"\tVictoires: ${stat.nbVictory}, Défaites: ${stat.nbDefeat}, Parties jouées: ${stat.nbGames}, Meilleur score: ${stat.highscore}, Nombre de strikes: ${stat.nbStrikes}, Nom de spares: ${stat.nbStrikes}, Moyenne score: ${stat.avgScore}, Moyenne score par round: ${stat.avgPinsPerRound}");
print("\tVictoires: ${stat.nbVictory}, Défaites: ${stat.nbDefeat}, Parties jouées: ${stat.nbGames}, Meilleur score: ${stat.highscore}, Nombre de strikes: ${stat.nbStrikes}, Nom de spares: ${stat.nbStrikes}, Moyenne score: ${stat.avgScore}, Moyenne score par round: ${stat.avgPinsPerRound}");
}
User ami = User(
Uuid(),
5,
"Lucas",
"https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY",
"Lucas.delanier@etu.uca.fr",
@ -44,17 +43,17 @@ void main() {
stats[1]);
List<Player> players = [
Player(Uuid(), "Rami",
Player(1, "Rami",
"https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4"),
Player(Uuid(), "Emre",
Player(2, "Emre",
"https://fastly.picsum.photos/id/670/2000/2000.jpg?hmac=zWqTr_vDEab3dBtp7JZgJP8TRCPNanJ4tYwDDd-jGYA"),
Guest(Uuid(), "Bot1",
Guest(3, "Bot1",
"https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4"),
Guest(Uuid(), "Bot2",
Guest(4, "Bot2",
"https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY"),
ami,
User(
Uuid(),
6,
"Louison",
"https://fastly.picsum.photos/id/1029/2000/2000.jpg?hmac=_K3pMobVk00dfNR7rsj1NLnEBB5Gf88SvGPbbjoH-Uc",
"louison.parant@etu.uca.fr",
@ -70,33 +69,14 @@ void main() {
print("Players :");
// afficahge de toutes les informations de tous les joueurs
for (var player in players) {
if (player is Guest) {
print(
"\tID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Guest");
} else if (player is User) {
print(
"\tID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: User");
print("\tAchievements:");
for (var achievement in player.achievements) {
print("\t\tNom: ${achievement.name}");
}
print("\tAmis:");
for (var amis in player.friends) {
print("\t\tNom: ${amis.name}, Mail: ${amis.mail}");
}
print(
"\tVictoires: ${player.stat.nbVictory}, Défaites: ${player.stat.nbDefeat}, Parties jouées: ${player.stat.nbGames}, Meilleur score: ${player.stat.highscore}, Nombre de strikes: ${player.stat.nbStrikes}, Nom de spares: ${player.stat.nbStrikes}, Moyenne score: ${player.stat.avgScore}, Moyenne score par round: ${player.stat.avgPinsPerRound}");
} else {
print(
"\tID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Player");
}
displayPlayer(player,1);
}
//GameDetail
List<GameDetail> games = [
GameDetail(
Uuid(), DateTime.now(), players[0].id, 290, true, null, players[0].id, [
1, DateTime.now(), players[0].id, 290, true, null, players[0].id, [
Round(10, null, 10, players[0]),
Round(5, 2, 7, players[1]),
Round(5, 1, 12, players[0]),
@ -105,7 +85,7 @@ void main() {
players[0],
players[1]
]),
GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 2)),
GameDetail(2, DateTime.now().subtract(Duration(days: 2)),
players[1].id, 250, true, null, players[1].id, [
Round(7, null, 7, players[1]),
Round(3, 3, 9, players[0]),
@ -115,7 +95,7 @@ void main() {
players[0],
players[1]
]),
GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 4)),
GameDetail(3, DateTime.now().subtract(Duration(days: 4)),
players[2].id, 210, false, null, players[2].id, [
Round(8, 2, 10, players[2]),
Round(6, 2, 8, players[1]),
@ -126,13 +106,13 @@ void main() {
players[2]
]),
GameDetail(
Uuid(),
DateTime.now().subtract(Duration(days: 7)),
players[3].id,
120,
true,
Round(12, null, 12, players[3]),
players[3].id, [
4,
DateTime.now().subtract(Duration(days: 7)),
players[3].id,
120,
true,
Round(12, null, 12, players[3]),
players[3].id, [
Round(12, null, 12, players[3]),
Round(7, 3, 10, players[2]),
Round(6, 2, 8, players[1]),
@ -143,7 +123,7 @@ void main() {
players[2],
players[3]
]),
GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 10)),
GameDetail(5, DateTime.now().subtract(Duration(days: 10)),
players[4].id, 280, true, null, players[4].id, [
Round(9, 1, 10, players[4]),
Round(7, 3, 10, players[2]),
@ -155,8 +135,8 @@ void main() {
players[3],
players[4]
]),
GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 12)),
players[1].id, 240, true, null, players[1].id, [
GameDetail(6, DateTime.now().subtract(Duration(days: 12)),
players[1].id, 240, true, null, players[1].id, [
Round(7, null, 7, players[1]),
Round(5, 2, 7, players[2]),
Round(6, 2, 8, players[1]),
@ -167,7 +147,7 @@ void main() {
players[2],
players[4]
]),
GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 15)),
GameDetail(7, DateTime.now().subtract(Duration(days: 15)),
players[2].id, 200, true, null, players[2].id, [
Round(8, 2, 10, players[2]),
Round(4, 2, 6, players[1]),
@ -183,31 +163,98 @@ void main() {
print("GameDetail :");
for (var game in games) {
print("\tGame ID: ${game.id}");
print("\tTime: ${game.time}");
print("\tWinner: ${game.winner}");
print("\tNumber of Points: ${game.nbPoints}");
print("\tIs Finished: ${game.isFinished}");
print("\tCurrent Round: ${game.currentRound}");
print("\tHost: ${game.host}");
print("\tRank: ${game.getRank()}");
print("\tRounds:");
for (var round in game.rounds) {
print("\t\tRound Score: ${round.firstThrow}");
print("\t\tRound Bonus: ${round.secondThrow}");
print("\t\tRound Total: ${round.points}");
print("\t\tRound Player: ${round.player.name}");
}
displayGameDetail(game,1);
print("\t-----------------------------------------");
}
print("StubManager:");
IManager mgr = new StubData();
print("\tPlayers:");
for (var player in game.players) {
print("\t\tPlayer ID: ${player.id}");
print("\t\tPlayer Name: ${player.name}");
}
print("\tGameManager:");
print("\t-----------------------------------------");
print("\tgetGameById function with id: 2");
GameDetail gd = mgr.gameMgr.getGameById(2);
displayGameDetail(gd,2);
print("\tgetGamesByPlayerId function with id: 2");
List<GameDetail> gds = mgr.gameMgr.getGamesByPlayerId(3);
for (var game in gds)
{
displayGameDetail(game,2);
}
print("\tgetGamesByPlayer function:");
var player = mgr.userMgr.getUserById(3);
List<GameDetail> gdsPlayer = mgr.gameMgr.getGamesByPlayer(player);
for (var game in gdsPlayer)
{
displayGameDetail(game,2);
}
print("\tgetGamesByPlayers:");
var player2 = mgr.userMgr.getUserById(2);
List<Player> playersTest = [player,player2];
List<GameDetail> gdsPlayers = mgr.gameMgr.getGamesByPlayers(playersTest);
for (var game in gdsPlayers)
{
displayGameDetail(game,2);
}
}
void displayGameDetail(GameDetail gd, int numTabs)
{
String tabs = '\t' * numTabs;
print(tabs+"Game ID: ${gd.id}");
print(tabs+"Time: ${gd.time}");
print(tabs+"Winner: ${gd.winner}");
print(tabs+"Number of Points: ${gd.nbPoints}");
print(tabs+"Is Finished: ${gd.isFinished}");
print(tabs+"Current Round: ${gd.currentRound}");
print(tabs+"Host: ${gd.host}");
print(tabs+"Rank: ${gd.getRank()}");
print(tabs+"Rounds:");
for (var round in gd.rounds) {
displayRound(round, numTabs+1);
}
print(tabs+"Players:");
for (var player in gd.players) {
displayPlayer(player, numTabs+1);
}
}
void displayRound(Round round, int numTabs)
{
String tabs = '\t' * numTabs;
print(tabs+"Round Score: ${round.firstThrow}");
print(tabs+"Round Bonus: ${round.secondThrow}");
print(tabs+"Round Total: ${round.points}");
print(tabs+"Round Player: ${round.player.name}");
}
print("StubManager:");
void displayPlayer(Player player, int numTabs)
{
String tabs = '\t' * numTabs;
if (player is Guest) {
print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Guest");
} else if (player is User) {
print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: User");
print(tabs+"Achievements:");
for (var achievement in player.achievements) {
displayAchievement(achievement, numTabs+1);
}
print(tabs+"Amis:");
for (var amis in player.friends) {
print("\t\tNom: ${amis.name}, Mail: ${amis.mail}");
}
print(tabs+"Victoires: ${player.stat.nbVictory}, Défaites: ${player.stat.nbDefeat}, Parties jouées: ${player.stat.nbGames}, Meilleur score: ${player.stat.highscore}, Nombre de strikes: ${player.stat.nbStrikes}, Nom de spares: ${player.stat.nbStrikes}, Moyenne score: ${player.stat.avgScore}, Moyenne score par round: ${player.stat.avgPinsPerRound}");
} else {
print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Player");
}
}
void displayAchievement(Achievement achievement, int numTabs)
{
String tabs = '\t' * numTabs;
print(tabs+"Nom: ${achievement.name}");
}
Loading…
Cancel
Save