rules.java
来自「自己编写的人工智能中野人与修道士问题的程序。」· Java 代码 · 共 120 行
JAVA
120 行
package exercise1;
public class Rules {
public boolean P01(OneState x) {
if (x.state.b == 1 && (x.state.m == 0 || x.state.m == 3)
&& x.state.c >= 1) {
x.state.b = 0;
x.state.c -= 1;
return true;
}
return false;
}
public boolean Q01(OneState x) {
if (x.state.b == 0 && (x.state.m == 0 || x.state.m == 3)
&& x.state.c <= 2) {
x.state.b = 1;
x.state.c += 1;
return true;
}
return false;
}
public boolean P10(OneState x) {
if (x.state.b == 1
&& (x.state.m == 1 && x.state.c == 1 || x.state.m == 3
&& x.state.c == 2)) {
x.state.b = 0;
x.state.m -= 1;
return true;
}
return false;
}
public boolean Q10(OneState x) {
if (x.state.b == 0
&& (x.state.m == 2 && x.state.c == 2 || x.state.m == 0
&& x.state.c == 1) && x.state.m <= 2) {
x.state.b = 1;
x.state.m += 1;
return true;
}
return false;
}
public boolean P11(OneState x) {
if (x.state.b == 1 && x.state.m >= 1 && x.state.m == x.state.c) {
x.state.b = 0;
x.state.m -= 1;
x.state.c -= 1;
return true;
}
return false;
}
public boolean Q11(OneState x) {
if (x.state.b == 0 && x.state.m <= 2 && x.state.m == x.state.c) {
x.state.b = 1;
x.state.m += 1;
x.state.c += 1;
return true;
}
return false;
}
public boolean P02(OneState x) {
if (x.state.b == 1 && (x.state.m == 0 || x.state.m == 3)
&& x.state.c >= 2) {
x.state.b = 0;
x.state.c -= 2;
return true;
}
return false;
}
public boolean Q02(OneState x) {
if (x.state.b == 0 && (x.state.m == 0 || x.state.m == 3)
&& x.state.c <= 1) {
x.state.b = 1;
x.state.c += 2;
return true;
}
return false;
}
public boolean P20(OneState x) {
if (x.state.b == 1
&& (x.state.m == 2 && x.state.c == 2 || x.state.m == 3
&& x.state.c == 1)) {
x.state.b = 0;
x.state.m -= 2;
return true;
}
return false;
}
public boolean Q20(OneState x) {
if (x.state.b == 0
&& (x.state.m == 1 && x.state.c == 1 || x.state.m == 0
&& x.state.c == 2)) {
x.state.b = 1;
x.state.m += 2;
return true;
}
return false;
}
public boolean stateCompare(OneState x, OneState y) {
if (x.state.b == y.state.b && x.state.m == y.state.m
&& x.state.c == y.state.c)
return true;
return false;
}
public boolean notContain(OneState x,OneState []g,int n){
for(int i=1;i<=n;i++)
if(stateCompare(x, g[i]))return false;
return true;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?