@ -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,19 +30,31 @@ void main() {
print ( " Stats: " ) ;
for ( var stat in stats ) {
print ( " \t Victoires: ${ 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 (
" \t Victoires: ${ 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 (
5 ,
" Lucas " ,
" https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY " ,
" Lucas.delanier@etu.uca.fr " ,
[ ] ,
[ ] ,
stats [ 1 ] ) ;
List < Player > 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 ( 1 , " Rami " ,
" https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4 " ) ,
Player ( 2 , " Emre " ,
" https://fastly.picsum.photos/id/670/2000/2000.jpg?hmac=zWqTr_vDEab3dBtp7JZgJP8TRCPNanJ4tYwDDd-jGYA " ) ,
Guest ( 3 , " Bot1 " ,
" https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4 " ) ,
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 " ,
@ -51,76 +63,212 @@ void main() {
Achievement ( " 2 strikes in a row " ) ,
Achievement ( " Win a game " )
] ,
[
ami
] ,
stats [ 0 ]
)
[ ami ] ,
stats [ 0 ] )
] ;
print ( " Players : " ) ;
/ / afficahge de toutes les informations de tous les joueurs
for ( var player in players ) {
if ( player is Guest ) {
print ( " \t ID: ${ player . id } , Nom: ${ player . name } , Image: ${ player . image } , Type: Guest " ) ;
} else if ( player is User ) {
print ( " \t ID: ${ player . id } , Nom: ${ player . name } , Image: ${ player . image } , Type: User " ) ;
print ( " \t Achievements: " ) ;
for ( var achievement in player . achievements ) {
print ( " \t \t Nom: ${ achievement . name } " ) ;
}
print ( " \t Amis: " ) ;
for ( var amis in player . friends ) {
print ( " \t \t Nom: ${ amis . name } , Mail: ${ amis . mail } " ) ;
}
print ( " \t 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 ( " \t ID: ${ 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 ] , [ 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 ] ] )
GameDetail (
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 ] ) ,
Round ( 5 , 2 , 7 , players [ 1 ] ) ,
] , [
players [ 0 ] ,
players [ 1 ]
] ) ,
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 ] ) ,
Round ( 5 , 2 , 7 , players [ 1 ] ) ,
Round ( 5 , 1 , 12 , players [ 0 ] )
] , [
players [ 0 ] ,
players [ 1 ]
] ) ,
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 ] ) ,
Round ( 4 , 2 , 6 , players [ 2 ] ) ,
Round ( 2 , 2 , 4 , players [ 1 ] )
] , [
players [ 1 ] ,
players [ 2 ]
] ) ,
GameDetail (
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 ] ) ,
Round ( 5 , 1 , 12 , players [ 0 ] )
] , [
players [ 0 ] ,
players [ 1 ] ,
players [ 2 ] ,
players [ 3 ]
] ) ,
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 ] ) ,
Round ( 8 , 2 , 10 , players [ 3 ] ) ,
Round ( 5 , 2 , 7 , players [ 1 ] )
] , [
players [ 1 ] ,
players [ 2 ] ,
players [ 3 ] ,
players [ 4 ]
] ) ,
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 ] ) ,
Round ( 5 , 1 , 12 , players [ 0 ] )
] , [
players [ 0 ] ,
players [ 1 ] ,
players [ 2 ] ,
players [ 4 ]
] ) ,
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 ] ) ,
Round ( 7 , 3 , 10 , players [ 3 ] ) ,
Round ( 5 , 2 , 7 , players [ 0 ] )
] , [
players [ 0 ] ,
players [ 1 ] ,
players [ 2 ] ,
players [ 3 ]
] )
] ;
print ( " GameDetail : " ) ;
for ( var game in games ) {
print ( " \t Game ID: ${ game . id } " ) ;
print ( " \t Time: ${ game . time } " ) ;
print ( " \t Winner: ${ game . winner } " ) ;
print ( " \t Number of Points: ${ game . nbPoints } " ) ;
print ( " \t Is Finished: ${ game . isFinished } " ) ;
print ( " \t Current Round: ${ game . currentRound } " ) ;
print ( " \t Host: ${ game . host } " ) ;
displayGameDetail ( game , 1 ) ;
print ( " \t ----------------------------------------- " ) ;
}
print ( " \t Rounds: " ) ;
for ( var round in game . rounds ) {
print ( " \t \t Round Score: ${ round . firstThrow } " ) ;
print ( " \t \t Round Bonus: ${ round . secondThrow } " ) ;
print ( " \t \t Round Total: ${ round . points } " ) ;
print ( " \t \t Round Player: ${ round . player . name } " ) ;
print ( " StubManager: " ) ;
IManager mgr = new StubData ( ) ;
print ( " \t GameManager: " ) ;
print ( " \t getGameById function with id: 2 " ) ;
GameDetail gd = mgr . gameMgr . getGameById ( 2 ) ;
displayGameDetail ( gd , 2 ) ;
print ( " \t getGamesByPlayerId function with id: 2 " ) ;
List < GameDetail > gds = mgr . gameMgr . getGamesByPlayerId ( 8 ) ;
for ( var game in gds )
{
displayGameDetail ( game , 2 ) ;
}
print ( " \t Players: " ) ;
for ( var player in game . players ) {
print ( " \t \t Player ID: ${ player . id } " ) ;
print ( " \t \t Player Name: ${ player . name } " ) ;
print ( " \t getGamesByPlayer function: " ) ;
var player = mgr . userMgr . getUserById ( 8 ) ;
List < GameDetail > gdsPlayer = mgr . gameMgr . getGamesByPlayer ( player ) ;
for ( var game in gdsPlayer )
{
displayGameDetail ( game , 2 ) ;
}
print ( " \t ----------------------------------------- " ) ;
print ( " \t getGamesByPlayers: " ) ;
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 ) ;
}
print ( " StubManager: " ) ;
print ( " \t getPlayersByIdGame: " ) ;
var playersIntoGame = mgr . gameMgr . getPlayersByIdGame ( 2 ) ;
for ( var player in playersIntoGame )
{
displayPlayer ( player , 2 ) ;
}
print ( " \t getRankByIdGame: " ) ;
var ranksPlayers = mgr . gameMgr . getRankByIdGame ( 2 ) ;
ranksPlayers . forEach ( ( id , rank ) {
displayPlayer ( mgr . userMgr . getUserById ( id ) , 2 ) ;
print ( ' \t \t Rank $ rank ' ) ;
} ) ;
}
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 } " ) ;
}
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 \t Nom: ${ 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 } " ) ;
}