-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRiver.java
More file actions
150 lines (135 loc) · 4.94 KB
/
River.java
File metadata and controls
150 lines (135 loc) · 4.94 KB
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
public class River
{
public static void main(String[] args) {
//a野人 b传道士
int a0=0,b0=0,a1=3,b1=3,boat=1;
label:while((a1!=0)&&(b1!=0))
{
//boat at right
//two yeren goto other side
if (boat==1) {
if ((a1>=2)&&((a1-2)<=b1)) {
a0=a0+2;a1=a1-2;boat=0;
System.out.println("two yeren right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((a1>=2)&&(b0==0)) {
a0=a0+2;a1=a1-2;boat=0;
System.out.println("two yeren right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//two chuanjiaoshi goto other side
if ((b1>=2)&&(a1<=(b1-2))) {
b0=b0+2;b1=b1-2;boat=0;
System.out.println("two chuanjiaoshi right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((b1>=2)&&(a1>(b1-2))&&((b1-2)==0)) {
b0=b0+2;b1=b1-2;boat=0;
System.out.println("two chuanjiaoshi right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//a yeren a chuanjiaoshi goto other side
if ((a1>=1)&&(b1>=1)&&(a1<=b1)) {
a0=a0+1;b0=b0+1;a1=a1-1;b1=b1-1;boat=0;
System.out.println("a yeren a chuanjiaoshi right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//a yeren goto other side
if ((a1>=1)&&((a1-1)<=b1)) {
a0=a0+1;a1=a1-1;boat=0;
System.out.println("a yeren right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((a1>=1)&&(b0==0)) {
a0=a0+1;a1=a1-1;boat=0;
System.out.println("a yeren right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//a chuanjiaoshi goto other side
if ((b1>=1)&&(a1<=(b1-1))) {
b0=b0+1;b1=b1-1;boat=0;
System.out.println("a chuanjiaoshi right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((b1>=1)&&(a1>(b1-1))&&((b1-1)==0)) {
b0=b0+1;b1=b1-1;boat=0;
System.out.println("a chuanjiaoshi right to left <<---------");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
}
//boat at left
//a yeren goto other side
if (boat==0) {
if ((a0>=1)&&((a0-1)<=b0)) {
a0=a0-1;a1=a1+1;boat=1;
System.out.println("a yeren left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((a0>=1)&&!((a0-1)<=b0)&&(b0==0)) {
a0=a0-1;a1=a1+1;boat=1;
System.out.println("a yeren left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//a chuanjiaoshi goto other side
if ((b0>=1)&&(a0<=(b0-1))) {
b0=b0-1;b1=b1+1;boat=1;
System.out.println("a chuanjiaoshi left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((b0>=1)&&(a0>(b0-1))&&((b0-1)==0)) {
b0=b0-1;b1=b1+1;boat=1;
System.out.println("a chuanjiaoshi left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//a chuanjiaoshi a yeren goto other side
if ((a0>=1)&&(b0>=1)&&(a0<=b0)) {
a0=a0-1;b0=b0-1;a1=a1+1;b1=b1+1;boat=1;
System.out.println("a chuanjiaoshi a yeren left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//two yeren goto other side
if ((a0>=2)&&((a0-2)<b0)) {
a0=a0-2;a1=a1+2;boat=1;
System.out.println("two yeren left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((a0>=2)&&((a0-2)>b0)&&(b0==0)) {
a0=a0-2;a1=a1+2;boat=1;
System.out.println("two yeren left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
//two chuanjiaoshi goto other side
if ((b0>=2)&&(a0<=(b0-2))) {
b0=b0-2;b1=b1+2;boat=1;
System.out.println("two chuanjiaoshi left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
if ((b0>=2)&&(a0>(b0-2))&&((b0-2)==0)) {
b0=b0-2;b1=b1+2;boat=1;
System.out.println("two chuanjiaoshi left to right ---------->>");
System.out.println("a0:"+a0+", "+"b0:"+b0+", "+"a1:"+a1+", "+"b1:"+b1);
continue label;
}
}
}
System.out.println("a1:"+a1+", "+"b1:"+b1+", "+"boat:"+boat);
}
}