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

09.09.2013 Views

102 Bilag A 319 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 320 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c , r +1, c , r , n ) ) ) ; 321 count++; 322 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ; 323 i f ( n . a > v ) 324 n . a = v ; 325 i f ( n . a < alpha ) { 326 b [ c ] [ r ] = 2 ; 327 b [ c ] [ r +1] = 2 ; 328 r e t u r n ( n . a ) ; 329 } 330 i f ( beta > n . a ) 331 beta = n . a ; 332 } 333 b [ c ] [ r ] = 2 ; 334 b [ c ] [ r +1] = 2 ; 335 336 337 } 338 } 339 } 340 341 342 f o r ( i n t c =0; c < tModel . noCols −1; c++){ 343 f o r ( i n t r =0; r < tModel . noRows ; r++){ 344 i f ( b [ c ] [ r ] == 2 && b [ c +1][ r ] == 2 ) { 345 b [ c ] [ r ] = 1 ; 346 b [ c +1][ r ] = 0 ; 347 i n t [ ] p = new i n t [ 3 ] ; 348 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 ) ; 349 i f ( p [ 2 ] >= 0) { 350 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ; 351 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 352 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 353 i f ( n . a > v ) 354 n . a = v ; 355 i f ( n . a < alpha ) { 356 b [ c ] [ r ] = 2 ; 357 b [ c +1][ r ] = 2 ; 358 r e t u r n ( n . a ) ; 359 } 360 i f ( beta > n . a ) 361 beta = n . a ; 362 } 363 i f ( p [ 2 ] == −1){ 364 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 365 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c , r , c +1, r , n ) ) ) ; 366 count++; 367 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ;

A.1 AITaijiAlphaBeta.java 103 368 i f ( n . a > v ) 369 n . a = v ; 370 i f ( n . a < alpha ) { 371 b [ c ] [ r ] = 2 ; 372 b [ c +1][ r ] = 2 ; 373 r e t u r n ( n . a ) ; 374 } 375 i f ( beta > n . a ) 376 beta = n . a ; 377 } 378 b [ c ] [ r ] = 0 ; 379 b [ c +1][ r ] = 1 ; 380 381 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 ) ; 382 i f ( p [ 2 ] >= 0) { 383 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ; 384 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 385 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 386 i f ( n . a > v ) 387 n . a = v ; 388 i f ( n . a < alpha ) { 389 b [ c ] [ r ] = 2 ; 390 b [ c +1][ r ] = 2 ; 391 r e t u r n ( n . a ) ; 392 } 393 i f ( beta > n . a ) 394 beta = n . a ; 395 } 396 i f ( p [ 2 ] == −1){ 397 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 398 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c +1, r , c , r , n ) ) ) ; 399 count++; 400 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ; 401 i f ( n . a > v ) 402 n . a = v ; 403 i f ( n . a < alpha ) { 404 b [ c ] [ r ] = 2 ; 405 b [ c +1][ r ] = 2 ; 406 r e t u r n ( n . a ) ; 407 } 408 i f ( beta > n . a ) 409 beta = n . a ; 410 } 411 b [ c ] [ r ] = 2 ; 412 b [ c +1][ r ] = 2 ; 413 } 414 } 415 } 416 r e t u r n ( n . a ) ; 417 } 418 }

102 Bilag A<br />

319 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ;<br />

320 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode .<br />

createChildNode ( c , r +1, c , r , n ) ) ) ;<br />

321 count++;<br />

322 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] )<br />

, alpha , beta , 0 ) ;<br />

323 i f ( n . a > v )<br />

324 n . a = v ;<br />

325 i f ( n . a < alpha ) {<br />

326 b [ c ] [ r ] = 2 ;<br />

327 b [ c ] [ r +1] = 2 ;<br />

328 r e t u r n ( n . a ) ;<br />

329 }<br />

330 i f ( beta > n . a )<br />

331 beta = n . a ;<br />

332 }<br />

333 b [ c ] [ r ] = 2 ;<br />

334 b [ c ] [ r +1] = 2 ;<br />

335<br />

336<br />

337 }<br />

338 }<br />

339 }<br />

340<br />

341<br />

342 f o r ( i n t c =0; c < tModel . noCols −1; c++){<br />

343 f o r ( i n t r =0; r < tModel . noRows ; r++){<br />

344 i f ( b [ c ] [ r ] == 2 && b [ c +1][ r ] == 2 ) {<br />

345 b [ c ] [ r ] = 1 ;<br />

346 b [ c +1][ r ] = 0 ;<br />

347 i n t [ ] p = new i n t [ 3 ] ;<br />

348 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 ) ;<br />

349 i f ( p [ 2 ] >= 0) {<br />

350 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ;<br />

351 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p<br />

[ 2 ] ) ) ;<br />

352 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] )<br />

, alpha , beta , 1 ) ;<br />

353 i f ( n . a > v )<br />

354 n . a = v ;<br />

355 i f ( n . a < alpha ) {<br />

356 b [ c ] [ r ] = 2 ;<br />

357 b [ c +1][ r ] = 2 ;<br />

358 r e t u r n ( n . a ) ;<br />

359 }<br />

360 i f ( beta > n . a )<br />

361 beta = n . a ;<br />

362 }<br />

363 i f ( p [ 2 ] == −1){<br />

364 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ;<br />

365 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode .<br />

createChildNode ( c , r , c +1, r , n ) ) ) ;<br />

366 count++;<br />

367 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] )<br />

, alpha , beta , 0 ) ;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!