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
138 Bilag A 391 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 392 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 393 i f ( n . a > v ) 394 n . a = v ; 395 i f ( n . a < alpha ) { 396 b [ c ] [ r ] = 2 ; 397 b [ c +1][ r ] = 2 ; 398 r e t u r n ( n . a ) ; 399 } 400 i f ( beta > n . a ) 401 beta = n . a ; 402 } 403 i f ( p [ 2 ] == −1){ 404 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 405 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c , r , c +1, r , n ) ) ) ; 406 count++; 407 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ; 408 i f ( n . a > v ) 409 n . a = v ; 410 i f ( n . a < alpha ) { 411 b [ c ] [ r ] = 2 ; 412 b [ c +1][ r ] = 2 ; 413 r e t u r n ( n . a ) ; 414 } 415 i f ( beta > n . a ) 416 beta = n . a ; 417 } 418 b [ c ] [ r ] = 0 ; 419 b [ c +1][ r ] = 1 ; 420 421 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 ) ; 422 i f ( p [ 2 ] >= 0) { 423 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ; 424 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 425 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 426 i f ( n . a > v ) 427 n . a = v ; 428 i f ( n . a < alpha ) { 429 b [ c ] [ r ] = 2 ; 430 b [ c +1][ r ] = 2 ; 431 r e t u r n ( n . a ) ; 432 } 433 i f ( beta > n . a ) 434 beta = n . a ; 435 } 436 i f ( p [ 2 ] == −1){ 437 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 438 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c +1, r , c , r , n ) ) ) ;
A.3 AITaijiLocalAreaAB.java 139 439 count++; 440 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ; 441 i f ( n . a > v ) 442 n . a = v ; 443 i f ( n . a < alpha ) { 444 b [ c ] [ r ] = 2 ; 445 b [ c +1][ r ] = 2 ; 446 r e t u r n ( n . a ) ; 447 } 448 i f ( beta > n . a ) 449 beta = n . a ; 450 } 451 b [ c ] [ r ] = 2 ; 452 b [ c +1][ r ] = 2 ; 453 } 454 } 455 } 456 r e t u r n ( n . a ) ; 457 } 458 } 459 460 461 462 463 // s a e t t e r s c o r e n f o r en node t i l −”u e n d e l i g ” 464 p r i v a t e Node setScoreMin ( Node n ) { 465 n . a = −tModel . maxScore ; 466 r e t u r n ( n ) ; 467 } 468 // s a e t t e r s c o r e n f o r en node t i l ” u e n d e l i g ” 469 p r i v a t e Node setScoreMax ( Node n ) { 470 n . a = tModel . maxScore ; 471 r e t u r n ( n ) ; 472 } 473 474 475 476 p u b l i c Node returnMove ( boolean b ) { 477 i f ( tModel . currentTurn == 1) { 478 tNode = new Node ( ) ; 479 Root = tNode . createNode ( tModel . currentTurn , tModel ) ; 480 Root . wc=tModel . noCols / 2 ; 481 Root . wr=tModel . noCols / 2 ; 482 Root . bc=Root . wc ; 483 Root . br=Root . wr+1; 484 r e t u r n ( Root ) ; 485 } 486 LocalAreaAB ( ) ; 487 488 w h i l e ( Root . c h i l d r e n . s i z e ( ) == 0 && tModel . movesLeft ( ) ) { 489 i f ( b ) 490 min ( Root ,−tModel . maxScore , tModel . maxScore , 0 ) ; 491 i f ( ! b ) 492 max( Root ,−tModel . maxScore , tModel . maxScore , 0 ) ;
- 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 142 and 143: 132 Bilag A 93 i f ( rowEnd >= tMod
- Page 144 and 145: 134 Bilag A 192 alpha = n . a ; 193
- Page 146 and 147: 136 Bilag A 291 } 292 293 // Min−
- 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 =
- Page 192 and 193: 182 Bilag A l o a d i n g the f i l
- Page 194 and 195: 184 Bilag A 7 p u b l i c AITaijiMi
- Page 196 and 197: 186 Bilag A 105 i f ( b l a c k P l
A.3 AI<strong>Taiji</strong>LocalAreaAB.java 139<br />
439 count++;<br />
440 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] )<br />
, alpha , beta , 0 ) ;<br />
441 i f ( n . a > v )<br />
442 n . a = v ;<br />
443 i f ( n . a < alpha ) {<br />
444 b [ c ] [ r ] = 2 ;<br />
445 b [ c +1][ r ] = 2 ;<br />
446 r e t u r n ( n . a ) ;<br />
447 }<br />
448 i f ( beta > n . a )<br />
449 beta = n . a ;<br />
450 }<br />
451 b [ c ] [ r ] = 2 ;<br />
452 b [ c +1][ r ] = 2 ;<br />
453 }<br />
454 }<br />
455 }<br />
456 r e t u r n ( n . a ) ;<br />
457 }<br />
458 }<br />
459<br />
460<br />
461<br />
462<br />
463 // s a e t t e r s c o r e n f o r en node t i l −”u e n d e l i g ”<br />
464 p r i v a t e Node setScoreMin ( Node n ) {<br />
465 n . a = −tModel . maxScore ;<br />
466 r e t u r n ( n ) ;<br />
467 }<br />
468 // s a e t t e r s c o r e n f o r en node t i l ” u e n d e l i g ”<br />
469 p r i v a t e Node setScoreMax ( Node n ) {<br />
470 n . a = tModel . maxScore ;<br />
471 r e t u r n ( n ) ;<br />
472 }<br />
473<br />
474<br />
475<br />
476 p u b l i c Node returnMove ( boolean b ) {<br />
477 i f ( tModel . currentTurn == 1) {<br />
478 tNode = new Node ( ) ;<br />
479 Root = tNode . createNode ( tModel . currentTurn , tModel ) ;<br />
480 Root . wc=tModel . noCols / 2 ;<br />
481 Root . wr=tModel . noCols / 2 ;<br />
482 Root . bc=Root . wc ;<br />
483 Root . br=Root . wr+1;<br />
484 r e t u r n ( Root ) ;<br />
485 }<br />
486 LocalAreaAB ( ) ;<br />
487<br />
488 w h i l e ( Root . c h i l d r e n . s i z e ( ) == 0 && tModel . movesLeft ( ) ) {<br />
489 i f ( b )<br />
490 min ( Root ,−tModel . maxScore , tModel . maxScore , 0 ) ;<br />
491 i f ( ! b )<br />
492 max( Root ,−tModel . maxScore , tModel . maxScore , 0 ) ;