-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAutomaton2.java
97 lines (69 loc) · 1.95 KB
/
Automaton2.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package ex4;
public class Automaton2 {
private boolean[] automate;
public Automaton2(boolean[] initial){
automate = initial;
}
public void next(){
boolean[] t1 = automate;
for(int i=0;i<automate.length;i++){
int indicePrécédent=(i+automate.length-1)%automate.length;
boolean précédent = automate[indicePrécédent];
int indiceSuivant=(i+automate.length+1)%automate.length;
boolean suivant = automate[indiceSuivant];
/*
* CASE COURANTE ACTIVE (true)
*/
if(automate[i]){
//elle devient passive si ses 2 voisins sont ''true''
if(précédent && suivant)
t1[i]=false;
//dans tous les autres cas, elle reste active
else
t1[i]=true;
}
/*
* CASE COURANTE INACTIVE (false)
*/
else if(!automate[i]){
//si ces 2 voisins sont ''false'', elle reste inactive
if(!précédent && !suivant)
t1[i]=false;
//dans tous les autres cas, devient 'true'
else
t1[i]=true;
}
}
automate=t1;
return;
}
public void print(){
for(boolean i : automate)
System.out.print(i+"\t ");
}
public void erreur(){
boolean[] t1 = automate;
System.out.println("pos 5 :"+automate[5]);
for(int i=0;i<automate.length;i++){
System.out.println("tour"+i+" pos 5 :"+automate[5]);
int indicePrécédent=(i+automate.length-1)%automate.length;
boolean précédent = automate[indicePrécédent];
int indiceSuivant=(i+automate.length+1)%automate.length;
boolean suivant = automate[indiceSuivant];
System.out.println(indicePrécédent+":"+précédent+" "+indiceSuivant+":"+suivant);
if(automate[i]){
//elle devient passive si ses 2 voisins sont ''true''
if(précédent && suivant){
System.out.println("index"+i+"true à gauche et droite");
t1[i]=false;
}
//dans tous les autres cas, elle reste active
else{
t1[i]=true;
}
}
print();
}
automate=t1;
}
}