文档库 最新最全的文档下载
当前位置:文档库 › 翻转棋源码

翻转棋源码

?const paddingX:uint = 50;
const paddingY:uint = 50;
const size:uint = 50;
var candown:Array;
var chesses:Array;
var who:uint = 1;
var whereX:uint;
var num:uint;
var NUM:uint = 0;
var whereY:uint;
var computer:Boolean;
var iftrue:Boolean;
var step:uint = 0;
var chess:Array;
var arr:Array=new Array();
var player:Array = new Array("player1","player2");
var Mxml:XML=new XML();
Mxml={step}{player[0]}{player[1]};
var down_chess:Array=new Array();
tip_bottom.addEventListener(MouseEvent.CLICK,need_tips);
var drawer:Shape=new Shape();
drawer.graphics.lineStyle(3,0,1);
for (whereX=0; whereX<8; whereX++)
{
drawer.graphics.moveTo(paddingX+whereX*size,paddingY);
drawer.graphics.lineTo(paddingX+whereX*size,paddingY+7*size);
drawer.graphics.moveTo(paddingX,paddingY+whereX*size);
drawer.graphics.lineTo(paddingX+7*size,paddingY+whereX*size);
}
stage.addChild(drawer);
new_game();
function new_game()
{
for (whereX=0; whereX<8; whereX++)
{
arr[whereX]=new Array();
for (whereY=0; whereY<8; whereY++)
{
arr[whereX][whereY] = 0;
}
}
arr[3][3] = 1;
arr[4][4] = 1;
arr[3][4] = 2;
arr[4][3] = 2;
show_chess();
}
function show_chess()
{
chess=new Array();
for (whereX=0; whereX<8; whereX++)
{
chess[whereX]=new Array();
for (whereY=0; whereY<8; whereY++)
{
switch (arr[whereX][whereY])
{
case 0 :
chess[whereX][whereY]= new chess1();
break;
case 1 :
chess[whereX][whereY]= new chess2();
break;
case 2 :
chess[whereX][whereY]= new chess3();
break;
}
chess[whereX][whereY].x = whereX * size + paddingX;
chess[whereX][whereY].y = whereY * size + paddingY;
stage.addChild(chess[whereX][whereY]);
if (arr[whereX][whereY] == 0)
{
chess[whereX][whereY].addEventListener(MouseEvent.CLICK,clicked);
}
may_win();
}
}
}
function clicked(e:MouseEvent):void
{
computer = false;
iftrue = false;
whereX=(e.target.x-paddingX)/size;
whereY=(e.target.y-paddingY)/size;
can_down();
}
function need_tips(e:Event):void
{
num = 0;
iftrue = false;
computer = true;
for (whereX=0; whereX<8; whereX++)
{
for (whereY=0; whereY<8; whereY++)
{
iftrue = false;
can_down();
}
}
}
function can_down()
{
var wantdown:Array = new Array(8);
candown = new Array(8);
var whos:Array=new Array();
for (var i:uint=1; i<8; i++)
{
try
{
whos[0] = arr[whereX - i][whereY - i];
}
catch (e:Error)
{
}
try
{
whos[1] = arr[whereX - i][whereY];
}
catch (e:Error)
{
}
try
{
whos[2] = arr[whereX - i][whereY + i];
}
catch (e:Error)
{
}
try
{
whos[3] = arr[whereX][whereY - i];
}
catch (e:Error)
{
}
try
{
whos[4] = arr[whereX][whereY + i];
}
catch (e:Error)
{
}
try
{
whos[5] = arr[whereX + i][whereY - i];
}
catch (e:Err

or)
{
}
try
{
whos[6] = arr[whereX + i][whereY];
}
catch (e:Error)
{
}
try
{
whos[7] = arr[whereX + i][whereY + i];
}
catch (e:Error)
{
}
for (var ii:uint=0; ii<8; ii++)
{
if (whos[ii] == 0)
{
wantdown[ii] = 1;
}
if (whos[ii] == who && wantdown[ii] != 1)
{
wantdown[ii] = 1;
if (i != 1)
{
candown[ii] = i;
iftrue = true;
}
}
}
}
if (iftrue)
{
if (computer)
{
if (arr[whereX][whereY] == 0)
{
var tip:MovieClip=new tips();
tip.x = whereX * size + paddingX;
tip.y = whereY * size + paddingY;
stage.addChild(tip);
num++;
}
}
else
{
save_step();
}
}
may_win();
if (whereX == 7 && whereY == 7 && num == 0 && computer)
{
change_people();
NUM++;
}
}
function save_step()
{

var xml:XML=new XML();
xml=<{step}>;
for (var i:uint=0; i<8; i++)
{
var lxml:XML=new XML();
lxml=<{i}>;
for (var ii:uint=0; ii<8; ii++)
{
var sxml:XML=new XML();
sxml=<{ii}>{arr[i][ii]};
lxml.appendChild(sxml);
}
xml.appendChild(lxml);
}
Mxml.appendChild(xml);
step++;
change_arr();

}
function change_arr()
{
for (var i:uint=0; i<8; i++)
{
var ii:uint;
switch (i)
{
case 0 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX - ii][whereY - ii] = who;
}
break;
case 1 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX - ii][whereY] = who;
}
break;
case 2 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX - ii][whereY + ii] = who;
}
break;
case 3 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX][whereY - ii] = who;
}
break;
case 4 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX][whereY + ii] = who;
}
break;
case 5 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX + ii][whereY - ii] = who;
}
break;
case 6 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX + ii][whereY] = who;
}
break;
case 7 :
for (ii=0; ii<=candown[i]; ii++)
{
arr[whereX + ii][whereY + ii] = who;
}
break;
}
}
down_it();
}
function down_it()
{
for (var xx:uint=0; xx<8; xx++)
{
for (var yy:uint=0; yy<8; yy++)
{
try
{
chess[xx][yy].removeEventListener(MouseEvent.CLICK,clicked);
}
catch (e:Error)
{
}
finally
{
stage.removeChild(chess[xx][yy]);
}
}
}
show_chess();
change_people();
}
function change_people()
{
if (who == 1)
{
who = 2;
}
else
{
who = 1;
}
}
function may_win()
{
chesses = new Array(0,0,0);
for (var xx:uint=0; xx<8; xx++)
{
for (var yy:uint=0; yy<8; yy++)
{
chesses[arr[xx][yy]]++;
}
}
trace(chesses[1])
nameMC.p1c.text = chesses[1];
nameMC.p2c.text = chesses[2];
if (chesses[0] == 0 || NUM == 2)

{
if (chesses[1] > chesses[2])
{
who = 0;
}
else if (chesses[1]==chesses[2])
{
who = 2;
}
else
{
who = 1;
show_winer();
}
}
}
function show_winer()
{
if (who == 2)
{
trace("平局");
}
else
{
trace(player[who]+"胜利了");
}
}

相关文档