Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Groupe3-TicTacToe
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
BAHRMAN Louis
Groupe3-TicTacToe
Commits
82d9ee28
Commit
82d9ee28
authored
Apr 23, 2020
by
DELBECQ Théo
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into 'Theo'
Master See merge request
!10
parents
5464252f
9a4d46c0
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
53 additions
and
34 deletions
+53
-34
AlgoRecherMinMax1.class
build/classes/tictactoecodingame/AlgoRecherMinMax1.class
+0
-0
Arbre.class
build/classes/tictactoecodingame/Arbre.class
+0
-0
ArbreMinMax.class
build/classes/tictactoecodingame/ArbreMinMax.class
+0
-0
AlgoRecherMinMax1.java
src/tictactoecodingame/AlgoRecherMinMax1.java
+11
-3
Arbre.java
src/tictactoecodingame/Arbre.java
+16
-8
ArbreMinMax.java
src/tictactoecodingame/ArbreMinMax.java
+26
-23
No files found.
build/classes/tictactoecodingame/AlgoRecherMinMax1.class
deleted
100644 → 0
View file @
5464252f
File deleted
build/classes/tictactoecodingame/Arbre.class
View file @
82d9ee28
No preview for this file type
build/classes/tictactoecodingame/ArbreMinMax.class
View file @
82d9ee28
No preview for this file type
src/tictactoecodingame/AlgoRecherMinMax1.java
View file @
82d9ee28
...
@@ -11,11 +11,11 @@ import java.util.ArrayList;
...
@@ -11,11 +11,11 @@ import java.util.ArrayList;
/**
/**
*
*
* @author senda
* @author senda
*/
public class AlgoRecherMinMax1 extends AlgoRecherche {
public class AlgoRecherMinMax1 extends AlgoRecherche {
ArrayList ListCoup;
ArrayList ListCoup;
public
AlgoRecherMinMax1
()
{
/*
public AlgoRecherMinMax1() {
}
}
...
@@ -26,4 +26,12 @@ public class AlgoRecherMinMax1 extends AlgoRecherche {
...
@@ -26,4 +26,12 @@ public class AlgoRecherMinMax1 extends AlgoRecherche {
return ;
return ;
}
}
}
}*/
/* L'idée c'est :
- Créer un arbre de coups :
On récupère les coups dispo
On fait toutes les possibilités d'enchaînement de coups (<N, <MaxCoupsRestants)
- On applique MinMax
- On rend le meilleur coup selon notre algorythme
*/
\ No newline at end of file
src/tictactoecodingame/Arbre.java
View file @
82d9ee28
...
@@ -12,19 +12,23 @@ import java.util.ArrayList;
...
@@ -12,19 +12,23 @@ import java.util.ArrayList;
* @author senda
* @author senda
*/
*/
public
class
Arbre
{
public
class
Arbre
{
public
static
int
N
=
5
;
pr
ivate
Fraction
value
;
pr
otected
Fraction
value
;
pr
ivate
ArrayList
<
Coup
>
coups
;
pr
otected
ArrayList
<
Coup
>
coups
;
pr
ivate
ArrayList
<
Arbre
>
fils
;
pr
otected
ArrayList
<
Arbre
>
fils
;
// Les constructeurs :
// Les constructeurs :
public
Arbre
(){
}
public
Arbre
(
Fraction
value
,
ArrayList
coups
,
ArrayList
fils
){
public
Arbre
(
Fraction
value
,
ArrayList
coups
,
ArrayList
fils
){
this
.
value
=
value
;
this
.
value
=
value
;
this
.
fils
=
fils
;
this
.
fils
=
fils
;
this
.
coups
=
coups
;
this
.
coups
=
coups
;
}
}
public
Arbre
(
int
den
,
int
num
,
ArrayList
coups
,
ArrayList
fils
){
public
Arbre
(
int
num
,
int
den
,
ArrayList
coups
,
ArrayList
fils
){
this
.
value
.
den
=
den
;
this
.
value
.
den
=
den
;
this
.
value
.
num
=
num
;
this
.
value
.
num
=
num
;
this
.
fils
=
fils
;
this
.
fils
=
fils
;
...
@@ -47,7 +51,7 @@ public class Arbre {
...
@@ -47,7 +51,7 @@ public class Arbre {
this
.
value
=
value
;
this
.
value
=
value
;
}
}
public
Arbre
(
int
den
,
int
num
){
public
Arbre
(
int
num
,
int
den
){
this
.
value
.
den
=
den
;
this
.
value
.
den
=
den
;
this
.
value
.
num
=
num
;
this
.
value
.
num
=
num
;
}
}
...
@@ -57,7 +61,7 @@ public class Arbre {
...
@@ -57,7 +61,7 @@ public class Arbre {
return
(
value
.
getNote
());
return
(
value
.
getNote
());
}
}
public
ArrayList
getfils
(){
public
ArrayList
<
Arbre
>
getfils
(){
return
(
fils
);
return
(
fils
);
}
}
...
@@ -65,6 +69,10 @@ public class Arbre {
...
@@ -65,6 +69,10 @@ public class Arbre {
return
(
coups
);
return
(
coups
);
}
}
public
Fraction
getFrac
(){
return
(
this
.
value
);
}
//Des choses sans nom :
//Des choses sans nom :
public
void
setvalue
(
Fraction
value
){
public
void
setvalue
(
Fraction
value
){
this
.
value
=
value
;
this
.
value
=
value
;
...
...
src/tictactoecodingame/ArbreMinMax.java
View file @
82d9ee28
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
package
tictactoecodingame
;
package
tictactoecodingame
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
static
tictactoecodingame
.
Generator
.
random_tests
;
/**
/**
*
*
...
@@ -13,7 +14,6 @@ import java.util.ArrayList;
...
@@ -13,7 +14,6 @@ import java.util.ArrayList;
*/
*/
public
class
ArbreMinMax
{
public
class
ArbreMinMax
{
public
static
int
N
=
5
;
protected
int
value
;
protected
int
value
;
//Coup théorique joué à ce noeud
//Coup théorique joué à ce noeud
protected
Coup
coup
;
protected
Coup
coup
;
...
@@ -59,8 +59,13 @@ public class ArbreMinMax {
...
@@ -59,8 +59,13 @@ public class ArbreMinMax {
}
}
public
ArrayList
<
ArbreMinMax
>
getfils
(){
public
ArrayList
<
ArbreMinMax
>
getfils
(){
if
(
fils
!=
null
){
return
(
fils
);
return
(
fils
);
}
}
else
{
return
null
;
}
}
public
Coup
getcoup
(){
public
Coup
getcoup
(){
return
coup
;
return
coup
;
...
@@ -133,29 +138,27 @@ public class ArbreMinMax {
...
@@ -133,29 +138,27 @@ public class ArbreMinMax {
return
m
;
return
m
;
}
}
public
void
MinMax
(
int
h
){
public
void
MinMax
(
int
c
){
// h = hauteur, on l'incrémente comme un compteur
// c = compteur
// N est la profondeur à explorer en MinMax, toutes les feuilles en N+1 sont évaluées
// Le compteur doit être initialisé à 0 donc pair -> Max, impair -> Min
// La racine est un Max, donc impair -> Max, pair -> Min
if
(
N
>=
h
){
// On doit chosir entre min et max
if
(
this
.
getfils
()
!=
null
){
if
(
h
%
2
==
0
){
int
a
=
this
.
getfils
().
size
();
for
(
int
i
=
0
;
i
<
a
;
i
++){
this
.
getfils
().
get
(
i
).
MinMax
(
c
+
1
);
}
}
if
(
c
%
2
==
0
){
//On attribue le Min
//On attribue le Min
int
m
=
this
.
Min
();
int
m
=
this
.
Min
();
this
.
setvalue
(
m
);
this
.
setvalue
(
m
);
}
}
else
{
else
{
//On attribue le max
//On attribue le max
int
m
=
this
.
Max
();
int
m
=
this
.
Max
();
this
.
setvalue
(
m
);
this
.
setvalue
(
m
);
}
}
int
a
=
this
.
getfils
().
size
();
for
(
int
i
=
0
;
i
<
a
;
i
++){
this
.
getfils
().
get
(
i
).
MinMax
(
h
+
1
);
}
}
}
else
{
//On a h > N, on utilise la fonction d'évaluation
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment