Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
CHERIFI Khadidja
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CHERIFI Khadidja
CHERIFI Khadidja
Commits
8e12530a
Commit
8e12530a
authored
4 years ago
by
CHERIFI Khadidja
Browse files
Options
Downloads
Patches
Plain Diff
Replace Grid.java
parent
4576739b
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
Grid.java
+68
-11
68 additions, 11 deletions
Grid.java
with
68 additions
and
11 deletions
Grid.java
+
68
−
11
View file @
8e12530a
import
java.util.Arrays
;
import
java.util.*
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Random
;
/**
/**
* {@code Grid} instances represent the grid in <i>The Game of Life</i>.
* {@code Grid} instances represent the grid in <i>The Game of Life</i>.
*/
*/
public
class
Grid
implements
Iterable
<
Cell
>
{
class
Grid
implements
Iterable
<
Cell
>
{
private
final
int
numberOfRows
;
private
final
int
numberOfRows
;
private
final
int
numberOfColumns
;
private
final
int
numberOfColumns
;
...
@@ -77,6 +74,7 @@ public class Grid implements Iterable<Cell> {
...
@@ -77,6 +74,7 @@ public class Grid implements Iterable<Cell> {
* @return the number of columns in this {@code Grid}
* @return the number of columns in this {@code Grid}
*/
*/
public
int
getNumberOfColumns
()
{
public
int
getNumberOfColumns
()
{
return
numberOfColumns
;
return
numberOfColumns
;
}
}
...
@@ -98,29 +96,78 @@ public class Grid implements Iterable<Cell> {
...
@@ -98,29 +96,78 @@ public class Grid implements Iterable<Cell> {
}
}
private
boolean
[][]
calculateNextStates
()
{
private
boolean
[][]
calculateNextStates
()
{
return
null
;
boolean
[][]
new_stat
=
new
boolean
[
getNumberOfRows
()][
getNumberOfColumns
()];
for
(
int
row
=
0
;
row
<
getNumberOfRows
();
row
++){
for
(
int
col
=
0
;
col
<
getNumberOfColumns
();
col
++)
new_stat
[
row
][
col
]
=
calculateNextState
(
row
,
col
);
}
return
new_stat
;
}
}
private
boolean
calculateNextState
(
int
rowIndex
,
int
columnIndex
,
Cell
cell
)
{
return
false
;
private
boolean
calculateNextState
(
int
rows
,
int
columns
)
{
Cell
cellule
=
getCell
(
rows
,
columns
);
int
nbOfVoisinesVivantes
=
countAliveNeighbours
(
rows
,
columns
);
return
cellule
.
isAliveInNextState
(
nbOfVoisinesVivantes
);
}
}
private
int
countAliveNeighbours
(
int
rowIndex
,
int
columnIndex
)
{
private
int
countAliveNeighbours
(
int
rowIndex
,
int
columnIndex
)
{
return
0
;
List
<
Cell
>
voisine
=
getNeighbours
(
rowIndex
,
columnIndex
);
Iterator
<
Cell
>
iterator
=
voisine
.
iterator
();
int
voisine_vivant
=
0
;
while
(
iterator
.
hasNext
())
{
if
(
iterator
.
next
().
isAlive
())
voisine_vivant
=
voisine_vivant
+
1
;
}
return
voisine_vivant
;
}
}
private
List
<
Cell
>
getNeighbours
(
int
rowIndex
,
int
columnIndex
)
{
private
List
<
Cell
>
getNeighbours
(
int
rowIndex
,
int
columnIndex
)
{
return
null
;
List
<
Cell
>
voisine
=
new
LinkedList
<
Cell
>();
voisine
.
add
(
getCell
(
rowIndex
,
columnIndex
-
1
));
voisine
.
add
(
getCell
(
rowIndex
,
columnIndex
+
1
));
voisine
.
add
(
getCell
(
rowIndex
+
1
,
columnIndex
));
voisine
.
add
(
getCell
(
rowIndex
-
1
,
columnIndex
));
voisine
.
add
(
getCell
(
rowIndex
+
1
,
columnIndex
+
1
));
voisine
.
add
(
getCell
(
rowIndex
+
1
,
columnIndex
-
1
));
voisine
.
add
(
getCell
(
rowIndex
-
1
,
columnIndex
-
1
));
voisine
.
add
(
getCell
(
rowIndex
-
1
,
columnIndex
+
1
));
return
voisine
;
}
}
private
void
goToNextState
(
boolean
[][]
nextState
)
{
private
void
goToNextState
(
boolean
[][]
nextState
)
{
for
(
int
row
=
0
;
row
<
this
.
getNumberOfRows
();
row
++){
for
(
int
col
=
0
;
col
<
this
.
getNumberOfColumns
();
col
++){
Cell
stat
=
getCell
(
row
,
col
);
if
(
nextState
[
row
][
col
]){
stat
.
setAlive
();
}
else
{
stat
.
setDead
();
}
}
}
}
}
/**
/**
* Sets all {@link Cell}s in this {@code Grid} as dead.
* Sets all {@link Cell}s in this {@code Grid} as dead.
*/
*/
void
clear
()
{
void
clear
()
{
for
(
Iterator
<
Cell
>
gril
=
iterator
();
gril
.
hasNext
();){
Cell
cel
=
gril
.
next
();
cel
.
setDead
();
}
}
}
/**
/**
...
@@ -131,6 +178,16 @@ public class Grid implements Iterable<Cell> {
...
@@ -131,6 +178,16 @@ public class Grid implements Iterable<Cell> {
*/
*/
void
randomGeneration
(
Random
random
)
{
void
randomGeneration
(
Random
random
)
{
Iterator
<
Cell
>
gril
=
iterator
();
while
(
gril
.
hasNext
()){
Cell
cel
=
gril
.
next
();
boolean
aleatoire
=
random
.
nextBoolean
();
if
(
aleatoire
)
cel
.
setAlive
();
else
cel
.
setDead
();
}
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment