commit
e4e14adf45
@ -0,0 +1,71 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: CI
|
||||
|
||||
trigger:
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
- dev
|
||||
- CI/CD
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: build-Models
|
||||
image: mcr.microsoft.com/dotnet/sdk:8.0
|
||||
commands:
|
||||
- cd source/Trek-12/Models
|
||||
- dotnet restore
|
||||
- dotnet build -c Release --no-restore
|
||||
- dotnet publish -c Release --no-restore -o $CI_PROJECT_DIR/build/release
|
||||
|
||||
- name: build-ConsoleApp
|
||||
image: mcr.microsoft.com/dotnet/sdk:8.0
|
||||
commands:
|
||||
- cd source/Trek-12/ConsoleApp
|
||||
- dotnet restore
|
||||
- dotnet build -c Release --no-restore
|
||||
- dotnet publish -c Release --no-restore -o $CI_PROJECT_DIR/build/release
|
||||
depends_on: [build-Models]
|
||||
|
||||
- name: tests
|
||||
image: mcr.microsoft.com/dotnet/sdk:8.0
|
||||
commands:
|
||||
- cd source/Trek-12
|
||||
- dotnet restore CI-Trek-12.sln
|
||||
- dotnet test CI-Trek-12.sln --no-restore
|
||||
depends_on: [build-Models]
|
||||
|
||||
- name: code-analysis
|
||||
image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet8
|
||||
secrets: [ SECRET_SONAR_LOGIN ]
|
||||
settings:
|
||||
# accessible en ligne de commande par ${PLUGIN_SONAR_HOST}
|
||||
sonar_host: https://codefirst.iut.uca.fr/sonar/
|
||||
# accessible en ligne de commande par ${PLUGIN_SONAR_TOKEN}
|
||||
sonar_token:
|
||||
from_secret: SECRET_SONAR_LOGIN
|
||||
commands:
|
||||
- cd source/Trek-12
|
||||
- dotnet restore CI-Trek-12.sln
|
||||
- dotnet sonarscanner begin /k:"Trek-12" /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" /d:sonar.coverage.exclusions="Tests/**" /d:sonar.login=$${PLUGIN_SONAR_TOKEN}
|
||||
- dotnet build CI-Trek-12.sln -c Release --no-restore
|
||||
- dotnet test CI-Trek-12.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage"
|
||||
- reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport"
|
||||
- dotnet publish CI-Trek-12.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release
|
||||
- dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN}
|
||||
depends_on: [tests]
|
||||
|
||||
- name: generate-and-deploy-docs
|
||||
image: hub.codefirst.iut.uca.fr/maxime.batista/codefirst-docdeployer:latest
|
||||
failure: ignore
|
||||
commands:
|
||||
- /entrypoint.sh -l documentation/doxygen -t doxygen
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
- dev
|
||||
event:
|
||||
- push
|
||||
depends_on: [ tests ]
|
@ -0,0 +1,428 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
DOXYFILE_ENCODING = UTF-8
|
||||
PROJECT_NAME = "Trek 12"
|
||||
PROJECT_NUMBER = 1.0.0
|
||||
PROJECT_BRIEF = "Application de jeu plateau en roll & write sur le framework .NET MAUI avec XAML et C#"
|
||||
PROJECT_LOGO = /trek12.png
|
||||
OUTPUT_DIRECTORY = /documentation/doxygen
|
||||
CREATE_SUBDIRS = NO
|
||||
ALLOW_UNICODE_NAMES = NO
|
||||
OUTPUT_LANGUAGE = French
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ABBREVIATE_BRIEF = "The $name class" \
|
||||
"The $name widget" \
|
||||
"The $name file" \
|
||||
is \
|
||||
provides \
|
||||
specifies \
|
||||
contains \
|
||||
represents \
|
||||
a \
|
||||
an \
|
||||
the
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = YES
|
||||
STRIP_FROM_PATH =
|
||||
STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
JAVADOC_BANNER = NO
|
||||
QT_AUTOBRIEF = NO
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
PYTHON_DOCSTRING = YES
|
||||
INHERIT_DOCS = YES
|
||||
SEPARATE_MEMBER_PAGES = NO
|
||||
TAB_SIZE = 4
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
# Well... the one for Java looks so similar to the one for C#...
|
||||
OPTIMIZE_OUTPUT_JAVA = YES
|
||||
OPTIMIZE_FOR_FORTRAN = NO
|
||||
OPTIMIZE_OUTPUT_VHDL = NO
|
||||
OPTIMIZE_OUTPUT_SLICE = NO
|
||||
EXTENSION_MAPPING =
|
||||
MARKDOWN_SUPPORT = YES
|
||||
TOC_INCLUDE_HEADINGS = 5
|
||||
AUTOLINK_SUPPORT = YES
|
||||
BUILTIN_STL_SUPPORT = NO
|
||||
CPP_CLI_SUPPORT = NO
|
||||
SIP_SUPPORT = NO
|
||||
IDL_PROPERTY_SUPPORT = YES
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
GROUP_NESTED_COMPOUNDS = NO
|
||||
SUBGROUPING = YES
|
||||
INLINE_GROUPED_CLASSES = NO
|
||||
INLINE_SIMPLE_STRUCTS = NO
|
||||
TYPEDEF_HIDES_STRUCT = NO
|
||||
LOOKUP_CACHE_SIZE = 0
|
||||
NUM_PROC_THREADS = 1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
EXTRACT_ALL = YES
|
||||
# I do not like other members to see my private members... but you can set it to YES if you prefer.
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_PRIV_VIRTUAL = NO
|
||||
EXTRACT_PACKAGE = NO
|
||||
EXTRACT_STATIC = YES
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
EXTRACT_LOCAL_METHODS = NO
|
||||
EXTRACT_ANON_NSPACES = NO
|
||||
RESOLVE_UNNAMED_PARAMS = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = NO
|
||||
CASE_SENSE_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
HIDE_COMPOUND_REFERENCE= NO
|
||||
SHOW_HEADERFILE = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
SHOW_GROUPED_MEMB_INC = NO
|
||||
FORCE_LOCAL_INCLUDES = NO
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
SORT_BRIEF_DOCS = NO
|
||||
SORT_MEMBERS_CTORS_1ST = NO
|
||||
SORT_GROUP_NAMES = NO
|
||||
SORT_BY_SCOPE_NAME = NO
|
||||
STRICT_PROTO_MATCHING = NO
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
SHOW_FILES = YES
|
||||
SHOW_NAMESPACES = YES
|
||||
FILE_VERSION_FILTER =
|
||||
LAYOUT_FILE =
|
||||
CITE_BIB_FILES =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
QUIET = NO
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_IF_INCOMPLETE_DOC = YES
|
||||
WARN_NO_PARAMDOC = NO
|
||||
WARN_AS_ERROR = NO
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
INPUT = source
|
||||
INPUT_ENCODING = UTF-8
|
||||
FILE_PATTERNS = *.c \
|
||||
*.cc \
|
||||
*.cxx \
|
||||
*.cpp \
|
||||
*.c++ \
|
||||
*.java \
|
||||
*.ii \
|
||||
*.ixx \
|
||||
*.ipp \
|
||||
*.i++ \
|
||||
*.inl \
|
||||
*.idl \
|
||||
*.ddl \
|
||||
*.odl \
|
||||
*.h \
|
||||
*.hh \
|
||||
*.hxx \
|
||||
*.hpp \
|
||||
*.h++ \
|
||||
*.l \
|
||||
*.cs \
|
||||
*.d \
|
||||
*.php \
|
||||
*.php4 \
|
||||
*.php5 \
|
||||
*.phtml \
|
||||
*.inc \
|
||||
*.m \
|
||||
*.markdown \
|
||||
*.md \
|
||||
*.mm \
|
||||
*.dox \
|
||||
*.py \
|
||||
*.pyw \
|
||||
*.f90 \
|
||||
*.f95 \
|
||||
*.f03 \
|
||||
*.f08 \
|
||||
*.f18 \
|
||||
*.f \
|
||||
*.for \
|
||||
*.vhd \
|
||||
*.vhdl \
|
||||
*.ucf \
|
||||
*.qsf \
|
||||
*.ice
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS = */Tests/*
|
||||
EXCLUDE_PATTERNS += */bin/*
|
||||
EXCLUDE_PATTERNS += */obj/*
|
||||
EXCLUDE_SYMBOLS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS = *
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_PATTERNS =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
FILTER_SOURCE_PATTERNS =
|
||||
USE_MDFILE_AS_MAINPAGE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = NO
|
||||
REFERENCES_RELATION = NO
|
||||
REFERENCES_LINK_SOURCE = YES
|
||||
SOURCE_TOOLTIPS = YES
|
||||
USE_HTAGS = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
CLANG_ASSISTED_PARSING = NO
|
||||
CLANG_ADD_INC_PATHS = YES
|
||||
CLANG_OPTIONS =
|
||||
CLANG_DATABASE_PATH =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
ALPHABETICAL_INDEX = YES
|
||||
IGNORE_PREFIX =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_EXTRA_STYLESHEET =
|
||||
HTML_EXTRA_FILES = images/CodeFirst.png images/clubinfo.png
|
||||
HTML_COLORSTYLE_HUE = 215
|
||||
HTML_COLORSTYLE_SAT = 45
|
||||
HTML_COLORSTYLE_GAMMA = 240
|
||||
HTML_TIMESTAMP = NO
|
||||
HTML_DYNAMIC_MENUS = YES
|
||||
HTML_DYNAMIC_SECTIONS = NO
|
||||
HTML_INDEX_NUM_ENTRIES = 100
|
||||
GENERATE_DOCSET = NO
|
||||
DOCSET_FEEDNAME = "Doxygen generated docs"
|
||||
DOCSET_FEEDURL =
|
||||
DOCSET_BUNDLE_ID = org.doxygen.Project
|
||||
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
|
||||
DOCSET_PUBLISHER_NAME = Publisher
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
CHM_INDEX_ENCODING =
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
GENERATE_QHP = NO
|
||||
QCH_FILE =
|
||||
QHP_NAMESPACE = org.doxygen.Project
|
||||
QHP_VIRTUAL_FOLDER = doc
|
||||
QHP_CUST_FILTER_NAME =
|
||||
QHP_CUST_FILTER_ATTRS =
|
||||
QHP_SECT_FILTER_ATTRS =
|
||||
QHG_LOCATION =
|
||||
GENERATE_ECLIPSEHELP = NO
|
||||
ECLIPSE_DOC_ID = org.doxygen.Project
|
||||
DISABLE_INDEX = NO
|
||||
GENERATE_TREEVIEW = NO
|
||||
FULL_SIDEBAR = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
TREEVIEW_WIDTH = 250
|
||||
EXT_LINKS_IN_WINDOW = NO
|
||||
OBFUSCATE_EMAILS = YES
|
||||
HTML_FORMULA_FORMAT = png
|
||||
FORMULA_FONTSIZE = 10
|
||||
FORMULA_TRANSPARENT = YES
|
||||
FORMULA_MACROFILE =
|
||||
USE_MATHJAX = NO
|
||||
MATHJAX_VERSION = MathJax_2
|
||||
MATHJAX_FORMAT = HTML-CSS
|
||||
MATHJAX_RELPATH =
|
||||
MATHJAX_EXTENSIONS =
|
||||
MATHJAX_CODEFILE =
|
||||
SEARCHENGINE = YES
|
||||
SERVER_BASED_SEARCH = NO
|
||||
EXTERNAL_SEARCH = NO
|
||||
SEARCHENGINE_URL =
|
||||
SEARCHDATA_FILE = searchdata.xml
|
||||
EXTERNAL_SEARCH_ID =
|
||||
EXTRA_SEARCH_MAPPINGS =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT = latex
|
||||
LATEX_CMD_NAME =
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
LATEX_MAKEINDEX_CMD = makeindex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
LATEX_FOOTER =
|
||||
LATEX_EXTRA_STYLESHEET =
|
||||
LATEX_EXTRA_FILES =
|
||||
PDF_HYPERLINKS = YES
|
||||
USE_PDFLATEX = YES
|
||||
LATEX_BATCHMODE = NO
|
||||
LATEX_HIDE_INDICES = NO
|
||||
LATEX_BIB_STYLE = plain
|
||||
LATEX_TIMESTAMP = NO
|
||||
LATEX_EMOJI_DIRECTORY =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
MAN_SUBDIR =
|
||||
MAN_LINKS = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_XML = NO
|
||||
XML_OUTPUT = xml
|
||||
XML_PROGRAMLISTING = YES
|
||||
XML_NS_MEMB_FILE_SCOPE = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the DOCBOOK output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_DOCBOOK = NO
|
||||
DOCBOOK_OUTPUT = docbook
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to Sqlite3 output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the Perl module output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
GENERATE_PERLMOD = NO
|
||||
PERLMOD_LATEX = NO
|
||||
PERLMOD_PRETTY = YES
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
EXTERNAL_PAGES = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
DIA_PATH =
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
HAVE_DOT = NO
|
||||
DOT_NUM_THREADS = 0
|
||||
DOT_FONTNAME = Helvetica
|
||||
DOT_FONTSIZE = 10
|
||||
DOT_FONTPATH =
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
GROUP_GRAPHS = YES
|
||||
UML_LOOK = NO
|
||||
UML_LIMIT_NUM_FIELDS = 10
|
||||
DOT_UML_DETAILS = NO
|
||||
DOT_WRAP_THRESHOLD = 17
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = NO
|
||||
CALLER_GRAPH = NO
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DIRECTORY_GRAPH = YES
|
||||
DIR_GRAPH_MAX_DEPTH = 1
|
||||
DOT_IMAGE_FORMAT = png
|
||||
INTERACTIVE_SVG = NO
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MSCFILE_DIRS =
|
||||
DIAFILE_DIRS =
|
||||
PLANTUML_JAR_PATH =
|
||||
PLANTUML_CFG_FILE =
|
||||
PLANTUML_INCLUDE_PATH =
|
||||
DOT_GRAPH_MAX_NODES = 50
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
DOT_TRANSPARENT = NO
|
||||
DOT_MULTI_TARGETS = NO
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
@ -0,0 +1,30 @@
|
||||
namespace Models.Game
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a cell in the operation grid of the game.
|
||||
/// </summary>
|
||||
public class OperationCell : Position
|
||||
{
|
||||
/// <summary>
|
||||
/// It tells if the operation is checked or not in the operation grid of the game.
|
||||
/// </summary>
|
||||
public bool IsChecked { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor of the OperationCell class.
|
||||
/// </summary>
|
||||
/// <param name="x"></param>
|
||||
/// <param name="y"></param>
|
||||
public OperationCell(int x, int y) : base(x, y)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check the operation cell.
|
||||
/// </summary>
|
||||
public void Check()
|
||||
{
|
||||
IsChecked = true;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
global using Xunit;
|
@ -0,0 +1,43 @@
|
||||
namespace Tests;
|
||||
using Models.Game;
|
||||
|
||||
public class PlayerTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("Player", "DefaultProfilePicture")]
|
||||
[InlineData("John Doe", "N/A.png")]
|
||||
public void Constructor_WithPseudoAndProfilePicture_SetsPseudoAndProfilePictureCorrectly(string pseudo, string profilePicture)
|
||||
{
|
||||
var player = new Player(pseudo, profilePicture);
|
||||
Assert.Equal(pseudo, player.Pseudo);
|
||||
Assert.Equal(profilePicture, player.ProfilePicture);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Constructor_WithPseudoAndWithoutProfilePicture_SetsPseudoAndDefaultProfilePicture()
|
||||
{
|
||||
var player = new Player("MyPlayer");
|
||||
Assert.Equal("MyPlayer", player.Pseudo);
|
||||
Assert.Equal("DefaultProfilePicture", player.ProfilePicture);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("John Doe", "John Doe", true)]
|
||||
[InlineData("John Doe", "Jane Doe", false)]
|
||||
public void Equals_WithSameOrDifferentPseudo_ReturnsExpectedResult(string pseudo1, string pseudo2, bool expectedResult)
|
||||
{
|
||||
var player1 = new Player(pseudo1);
|
||||
var player2 = new Player(pseudo2);
|
||||
Assert.Equal(expectedResult, player1.Equals(player2));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("John Doe", "John Doe", true)]
|
||||
[InlineData("John Doe", "Jane Doe", false)]
|
||||
public void GetHashCode_ReturnsSameOrDifferentHashCodeForPseudo(string pseudo1, string pseudo2, bool expectedResult)
|
||||
{
|
||||
var player1 = new Player(pseudo1);
|
||||
var player2 = new Player(pseudo2);
|
||||
Assert.Equal(expectedResult, player1.GetHashCode() == player2.GetHashCode());
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0"/>
|
||||
<PackageReference Include="xunit" Version="2.4.2"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Models\Models.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
After Width: | Height: | Size: 8.7 MiB |
@ -1,46 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="Trek_12.Views.component.ContentLeaderBoard">
|
||||
<Grid ColumnDefinitions="auto,*,*,*,*"
|
||||
RowDefinitions="*,*"
|
||||
Margin="0,20">
|
||||
<Frame Margin="10"
|
||||
BorderColor="Black"
|
||||
CornerRadius="50"
|
||||
HeightRequest="60"
|
||||
WidthRequest="60"
|
||||
IsClippedToBounds="True"
|
||||
HasShadow="True">
|
||||
<Image Source="profile.jpg"
|
||||
Aspect="AspectFill"
|
||||
Margin="-20"/>
|
||||
</Frame>
|
||||
<Label Text="Kiwi6026"
|
||||
Grid.Column="1"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"
|
||||
Margin="10,0"/>
|
||||
<Label Text="nbParties"
|
||||
Grid.Column="2"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"/>
|
||||
<Label Text="map"
|
||||
Grid.Column="3"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"/>
|
||||
<Label Text="bestScore"
|
||||
Grid.Column="4"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"/>
|
||||
<BoxView Color="DarkSalmon"
|
||||
Grid.Row="1"
|
||||
HeightRequest="1"
|
||||
WidthRequest="700"
|
||||
Grid.ColumnSpan="5"/>
|
||||
</Grid>
|
||||
</ContentView>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="Trek_12.Views.Components.ContentLeaderBoard">
|
||||
<Grid ColumnDefinitions="auto,*,*,*,*"
|
||||
RowDefinitions="*,*"
|
||||
Margin="0,20">
|
||||
<Frame Margin="10"
|
||||
BorderColor="Black"
|
||||
CornerRadius="50"
|
||||
HeightRequest="60"
|
||||
WidthRequest="60"
|
||||
IsClippedToBounds="True"
|
||||
HasShadow="True">
|
||||
<Image Source="profile.jpg"
|
||||
Aspect="AspectFill"
|
||||
Margin="-20"/>
|
||||
</Frame>
|
||||
<Label Text="Kiwi6026"
|
||||
Grid.Column="1"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"
|
||||
Margin="10,0"/>
|
||||
<Label Text="nbParties"
|
||||
Grid.Column="2"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"/>
|
||||
<Label Text="map"
|
||||
Grid.Column="3"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"/>
|
||||
<Label Text="bestScore"
|
||||
Grid.Column="4"
|
||||
VerticalOptions="Center"
|
||||
FontSize="Title"
|
||||
TextColor="DarkSalmon"/>
|
||||
<BoxView Color="DarkSalmon"
|
||||
Grid.Row="1"
|
||||
HeightRequest="1"
|
||||
WidthRequest="700"
|
||||
Grid.ColumnSpan="5"/>
|
||||
</Grid>
|
||||
</ContentView>
|
@ -1,9 +1,9 @@
|
||||
namespace Trek_12.Views.component;
|
||||
|
||||
public partial class ContentLeaderBoard : ContentView
|
||||
{
|
||||
public ContentLeaderBoard()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
namespace Trek_12.Views.Components;
|
||||
|
||||
public partial class ContentLeaderBoard : ContentView
|
||||
{
|
||||
public ContentLeaderBoard()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="Trek_12.Views.viewsProfils"
|
||||
xmlns:views="clr-namespace:Trek_12.Views">
|
||||
x:Class="Trek_12.Views.Components.viewsProfils">
|
||||
<VerticalStackLayout>
|
||||
<Grid ColumnDefinitions="*,*,*,*" >
|
||||
<Frame Margin="10"
|
@ -1,4 +1,4 @@
|
||||
namespace Trek_12.Views;
|
||||
namespace Trek_12.Views.Components;
|
||||
|
||||
public partial class viewsProfils : ContentView
|
||||
{
|
@ -1,8 +1,8 @@
|
||||
namespace Trek_12.Views;
|
||||
|
||||
public partial class pageProfils : ContentPage
|
||||
public partial class PageProfils : ContentPage
|
||||
{
|
||||
public pageProfils()
|
||||
public PageProfils()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="Trek_12.Views.PageRegles"
|
||||
xmlns:views="clr-namespace:Trek_12.Views.Components"
|
||||
Title="pageRegles">
|
||||
|
||||
<ContentPage.Content>
|
||||
|
||||
|
||||
<Grid RowDefinitions="2*,3*,*">
|
||||
<Image Source="bg_regles.jpg" Grid.RowSpan="3" Aspect="AspectFill"/>
|
||||
|
||||
|
||||
<Label Text="Règles" TextColor="black" HorizontalTextAlignment="Center" FontSize="Header" Margin="30"/>
|
||||
|
||||
<ScrollView Grid.Row="1">
|
||||
<Grid RowDefinitions="*,*,*,*,*,*,*,*,*">
|
||||
<!--<views:viewsProfils />
|
||||
<views:viewsProfils Grid.Row="1" />
|
||||
<views:viewsProfils Grid.Row="2"/>
|
||||
<views:viewsProfils Grid.Row="3"/>
|
||||
<views:viewsProfils Grid.Row="4"/>
|
||||
<views:viewsProfils Grid.Row="5"/>-->
|
||||
<Label Text="But du jeu
|
||||
Obtenir le score le plus élevé en remplissant astucieusement les cases circulaires afin de créer des chemins de corde et de cartographier des zones, au fur à mesure de votre ascension.
|
||||
|
||||
Sélectionner votre carte pour débuter votre ascension.Pour une toute première partie, nous vous conseillons d'utiliser la carte DUNAI " Grid.Row="0"/>
|
||||
|
||||
<Label Text=" Comment Jouer :
|
||||
1. Lancer les deux dés.
|
||||
Ici 1 et 4 " Grid.Row="1" />
|
||||
|
||||
<Label Text="2. Choisissez votre résultat
|
||||
a. Pour choisir votre résultat, vous devez choisir une seule opération suivante :
|
||||
⬇Le résultat du plus petit dé (ici 1)
|
||||
⬆Le résultat du plus grand dé (ici 4)
|
||||
- La différence entre les deux dés (ici 3 - Une différence peut être nulle mais jamais négative)
|
||||
+ La somme des deux dés (ici 5)
|
||||
x Le produit des deux dés (ici 4) " Grid.Row="2" />
|
||||
|
||||
<Label Text=" b. Sélectionnez une case libre dans la ligne correspondant à votre choix
|
||||
Lorsque tous les emplacements d'une même opération sont cochés,ce choix ne vous est plus accessible. " Grid.Row="3" />
|
||||
|
||||
<Label Text=" c. Sélectionnez la case circulaire de votre choix, pour y placer votre résultat.En respectant les règles suivantes
|
||||
Placez votre 1er résultat dans la case de votre choix
|
||||
Tous les résultats suivants doivent être placés adjacents a une case déjà remplie.
|
||||
Les conséquences de votre choix sont appliquez immédiatement : Chemin de corde et/ou Zone " Grid.Row="4" />
|
||||
|
||||
<Label Text=" Les chemins de corde
|
||||
Un chemin de corde est une suite de nombres qui se suivent exactement.
|
||||
Au moment ou vous placez un nombre, s'il crée ou continue une suite avec un nombre voisin (croissant ou décroissant), un chemin de corde sera alors crée représenté par un trait reliant deux nombres
|
||||
Si votre résultat peut être relié à plusieurs nombres voisins, vous devrez donc en choisir un seul. " Grid.Row="5" />
|
||||
|
||||
<Label Text=" Deux types de cases
|
||||
Cases de Base : 12 MAX Dans ces cases, vous ne pouvez avoir un nombre supérieur a 12. Si vous choisissez, ou êtes oblige, d'y mettre un résultat supérieur a 12, un symbole y sera mit a la place
|
||||
Cases Dangereuses : 6 MAX Dans ces cases, il est INTERDIT d'y avoir un nombre strictement supérieur a 6. Si vous choisissez, ou êtes oblige, d'inscrire un résultat supérieur a 6 sur une case dangereuse un symbole y sera mit a la place
|
||||
Un symbole donne un Malus en fin de partie. " Grid.Row="6" />
|
||||
|
||||
<Label Text=" Cartographier des zones
|
||||
Une zone cartographiée est un groupe d'au moins 2 nombres contigus de même valeur.
|
||||
Au moment ou vous placez un nombre, s'il est identique à un nombre voisin, il crée ou agrandit une zone.
|
||||
Un motif sera alors représentez dans chaque case constituant la zone. " Grid.Row="7" />
|
||||
|
||||
<Label Text=" Fin de partie
|
||||
Une fois que toutes les cases de la surface de jeu sont remplies la partie est alors terminé.La valeur des chemins de corde, des zones, des bonus et malus sont additionné.
|
||||
Chemins de corde : Chaque Chemin de corde rapporte autant de points que son nombre le plus élevé, +1 point par autre case qui compose cette zone.
|
||||
Zones : Chaque Zone cartographiée rapporte autant de points que le nombre de l'une de ses cases,+1 point par autre case qui compose cette zone.
|
||||
Bonus : Votre plus long Chemin de corde ET votre plus grande Zone rapportent un bonus dépendant de leur taille.
|
||||
Malus : Un symbole est placé dans chaque case orpheline (contenant un nombre qui n'appartient ni à une zone ni à un Chemin de corde)
|
||||
Chaque symbole donne un malus de 3 points." Grid.Row="8"/>
|
||||
|
||||
</Grid>
|
||||
</ScrollView>
|
||||
|
||||
<HorizontalStackLayout Grid.Row="2" HorizontalOptions="Center" Spacing="50">
|
||||
<Button Text="Retour" WidthRequest="300" HeightRequest="60" CornerRadius="4"/>
|
||||
<Button Text="Acheter" WidthRequest="300" HeightRequest="60" CornerRadius="4"/>
|
||||
</HorizontalStackLayout>
|
||||
</Grid>
|
||||
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
@ -0,0 +1,9 @@
|
||||
namespace Trek_12.Views;
|
||||
|
||||
public partial class PageRegles : ContentPage
|
||||
{
|
||||
public PageRegles()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue