Kunstig Intelligens til Brætspillet Taiji - Danmarks Tekniske Universitet
Kunstig Intelligens til Brætspillet Taiji - Danmarks Tekniske Universitet Kunstig Intelligens til Brætspillet Taiji - Danmarks Tekniske Universitet
132 Bilag A 93 i f ( rowEnd >= tModel . noRows ) { 94 i f ( rowEnd − rowStart == 2 && t [1]== t [ 3 ] ) 95 rowStart = tModel . noRows−3; // 4x3 96 e l s e 97 rowStart = tModel . noRows−4; // 4x4 98 rowEnd = tModel . noRows−1; 99 } 100 } 101 102 // s a e t t e r soegedybden 103 p u b l i c void setSearchDepth ( i n t d ) { 104 searchD = d ; 105 } 106 107 // c h e c k e r om der a l l e r e d e e r e t saadant b r a e t . Returnerer c o r d i n a t e r n e f o r den node , h v i s der e r . 108 p r i v a t e i n t [ ] c h e c k B o a r d I n d i v i d u a l i t y ( i n t [ ] [ ] b , i n t d ) { 109 i n t [ ] p = new i n t [ 3 ] ; 110 i n t h = tModel . tHash . hashFunction3 ( b ) ; 111 p [0]= d ; 112 p [1]= h ; 113 p[2]= −1; 114 f o r ( i n t i = 0 ; i = searchD | | ! tModel . movesLeftN ( n ) ) { 128 n . a = tModel . fMap . c a l D i f ( n . nodeBoard , tModel . noCols , tModel . noRows ) ; 129 r e t u r n ( n . a ) ; 130 } 131 e l s e { 132 i f ( ex == 1) { 133 i f ( n . a >= beta ) 134 r e t u r n ( n . a ) ; 135 } 136 n . a = −tModel . maxScore ; 137 i n t [ ] [ ] b = n . nodeBoard ; 138 i n t d = n . d ; 139 f o r ( i n t c=c o l S t a r t ; c
A.3 AITaijiLocalAreaAB.java 133 143 b [ c ] [ r +1] = 0 ; 144 i n t [ ] p = new i n t [ 3 ] ; 145 p = c h e c k B o a r d I n d i v i d u a l i t y ( b , d ) ; 146 i f ( p [ 2 ] >= 0) { 147 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ; 148 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 149 i n t v = min ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 150 i f ( n . a < v ) 151 n . a = v ; 152 i f ( n . a > beta ) { 153 b [ c ] [ r ] = 2 ; 154 b [ c ] [ r +1] = 2 ; 155 r e t u r n ( n . a ) ; 156 } 157 i f ( alpha < n . a ) 158 alpha = n . a ; 159 160 } 161 i f ( p [ 2 ] == −1){ 162 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 163 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c , r , c , r +1, n ) ) ) ; 164 count++; 165 i n t v = min ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ; 166 i f ( n . a < v ) 167 n . a = v ; 168 i f ( n . a > beta ) { 169 b [ c ] [ r ] = 2 ; 170 b [ c ] [ r +1] = 2 ; 171 r e t u r n ( n . a ) ; 172 } 173 i f ( alpha < n . a ) 174 alpha = n . a ; 175 176 } 177 b [ c ] [ r ] = 0 ; 178 b [ c ] [ r +1] = 1 ; 179 p = c h e c k B o a r d I n d i v i d u a l i t y ( b , d ) ; 180 i f ( p [ 2 ] >= 0) { 181 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ; 182 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 183 i n t v = min ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 184 i f ( n . a < v ) 185 n . a = v ; 186 i f ( n . a > beta ) { 187 b [ c ] [ r ] = 2 ; 188 b [ c ] [ r +1] = 2 ; 189 r e t u r n ( n . a ) ; 190 } 191 i f ( alpha < n . a )
- Page 92 and 93: 82 Test og sammenligning af de impl
- Page 94 and 95: 84 Test og sammenligning af de impl
- Page 96 and 97: 86 Test og sammenligning af de impl
- Page 98 and 99: 88 Test og sammenligning af de impl
- Page 100 and 101: 90 Test og sammenligning af de impl
- Page 102 and 103: 92 Konklusion selv n˚a igennem et
- Page 104 and 105: 94 Konklusion
- Page 106 and 107: 96 Bilag A 19 20 // i n i t i a l i
- Page 108 and 109: 98 Bilag A 120 nodes [ p [ 0 ] ] [
- Page 110 and 111: 100 Bilag A 218 i f ( n . a > beta
- Page 112 and 113: 102 Bilag A 319 p [2]= nodes [ p [
- Page 114 and 115: 104 Bilag A 419 420 421 422 423 424
- Page 116 and 117: 106 Bilag A 517 n . wr = tModel . n
- Page 118 and 119: 108 Bilag A 61 } 62 } 63 64 // c h
- Page 120 and 121: 110 Bilag A 155 b [ c +1][ r −1]
- Page 122 and 123: 112 Bilag A 251 b [ c −1][ r −1
- Page 124 and 125: 114 Bilag A 347 r e = placePieceMax
- Page 126 and 127: 116 Bilag A 443 r e = placePieceMax
- Page 128 and 129: 118 Bilag A 537 b [ c +1][ r −1]
- Page 130 and 131: 120 Bilag A 633 b [ c −1][ r −1
- Page 132 and 133: 122 Bilag A 729 beta = r e [ 2 ] ;
- Page 134 and 135: 124 Bilag A 825 beta = r e [ 2 ] ;
- Page 136 and 137: 126 Bilag A 916 i f ( n . a > v ) 9
- Page 138 and 139: 128 Bilag A 997 Root . wc=0; // tMo
- Page 140 and 141: 130 Bilag A 1097 n . bc = tModel .
- Page 144 and 145: 134 Bilag A 192 alpha = n . a ; 193
- Page 146 and 147: 136 Bilag A 291 } 292 293 // Min−
- Page 148 and 149: 138 Bilag A 391 n . c h i l d r e n
- Page 150 and 151: 140 Bilag A 493 i f ( Root . c h i
- Page 152 and 153: 142 Bilag A 593 r e t u r n ( n ) ;
- Page 154 and 155: 144 Bilag A 90 b [ c ] [ r ] = 0 ;
- Page 156 and 157: 146 Bilag A 185 // System . out . p
- Page 158 and 159: 148 Bilag A 280 } 281 282 // f l y
- Page 160 and 161: 150 Bilag A 377 // i f ( tTree . ma
- Page 162 and 163: 152 Bilag A 481 } 482 r e t u r n (
- Page 164 and 165: 154 Bilag A 532 // System . out . p
- Page 166 and 167: 156 Bilag A 33 p u b l i c i n t [
- Page 168 and 169: 158 Bilag A 137 f o r ( i n t r =0;
- Page 170 and 171: 160 Bilag A 245 f o r ( i n t r =0;
- Page 172 and 173: 162 Bilag A 353 break ; 354 } 355 i
- Page 174 and 175: 164 Bilag A 94 } 95 { // H o r i s
- Page 176 and 177: 166 Bilag A 198 p r i v a t e void
- Page 178 and 179: 168 Bilag A 303 f [ 1 ] [ 0 ] [ 1 ]
- Page 180 and 181: 170 Bilag A 409 f o r ( i n t r =0;
- Page 182 and 183: 172 Bilag A 43 p u b l i c Node cre
- Page 184 and 185: 174 Bilag A 27 whiteScore = new Sco
- Page 186 and 187: 176 Bilag A 65 bc = 1 ; 66 e l s e
- Page 188 and 189: 178 Bilag A 58 p u b l i c void mou
- Page 190 and 191: 180 Bilag A 149 S t r i n g t x t =
132 Bilag A<br />
93 i f ( rowEnd >= tModel . noRows ) {<br />
94 i f ( rowEnd − rowStart == 2 && t [1]== t [ 3 ] )<br />
95 rowStart = tModel . noRows−3; // 4x3<br />
96 e l s e<br />
97 rowStart = tModel . noRows−4; // 4x4<br />
98 rowEnd = tModel . noRows−1;<br />
99 }<br />
100 }<br />
101<br />
102 // s a e t t e r soegedybden<br />
103 p u b l i c void setSearchDepth ( i n t d ) {<br />
104 searchD = d ;<br />
105 }<br />
106<br />
107 // c h e c k e r om der a l l e r e d e e r e t saadant b r a e t . Returnerer<br />
c o r d i n a t e r n e f o r den node , h v i s der e r .<br />
108 p r i v a t e i n t [ ] c h e c k B o a r d I n d i v i d u a l i t y ( i n t [ ] [ ] b , i n t d ) {<br />
109 i n t [ ] p = new i n t [ 3 ] ;<br />
110 i n t h = tModel . tHash . hashFunction3 ( b ) ;<br />
111 p [0]= d ;<br />
112 p [1]= h ;<br />
113 p[2]= −1;<br />
114 f o r ( i n t i = 0 ; i = searchD | | ! tModel . movesLeftN ( n ) ) {<br />
128 n . a = tModel . fMap . c a l D i f ( n . nodeBoard , tModel . noCols ,<br />
tModel . noRows ) ;<br />
129 r e t u r n ( n . a ) ;<br />
130 }<br />
131 e l s e {<br />
132 i f ( ex == 1) {<br />
133 i f ( n . a >= beta )<br />
134 r e t u r n ( n . a ) ;<br />
135 }<br />
136 n . a = −tModel . maxScore ;<br />
137 i n t [ ] [ ] b = n . nodeBoard ;<br />
138 i n t d = n . d ;<br />
139 f o r ( i n t c=c o l S t a r t ; c