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

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 )

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

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

Saved successfully!

Ooh no, something went wrong!