diff --git a/.idea/Bowl_in.iml b/.idea/Bowl_in.iml index eed4b67..f1b2d07 100644 --- a/.idea/Bowl_in.iml +++ b/.idea/Bowl_in.iml @@ -9,5 +9,7 @@ + + \ No newline at end of file diff --git a/Sources/bowlin_project/lib/model/Game.dart b/Sources/bowlin_project/lib/model/Game.dart index bf0065b..16cc875 100644 --- a/Sources/bowlin_project/lib/model/Game.dart +++ b/Sources/bowlin_project/lib/model/Game.dart @@ -5,10 +5,11 @@ class Game { DateTime _time; int _pointsCurrentUser; bool _isFinished; - List _playerImages = []; + List _playersId = []; // Constructor - Game(this._id, this._time, this._pointsCurrentUser, this._isFinished, this._playerImages); + Game(this._id, this._time, this._pointsCurrentUser, this._isFinished, + this._playersId); // Getters and setters Uuid get id => _id; @@ -35,9 +36,9 @@ class Game { _isFinished = value; } - List get playerImages => _playerImages; + List get playersId => _playersId; - set playerImages(List value) { - _playerImages = value; + set playersId(List value) { + _playersId = value; } } diff --git a/Sources/bowlin_project/lib/model/GameDetail.dart b/Sources/bowlin_project/lib/model/GameDetail.dart index 12a86f2..2085b49 100644 --- a/Sources/bowlin_project/lib/model/GameDetail.dart +++ b/Sources/bowlin_project/lib/model/GameDetail.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:uuid/uuid.dart'; import 'Player.dart'; import 'Round.dart'; @@ -9,7 +11,7 @@ class GameDetail { int _nbPoints; bool _isFinished; Round? _currentRound; - Player _host; + Uuid _host; List _rounds = []; List _players = []; @@ -24,7 +26,7 @@ class GameDetail { this._host, this._rounds, this._players); - + // Getters and setters Uuid get id => _id; @@ -62,9 +64,9 @@ class GameDetail { _currentRound = value; } - Player get host => _host; + Uuid get host => _host; - set host(Player value) { + set host(Uuid value) { _host = value; } @@ -79,4 +81,30 @@ class GameDetail { set players(List value) { _players = value; } + + int getPointByPlayerId(Uuid uuid) { + int pointPlayer = 0; + for (var player in players) { + if (player.id == uuid) { + for (var element in rounds) { + if (element.player == player) { + pointPlayer += element.points; + } + } + return pointPlayer; + } + } + throw Exception("Player not in the game."); + } + + Map getRank() { + Map rank = {}; + + for (var player in players) { + rank.addAll({player.id: this.getPointByPlayerId(player.id)}); + } + var sortedByKeyMap = Map.fromEntries( + rank.entries.toList()..sort((e1, e2) => e2.value.compareTo(e1.value))); + return sortedByKeyMap; + } } diff --git a/Sources/bowlin_project/lib/model/StubManager/GameManager.dart b/Sources/bowlin_project/lib/model/StubManager/GameManager.dart index 01b7dbb..a81b9bf 100644 --- a/Sources/bowlin_project/lib/model/StubManager/GameManager.dart +++ b/Sources/bowlin_project/lib/model/StubManager/GameManager.dart @@ -1,4 +1,6 @@ library StubLib; + +import '../Game.dart'; import '../IGameManager.dart'; import '../GameDetail.dart'; import '../Player.dart'; @@ -7,7 +9,6 @@ import '../Guest.dart'; import 'StubData.dart'; import 'package:uuid/uuid.dart'; - class GameManager extends IGameManager { List games = []; final StubData parent; @@ -17,21 +18,37 @@ class GameManager extends IGameManager { // Methods GameDetail getGameById(Uuid id) { - return new GameDetail(Uuid(), DateTime.now(), Uuid(), 290, true, null, Guest(Uuid(),"",""), [ ], [] ); + for (var element in parent.gameDetails) { + if (element.id == id) { + return element; + } + } + throw Exception("Game not found."); } + List getGamesByPlayerId(Uuid id) { - return []; + List games = []; + for (var element in parent.gameDetails) { + if (element.players.contains(id)) { + games.add(element); + } + } + throw Exception("Game not found."); } + List getGamesByPlayer(Player user) { - return []; + return []; } - List getGamesByPlayers(List users) { + + List getGamesByPlayers(List users) { return []; } + List getPlayersByIdGame(Uuid id) { return []; } + Map getRankByIdGame(Uuid id) { return {}; } -} \ No newline at end of file +} diff --git a/Sources/bowlin_project/lib/model/StubManager/StubData.dart b/Sources/bowlin_project/lib/model/StubManager/StubData.dart index 08b9dc4..0be09df 100644 --- a/Sources/bowlin_project/lib/model/StubManager/StubData.dart +++ b/Sources/bowlin_project/lib/model/StubManager/StubData.dart @@ -1,9 +1,15 @@ library StubLib; + +import 'package:bowl_in/model/Game.dart'; + import '../IManager.dart'; import '../IUserManager.dart'; import '../IGameManager.dart'; +import '../Player.dart'; +import '../Round.dart'; import '../User.dart'; import '../Achievement.dart'; +import '../GameDetail.dart'; import '../Stat.dart'; import 'UserManager.dart'; import 'GameManager.dart'; @@ -16,11 +22,84 @@ class StubData extends IManager { StubData() { _userMgr = UserManager(this); _gameMgr = GameManager(this); + _initRounds(); + _initGameDetails(); + _initGame(); } + List 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"), + ]; + List users = [ - User(Uuid(),"Emre","https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4","emre.kartal@etu.uca.fr", [Achievement("5 games"), Achievement("2 strikes in a row"), Achievement("Win a game")], [], Stat(10,2,12,130,7,6,700,58.33,30.2)), - User(Uuid(),"Dave","https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4","david.d_almeida@etu.uca.fr", [Achievement("5 games"), Achievement("0 point"), Achievement("Win a game")], [], Stat(2,7,9,80,4,3,250,27.77,10.55)) + User( + Uuid(), + "Emre", + "https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4", + "emre.kartal@etu.uca.fr", + [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], + [], + Stat(10, 2, 12, 130, 7, 6, 700, 58.33, 30.2)), + User( + Uuid(), + "Dave", + "https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4", + "david.d_almeida@etu.uca.fr", + [ + Achievement("5 games"), + Achievement("0 point"), + Achievement("Win a game") + ], + [], + Stat(2, 7, 9, 80, 4, 3, 250, 27.77, 10.55)) ]; -} \ No newline at end of file + List 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]])); + } + + List 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])); + } + + List games = []; + void _initGame() { + games.add(Game(gameDetails[0].id, DateTime.now(), 123, true, [])); + games.add(Game(gameDetails[1].id, DateTime.now(), 101, true, [])); + } +} diff --git a/Sources/bowlin_project/lib/model/User.dart b/Sources/bowlin_project/lib/model/User.dart index 0355054..23ccf7c 100644 --- a/Sources/bowlin_project/lib/model/User.dart +++ b/Sources/bowlin_project/lib/model/User.dart @@ -1,5 +1,6 @@ import 'package:uuid/uuid.dart'; import 'Achievement.dart'; +import 'Game.dart'; import 'Player.dart'; import 'Stat.dart'; @@ -8,9 +9,11 @@ class User extends Player { List _achievements = []; List _friends = []; Stat _stat; + List games = []; // Constructor - User(Uuid id, String name, String image, this._mail, this._achievements, this._friends, this._stat) + User(Uuid id, String name, String image, this._mail, this._achievements, + this._friends, this._stat) : super(id, name, image); // Getters and setters diff --git a/Sources/bowlin_project/pubspec.lock b/Sources/bowlin_project/pubspec.lock index da2a4e6..581d755 100644 --- a/Sources/bowlin_project/pubspec.lock +++ b/Sources/bowlin_project/pubspec.lock @@ -5,120 +5,105 @@ packages: dependency: transitive description: name: archive - sha256: ed7cc591a948744994714375caf9a2ce89e1d82e8243997c8a2994d57181c212 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.3.5" + version: "3.3.6" args: dependency: transitive description: name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.3.2" + version: "2.4.0" async: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.10.0" + version: "2.9.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.0" characters: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.1" checked_yaml: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.2" cli_util: dependency: transitive description: name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.3.5" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.1.1" collection: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.17.0" + version: "1.16.0" convert: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" crypto: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.5" fake_async: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.3.1" ffi: dependency: transitive description: name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" file: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.1.4" flutter: @@ -130,16 +115,14 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: ce0e501cfc258907842238e4ca605e74b7fd1cdf04b3b43e86c43f3e40a1592c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.11.0" flutter_lints: dependency: "direct dev" description: name: flutter_lints - sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" flutter_test: @@ -156,200 +139,175 @@ packages: dependency: "direct main" description: name: go_router - sha256: f611d4396469c46db1c61e934a86e2a590ce02de2a6050d01f677879ce151f4a - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "6.0.1" + version: "6.2.0" google_fonts: dependency: "direct main" description: name: google_fonts - sha256: "8f099045e2f2a30e4d4d0a35f40c6bc941a8f2ca0e10ad9d214ee9edd3f37483" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.1" http: dependency: transitive description: name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.13.5" http_parser: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.0.2" image: dependency: transitive description: name: image - sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.3.0" js: dependency: transitive description: name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.6.5" + version: "0.6.4" json_annotation: dependency: transitive description: name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.8.0" lints: dependency: transitive description: name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" logging: dependency: transitive description: name: logging - sha256: c0bbfe94d46aedf9b8b3e695cf3bd48c8e14b35e3b2c639e0aa7755d589ba946 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" matcher: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.12.13" + version: "0.12.12" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.2.0" + version: "0.1.5" meta: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.8.0" path: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.8.2" path_provider: dependency: transitive description: name: path_provider - sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.12" + version: "2.0.13" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.22" + version: "2.0.23" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "6637955e38a5f1851c023482c25a60c93972ea06c8608e2f25ad0064c46c0939" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.7" + version: "2.1.9" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.0.6" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "2.1.4" petitparser: dependency: transitive description: name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "5.1.0" platform: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "2.1.4" pointycastle: dependency: transitive description: name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.6.2" process: dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.2.4" simple_gradient_text: dependency: "direct main" description: name: simple_gradient_text - sha256: "075a2cbabac021d3713d0d199b2d1b0d40f6293e1e9d37b25e84936ae43c90fa" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.4" sky_engine: @@ -361,104 +319,91 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.9.1" + version: "1.9.0" stack_trace: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.11.0" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.1.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.1" test_api: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.4.16" + version: "0.4.12" typed_data: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.3.1" uuid: dependency: "direct main" description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.7" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.2" win32: dependency: transitive description: name: win32 - sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.3" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.2.0+3" + version: "1.0.0" xml: dependency: transitive description: name: xml - sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.1.0" yaml: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" sdks: diff --git a/Sources/bowlin_project/test/model_test.dart b/Sources/bowlin_project/test/model_test.dart index 25685c3..c4e01e8 100644 --- a/Sources/bowlin_project/test/model_test.dart +++ b/Sources/bowlin_project/test/model_test.dart @@ -15,57 +15,67 @@ void main() { for (int i = 0; i < 10; i++) { Stat stat = Stat( - random.nextInt(50) + 1, // valeur aléatoire entre 1 et 50 - random.nextInt(20) + 1, // valeur aléatoire entre 1 et 20 - random.nextInt(30) + 1, // valeur aléatoire entre 1 et 30 - random.nextInt(1000) + 1, // valeur aléatoire entre 1 et 1000 - random.nextInt(10) + 1, // valeur aléatoire entre 1 et 10 - random.nextInt(5) + 1, // valeur aléatoire entre 1 et 5 - random.nextInt(5000) + 1000, // valeur aléatoire entre 1000 et 6000 - random.nextInt(300) + 1, // valeur aléatoire entre 1 et 300 - random.nextDouble() * 10 // valeur aléatoire entre 0 et 10 - ); + random.nextInt(50) + 1, // valeur aléatoire entre 1 et 50 + random.nextInt(20) + 1, // valeur aléatoire entre 1 et 20 + random.nextInt(30) + 1, // valeur aléatoire entre 1 et 30 + random.nextInt(1000) + 1, // valeur aléatoire entre 1 et 1000 + random.nextInt(10) + 1, // valeur aléatoire entre 1 et 10 + random.nextInt(5) + 1, // valeur aléatoire entre 1 et 5 + random.nextInt(5000) + 1000, // valeur aléatoire entre 1000 et 6000 + random.nextInt(300) + 1, // valeur aléatoire entre 1 et 300 + random.nextDouble() * 10 // valeur aléatoire entre 0 et 10 + ); stats.add(stat); } 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(), "Lucas","https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY","Lucas.delanier@etu.uca.fr",[],[], stats[1]); + User ami = User( + Uuid(), + "Lucas", + "https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY", + "Lucas.delanier@etu.uca.fr", + [], + [], + stats[1]); List players = [ - Player(Uuid(), "Rami", "https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4"), - Player(Uuid(), "Emre", "https://fastly.picsum.photos/id/670/2000/2000.jpg?hmac=zWqTr_vDEab3dBtp7JZgJP8TRCPNanJ4tYwDDd-jGYA"), - Guest(Uuid(), "Bot1","https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4"), - Guest(Uuid(), "Bot2","https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY"), + Player(Uuid(), "Rami", + "https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4"), + Player(Uuid(), "Emre", + "https://fastly.picsum.photos/id/670/2000/2000.jpg?hmac=zWqTr_vDEab3dBtp7JZgJP8TRCPNanJ4tYwDDd-jGYA"), + Guest(Uuid(), "Bot1", + "https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4"), + Guest(Uuid(), "Bot2", + "https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY"), ami, User( - Uuid(), - "Louison", - "https://fastly.picsum.photos/id/1029/2000/2000.jpg?hmac=_K3pMobVk00dfNR7rsj1NLnEBB5Gf88SvGPbbjoH-Uc", - "louison.parant@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [ - ami - ], - stats[0] - ) + Uuid(), + "Louison", + "https://fastly.picsum.photos/id/1029/2000/2000.jpg?hmac=_K3pMobVk00dfNR7rsj1NLnEBB5Gf88SvGPbbjoH-Uc", + "louison.parant@etu.uca.fr", + [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], + [ami], + stats[0]) ]; - print("Players :"); - // afficahge de toutes les informations de tous les joueurs + // 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"); + 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( + "\tID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: User"); print("\tAchievements:"); for (var achievement in player.achievements) { print("\t\tNom: ${achievement.name}"); @@ -74,22 +84,101 @@ void main() { 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}"); + 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"); + print( + "\tID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Player"); } } //GameDetail - - List games = [ - GameDetail(Uuid(), DateTime.now(), players[0].id, 290, true, null, players[0], [ Round(10,null,10, players[0]), Round(5,2,7, players[1]), Round(5,2,7, players[1]), Round(5,1,12,players[0])], [players[0],players[1]] ), - GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 2)), players[1].id, 250, true, null, players[1], [ Round(7,null,7, players[1]), Round(3,3,9, players[0]), Round(5,2,7, players[1]), Round(5,1,12,players[0])], [players[0],players[1]] ), - GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 4)), players[2].id, 210, false, null, players[2], [ Round(8,2,10, players[2]), Round(6,2,8, players[1]), Round(4,2,6, players[2]), Round(2,2,4,players[1])], [players[1],players[2]] ), - GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 7)), players[3].id, 120, true, Round(12,null,12, players[3]), players[3], [ Round(12,null,12, players[3]), Round(7,3,10, players[2]), Round(6,2,8, players[1]), Round(5,1,12,players[0])], [players[0],players[1],players[2],players[3]] ), - GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 10)), players[4].id, 280, true, null, players[4], [ Round(9,1,10, players[4]), Round(7,3,10, players[2]), Round(8,2,10, players[3]), Round(5,2,7,players[1])], [players[1],players[2],players[3],players[4]] ), - GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 12)), players[1].id, 240, true, null, players[1], [ Round(7,null,7, players[1]), Round(5,2,7, players[2]), Round(6,2,8, players[1]), Round(5,1,12,players[0])], [players[0],players[1],players[2],players[4]] ), - GameDetail(Uuid(), DateTime.now().subtract(Duration(days: 15)), players[2].id, 200, true, null, players[2], [ Round(8,2,10, players[2]), Round(4,2,6, players[1]), Round(7,3,10, players[3]), Round(5,2,7,players[0])], [players[0],players[1],players[2],players[3]] ) + + List games = [ + GameDetail( + Uuid(), 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]), + Round(5, 2, 7, players[1]), + ], [ + players[0], + players[1] + ]), + GameDetail(Uuid(), 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]), + Round(5, 2, 7, players[1]), + Round(5, 1, 12, players[0]) + ], [ + players[0], + players[1] + ]), + GameDetail(Uuid(), 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]), + Round(4, 2, 6, players[2]), + Round(2, 2, 4, players[1]) + ], [ + players[1], + players[2] + ]), + GameDetail( + Uuid(), + 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]), + Round(5, 1, 12, players[0]) + ], [ + players[0], + players[1], + players[2], + players[3] + ]), + GameDetail(Uuid(), 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]), + Round(8, 2, 10, players[3]), + Round(5, 2, 7, players[1]) + ], [ + players[1], + players[2], + players[3], + players[4] + ]), + GameDetail(Uuid(), 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]), + Round(5, 1, 12, players[0]) + ], [ + players[0], + players[1], + players[2], + players[4] + ]), + GameDetail(Uuid(), 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]), + Round(7, 3, 10, players[3]), + Round(5, 2, 7, players[0]) + ], [ + players[0], + players[1], + players[2], + players[3] + ]) ]; print("GameDetail :"); @@ -101,6 +190,7 @@ void main() { 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) { @@ -116,11 +206,8 @@ void main() { print("\t\tPlayer Name: ${player.name}"); } - print("\t-----------------------------------------"); - - print("StubManager:"); - -} - + print("\t-----------------------------------------"); + print("StubManager:"); + } }