Model_implementation #15

Merged
emre.kartal merged 7 commits from Model_implementation into master 2 years ago

3
.idea/.gitignore vendored

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/Sources/bowlin_project/build" />
<excludeFolder url="file://$MODULE_DIR$/Sources/bowlin_project/.pub" />
<excludeFolder url="file://$MODULE_DIR$/Sources/bowlin_project/.dart_tool" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Bowl_in.iml" filepath="$PROJECT_DIR$/.idea/Bowl_in.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

@ -1,6 +1,6 @@
<div align = center>
<img src="https://codefirst.iut.uca.fr/git/BowlDev/Bowl_in/raw/branch/master/Documentation/Banner-Bowlin.png" />
<img src="https://codefirst.iut.uca.fr/git/BowlDev/Bowl_in/raw/branch/master/Documentation/Images/Banner-Bowlin.png" />
</div>
<div align = center>
@ -8,9 +8,9 @@
---
&nbsp; ![Dart](https://img.shields.io/badge/Dart-000?style=for-the-badge&logo=dart&logoColor=blue&color=white)
&nbsp; ![Go](https://img.shields.io/badge/GO-000?style=for-the-badge&logo=go&logoColor=white&color=blue)
&nbsp; ![Quarkus](https://img.shields.io/badge/Quarkus-000?style=for-the-badge&logo=Quarkus&logoColor=white&color=blue)
&nbsp; ![Flutter](https://img.shields.io/badge/Flutter-000?style=for-the-badge&logo=flutter&logoColor=blue&color=white)
&nbsp; ![PostgreSQL](https://img.shields.io/badge/Postgresql-000?style=for-the-badge&logo=postgresql&logoColor=white&color=9a63ff)
&nbsp; ![PostgreSQL](https://img.shields.io/badge/Postgresql-000?style=for-the-badge&logo=postgresql&logoColor=white&color=blue)
---
@ -20,7 +20,7 @@
- [x] &nbsp; ![IOS](https://img.shields.io/badge/IOS-000?style=for-the-badge&logo=apple&logoColor=black&color=white)
- [x] &nbsp; ![Android](https://img.shields.io/badge/Android-000?style=for-the-badge&logo=android&logoColor=white&color=green)
**Thème de l'application** : Bowl'in :bowling:
**Nom de l'application** : Bowl'in :bowling:
**Contexte** : Quand on fait une partie de bowling, les points sont affichés sur un écran. La majorité des joueurs font une photo de la fiche de scores finale en souvenir plus l'oublient. Par la suite, le degré de mythomanie de chacun sert d'évaluateur subjectif à la prochaine partie ("La dernière fois j'avais fait au moins 130pts"... oui bien sûr...).

@ -0,0 +1,13 @@
class Achievement {
String _name;
// Constructor
Achievement(this._name);
// Getters and setters
String get name => _name;
set name(String value) {
_name = value;
}
}

@ -0,0 +1,43 @@
import 'package:uuid/uuid.dart';
class Game {
Uuid _id;
DateTime _time;
int _pointsCurrentUser;
bool _isFinished;
List<String> _playerImages = [];
// Constructor
Game(this._id, this._time, this._pointsCurrentUser, this._isFinished, this._playerImages);
// Getters and setters
Uuid get id => _id;
set id(Uuid value) {
_id = value;
}
DateTime get time => _time;
set time(DateTime value) {
_time = value;
}
int get pointsCurrentUser => _pointsCurrentUser;
set pointsCurrentUser(int value) {
_pointsCurrentUser = value;
}
bool get isFinished => _isFinished;
set isFinished(bool value) {
_isFinished = value;
}
List<String> get playerImages => _playerImages;
set playerImages(List<String> value) {
_playerImages = value;
}
}

@ -0,0 +1,82 @@
import 'package:uuid/uuid.dart';
import 'Player.dart';
import 'Round.dart';
class GameDetail {
Uuid _id;
DateTime _time;
Uuid _winner;
int _nbPoints;
bool _isFinished;
Round _currentRound;
Player _host;
List<Round> _rounds = [];
List<Player> _players = [];
// Constructor
GameDetail(
this._id,
this._time,
this._winner,
this._nbPoints,
this._isFinished,
this._currentRound,
this._host,
this._rounds,
this._players);
// Getters and setters
Uuid get id => _id;
set id(Uuid value) {
_id = value;
}
DateTime get time => _time;
set time(DateTime value) {
_time = value;
}
Uuid get winner => _winner;
set winner(Uuid value) {
_winner = value;
}
int get nbPoints => _nbPoints;
set nbPoints(int value) {
_nbPoints = value;
}
bool get isFinished => _isFinished;
set isFinished(bool value) {
_isFinished = value;
}
Round get currentRound => _currentRound;
set currentRound(Round value) {
_currentRound = value;
}
Player get host => _host;
set host(Player value) {
_host = value;
}
List<Round> get rounds => _rounds;
set rounds(List<Round> value) {
_rounds = value;
}
List<Player> get players => _players;
set players(List<Player> value) {
_players = value;
}
}

@ -0,0 +1,8 @@
import 'package:uuid/uuid.dart';
import 'package:uuid/uuid_util.dart';
import 'Player.dart';
class Guest extends Player {
// Constructor
Guest(Uuid id, String image, String name) : super(id, image, name);
}

@ -0,0 +1,5 @@
abstract class IAuthManager {
// Methods
bool verifiedUser(String name, String password);
}

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

@ -0,0 +1,21 @@
import 'User.dart';
import 'Game.dart';
import 'IUserManager.dart';
import 'IGameManager.dart';
import 'Game.dart';
abstract class IManager {
late User _userCurrent;
late Game _gameCurrent;
IUserManager _userMgr;
IGameManager _gameMgr;
// Constructor
IManager(this._userCurrent, this._gameCurrent);
// Getters and setters
User get userCurrent => _userCurrent;
Game get gameCurrent => _gameCurrent;
IUserManager get userMgr => _userMgr;
IGameManager get gameMgr => _gameMgr;
}

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

@ -0,0 +1,25 @@
import 'package:uuid/uuid.dart';
class Player {
final Uuid _id;
String _name;
String _image;
// Constructor
Player(this._id, this._name, this._image);
// Getters and setters
Uuid get id => _id;
String get name => _name;
set name(String value) {
_name = value;
}
String get image => _image;
set image(String value) {
_image = value;
}
}

@ -0,0 +1,36 @@
import 'Player.dart';
class Round {
int _firstThrow;
int _secondThrow;
int _points;
Player _player;
// Constructor
Round(this._firstThrow, this._secondThrow, this._points, this._player);
// Getters and setters
int get firstThrow => _firstThrow;
set firstThrow(int value) {
_firstThrow = value;
}
int get secondThrow => _secondThrow;
set secondThrow(int value) {
_secondThrow = value;
}
int get points => _points;
set points(int value) {
_points = value;
}
Player get player => _player;
set player(Player value) {
_player = value;
}
}

@ -0,0 +1,79 @@
class Stat {
int _nbVictory;
int _nbDefeat;
int _nbGames;
int _highscore;
int _nbStrikes;
int _nbSpares;
int _nbScore;
int _avgScore;
double _avgPinsPerRound;
// Constructor
Stat(
this._nbVictory,
this._nbDefeat,
this._nbGames,
this._highscore,
this._nbStrikes,
this._nbSpares,
this._nbScore,
this._avgScore,
this._avgPinsPerRound,
);
// Getters and setters
int get nbVictory => _nbVictory;
set nbVictory(int value) {
_nbVictory = value;
}
int get nbDefeat => _nbDefeat;
set nbDefeat(int value) {
_nbDefeat = value;
}
int get nbGames => _nbGames;
set nbGames(int value) {
_nbGames = value;
}
int get highscore => _highscore;
set highscore(int value) {
_highscore = value;
}
int get nbStrikes => _nbStrikes;
set nbStrikes(int value) {
_nbStrikes = value;
}
int get nbSpares => _nbSpares;
set nbSpares(int value) {
_nbSpares = value;
}
int get nbScore => _nbScore;
set nbScore(int value) {
_nbScore = value;
}
int get avgScore => _avgScore;
set avgScore(int value) {
_avgScore = value;
}
double get avgPinsPerRound => _avgPinsPerRound;
set avgPinsPerRound(double value) {
_avgPinsPerRound = value;
}
}

@ -0,0 +1,40 @@
import 'package:uuid/uuid.dart';
import 'Achievement.dart';
import 'Player.dart';
import 'Stat.dart';
class User extends Player {
String _mail;
List<Achievement> _achievements = <Achievement>[];
List<User> _friends = <User>[];
List<Stat> _stats = <Stat>[];
// Constructor
User(Uuid id, String name, String image, this._mail, this._achievements, this._friends, this._stats)
: super(id, name, image);
// Getters and setters
String get mail => _mail;
set mail(String value) {
_mail = value;
}
List<Achievement> get achievements => _achievements;
set achievements(List<Achievement> value) {
_achievements = value;
}
List<User> get friends => _friends;
set friends(List<User> value) {
_friends = value;
}
List<Stat> get stats => _stats;
set stats(List<Stat> value) {
_stats = value;
}
}

@ -413,6 +413,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.1"
uuid:
dependency: "direct main"
description:
name: uuid
sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
url: "https://pub.dev"
source: hosted
version: "3.0.7"
vector_math:
dependency: transitive
description:

@ -39,6 +39,7 @@ dependencies:
simple_gradient_text: ^1.2.4
google_fonts: ^3.0.1
go_router: ^6.0.1
uuid: ^3.0.7
dev_dependencies:
flutter_test:

@ -0,0 +1,83 @@
import '../lib/model/Player.dart';
import '../lib/model/Guest.dart';
import '../lib/model/User.dart';
import '../lib/model/Stat.dart';
import 'dart:math';
import '../lib/model/Achievement.dart';
import 'package:uuid/uuid.dart';
void main() {
List<Stat> stats = [];
Random random = new Random();
for (int i = 0; i < 10; i++) {
Stat stat = new 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
);
stats.add(stat);
}
User ami = new User(Uuid(), "Lucas","https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY","Lucas.delanier@etu.uca.fr",[],[],[]);
List<Player> players = [
new Player(Uuid(), "Rami", "https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4"),
new Player(Uuid(), "Emre", "https://fastly.picsum.photos/id/670/2000/2000.jpg?hmac=zWqTr_vDEab3dBtp7JZgJP8TRCPNanJ4tYwDDd-jGYA"),
new Guest(Uuid(), "Bot1","https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4"),
new Guest(Uuid(), "Bot2","https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY"),
ami,
new User(
Uuid(),
"Louison",
"https://fastly.picsum.photos/id/1029/2000/2000.jpg?hmac=_K3pMobVk00dfNR7rsj1NLnEBB5Gf88SvGPbbjoH-Uc",
"louison.parant@etu.uca.fr",
[
new Achievement("5 games"),
new Achievement("2 strikes in a row"),
new Achievement("Win a game")
],
[
ami
],
stats
)
];
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("\tStats:");
for (var stat in player.stats) {
print("\t\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("\tAmis:");
for (var amis in player.friends) {
print("\t\tNom: ${amis.name}, Mail: ${amis.mail}");
}
} else {
print("\tID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Player");
}
}
print("GameDetail :");
}
Loading…
Cancel
Save