flash on 2009-11-9
♥0 |
Line 57 |
Modified 2009-11-10 03:10:31 |
MIT License
archived:2017-03-30 04:45:56
ActionScript3 source code
/**
* Copyright uwi ( http://wonderfl.net/user/uwi )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/3Erj
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
public class FlashTest extends Sprite {
private const N : int = 5;
private var _d : Array;
private var _ate : Array;
private var _tf : TextField;
public function FlashTest() {
_d = new Array(N * N);
var i : int, j : int;
for(i = 0;i < N;i++){
for(j = 0;j <= i;j++){
_d[i * N + j] = 0;
}
}
_ate = [];
_ate[-1] = 0;
_ate[1] = 0;
_tf = new TextField();
addChild(_tf);
_tf.text = "" + rec(1) + "\t" + _g;
}
private var _g : int = 0;
private function rec(turn : int) : Boolean
{
_g++;
if(_d[0] != 0)return false;
var i : int, j : int, k : int;
var u : int, v : int;
// put
var put : Boolean = false;
for(i = 0;i < N;i++){
for(j = 0;j <= i;j++){
if(_d[i * N + j] != 0)continue;
if(i == N - 1 || (_d[(i + 1) * N + j] != 0 && _d[(i + 1) * N + j + 1] != 0)){
if(i < N - 1 && _d[(i + 1) * N + j] == turn && _d[(i + 1) * N + j + 1] == turn){
continue;
}
put = true;
_d[i * N + j] = turn;
if(!rec(-turn)){
_d[i * N + j] = 0;
return true;
}
if(rec(turn)){
_d[i * N + j] = 0;
return true;
}
_d[i * N + j] = 0;
}
}
}
if(!put)return !rec(-turn);
return false;
}
}
}