STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
229595
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2595 · P5190

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/76665527?noj=FRM76665527-22DC" width="1" height="1"></div>

Easy Chess.swf

This is the info page for
Flash #12612

(Click the ID number above for more basic data on this flash file.)


Text
<P ALIGN="LEFT"><FONT FACE="_typewriter" SIZE="11" COLOR="#000000"> </FONT></P>

OK

STALEMATE.

GAME IS A DRAW.

(total moves: 15)

CHECKMATE!

YOU WIN!

(total moves: 15)

o

d

n

u

y

a

l

p

e

r

t

i

q

PAWN PROMOTION

Choose your pawn's new piece:

YOU LOSE.

(total moves: 15)

2005 James M. Burton

c

Easy Chess

play

about

rules

back

>

is an attempt to answer the question: can
a computer chess program Be MADE so unintelligent
that even it's creator, james M. Burton, can OCCASIONALLY
beat it?  I also hope this might be a good game for
beginners LOOKING FOR an easy opponent.
This and other flash & Windows games are
100% Free to downloaded from www.somegames.net.

A

B

C

D

E

F

G

H

1

3

2

4

5

6

7

8

Game Record:

Your Turn

Computer's Turn

Your Turn
Check!

Computer's Turn
Check!

Checkmate!
You Win!

Checkmate!
You Lose!

Stalemate.
No one wins.

REPLAY

Easy Chess

undo

replay

quit

DONE

Next

This is a brief overview of the rules of chess.  if you already know
how to play, prepare to have your intelligence insulted.
Chess is played on a square board with 8 rows and 8 columns,
making 64 squares.  There are always two players: one black, one white.
In this Flash game, the human always plays white and the computer black.
Normally you choose randomly who goes first, but in this game
the human is always first.
Each turn, a player moves just one piece (except in a
special case called "castling" that I will get to).  If you move your
piece onto a square occupied by an opponent's piece, you capture the
piece, removing it permanently from the game.  Neither player
is ever allowed to pass or skip a turn.

Rules of Chess: Overview

Here is how the board always begins.  You,
the human, control the white pieces at the
bottom; the computer controls the black.
Each player gets six kinds of pieces: pawns,
knights, bishops, rooks, queens, and kings.
The board is always arranged so that the
bottom right square is white  (from both
players' perspectives).  Both queens start on
squares of their own color (i.e. on the left).
Kings start on squares of the opposite color
(i.e. on the right).

Rules of Chess: initial board

This is a pawn.

Pawns are the weakest pieces
in the game, but also the most
common.  Each player gets
eight pawns.

A pawn can normally move only one square,
straight forward; but the first time it moves it
can go either one or two squares forward.  A
pawn cannot move forward if it is blocked by
any other piece, either friend or enemy.  In the
example to the left: notice that "forward" is up
for white and down for black, and how the
rightmost pawns are stuck, unable to move.

Rules of Chess: PAWNS

Although a pawn cannot move forward if
blocked by another piece, it can move
diagonally forward if (and only if) the square
is occupied by an enemy piece.  By moving
into the enemy's square, the pawn captures
the piece.
In this example, the left white pawn can
make one capture, the middle can make two
(or go straight forward), and the right pawn
can't make any (although it too can go
forward).  You can never move one of your
own pieces on top of another, ever.

Rules of Chess: Pawn Captures

This is a knight.

The knight is the piece that
looks like a horse.  Each player
gets two knights.

The knight has an odd movement pattern: in a
single move it always goes one square
horizontally or vertically, then one square
diagonally away from its original position.  The
knight is the only piece that can jump over
another piece (either friend or enemy).  It
captures pieces only by landing on them, not by
jumping over them (since this is not checkers).

Rules of Chess: KNIGHTS

This is a bishop.

The bishop is the third-
strongest piece in the game.
Each player gets two bishops.

A bishop can move as far as it wants in a
diagonal line (see example), except that it cannot
jump over another piece.  That means it must
stop before any friendly piece, or it can land on
the square of an enemy piece to capture it.
Because a bishop always moves diagonally, it
spends its whole life on squares the same color
as the one it began on.

Rules of Chess: BISHOPS

This is a rook.

The rook is the piece that
looks like a tower.  It is the
second-strongest piece in the
game.  Each player gets two
rooks.

A rook moves like a bishop, except in a straight
horizontal or vertical line instead of diagonal.
Like a bishop, it cannot jump over pieces: it
must stop before friendly pieces, or it can land
on the square of an enemy piece to capture it.

Rules of Chess: ROOKS

This is a queen.

The queen is the strongest
piece in the game.  Each
player gets one queen.

A queen moves like a bishop and rook
combined: in one move she can go as far as
she wants in any direction, horizontal, vertical,
or diagonal.  Like bishops and rooks, a queen
cannot jump over a piece, but she can capture
an enemy piece by moving onto its square.

Rules of Chess: QUEENS

This is a king.

The king is the most important
piece in the game.  Each
player gets one king.

A king is not very strong: it can move one square
in any direction (and can capture enemy pieces
that way).  But it is extremely important: you win
the game by "checkmating" your enemy's king,
or lose it by having your own king "checkmated".
A king is never captured, for reasons you are
about to learn...

Rules of Chess: KINGS

Because the king is so important, you cannot
move it to any square where the enemy can
capture it in the next move.  Similarly, you
cannot move any piece if that move would
allow the other player to capture your king in
the next move.
In this example, the white king cannot move
to the left or it would be captured by the
black rook.  The white knight cannot move at
all (it is "pinned"), since if it moved the black
bishop could capture the king.  Only the
white pawns are free to move as they like,
since by moving they do not expose their
king to capture.

Rules of Chess: DEFENDING THE KING

If one player manages to threaten the other
player's king with capture (such that, if the
player did nothing, the king could be captured in
the next move), then the threatened player is in
check.  When you put someone in check, you
are supposed to say "check" out loud.  The
player in check must immediately take itself out
of check by (a) moving the king to safety, (b)
capturing the threating piece, or (c) getting a
third piece in the threatening piece's way.
In this example, the black rook has put white in
check.  White must either move its king, kill the
rook with the white knight, or move the white
bishop between the rook and the king.

Rules of Chess: CHECK

If one player maneges to put the other's king
into check so that it cannot escape capture,
then it is checkmate and the player wins!
In this example, the white player has put the
black king into checkmate, since it can be
captured by the white queen and there is no
way for it to escape (anywhere the king runs
some white piece can capture it).  White has
won the game.
The sole goal of chess is to put your opponent
into checkmate.  Capturing pieces is secondary:
you can have fewer pieces than your opponent
and still win.

Rules of Chess: CHECKMATE

If it is a player's turn, and that player is not in
check but cannot make any move without
exposing its king to capture (and so can't make
any move at all), then the game ends in
stalemate: a tie.
In this example, the black player (whose turn it
is), is in stalemate.  The black king is not in
check, but there is no square it can move to
without being captured.  The two black pawns
cannot move, because they are stuck.
Players who are close to losing will often try to
force themselves into stalemate.

Rules of Chess: STALEMATE

That's pretty much it: that's the game of
chess.  There are however a few special rules.
The first is pawn promotion.  If a pawn
makes it all the way to the other side of the
board, it is instantly promoted into a better
piece.  The player gets to choose whether it
becomes a knight, bishop, rook, or queen (but
never a king).  Nine times out of ten the player
will promote the pawn into a queen, of course.
In this example, the white pawn in the top left
is about to get promoted.  Click "next" to see
what happens.

SPECIAL RULE #1: Pawn promotion

The pawn was promoted into a queen.
Observe that the black king is now in check
(though not checkmate, since it can move
downwards to escape capture by the queen).

The next specal rule is castling.  If (a) all the
squares between your king and one of your
rooks is empty, (b) neither the king nor the rook
has moved in the game yet, and (c) no enemy
piece is threatening the king, the rook, or any
square between them; then you can "castle" by
moving your king two squares toward the rook,
and your rook to one square to the other side of
the king (to the left of the king if it started on
the right, to the right if it started on the left).
Here is an example of castling with the right
rook (also called a "short castling").

SPECIAL RULE #2: CASTLING

Notice how castling can put you in a good
defensive position, since now the king is
protected within a "castle" of rook and pawns.

Here is an example of castling with the left
rook (also called "long castling").  Observe that
the king moves two squares, while the rook
moves three squares.
Just as in short castling, all spaces between
the king and the rook must be empty, neither
king nor rook may have moved yet, and no
enemy piece can be threatening the king, the
rook, or any empty square between them.

As with short castling, this move can put your
king into a good defensive position.

En passant is the weird rule nobody bothers to
learn.  If one player moves a pawn two squares
forward (which is only allowed on that pawn's
first move), so that it passes over a square
where an enemy pawn could have taken it if it
had moved just one square forward, then that
enemy pawn can capture the piece by moving
diagonally to where it would have been if it had
gone one space forward.
If that made no sense, the example to the left
should help (black pawn moves two squares
forward, white pawn captures black pawn en
passant).

1

2

SPECIAL RULE #3: EN PASSANT

En passant, by the way, is the only way you
can ever capture a piece without moving your
own piece onto its square.

There are a few miscellaneous rules that I haven't bothered to put
into the game (yet).  Here are the main missing rules that I know about:
#1. Random selection of which side goes first.
#2. Chess clocks to limit how long you can think before a move.
(I never liked playing chess with a clock anyway.)
#3: Stalemate by repetition (if the same board position is repeated 3 times
in the game, it's an automatic stalemate).
#4: Stalemate by attrition (if 50 moves pass without a single capture or pawn move,
it's an automatic stalemate)
#5: Full moon rule (on full moons and leap day, bishops move like
knights and kinghts like bishops)

Rules of Chess: MISSING RULES

The user interface should be straightforward.
To move one of your own pieces, either click
the piece and then click where you want it to
go, or else just drag the piece directly.  The
computer will not let you make an illegal move
(including exposing your king to capture).
The computer will move automatically after
you.  It may need a few seconds to ponder
first.
To get the hang of the controls, try moving
the queen around now.

Rules of Chess: HOW TO MOVE

Well done!  You should know enough now to
play the game.  I hope it will be a good way
for beginners to learn, and for everyone else to
improve their self-esteem.
Email me at burton@cs.stanford.edu if you
find any bugs or problems with this game.
This and other Flash & Windows games are
100% free for you to download and play from
http://www.somegames.net

Rules of Chess: FIN.

ActionScript [AS1/AS2]

Frame 1
function init_game() { game_state = "init"; setup_piece_values(); init_board(); init_piece_sprites(); piece_fade = 0; select_row = (select_col = -1); blue_select._visible = false; green_select._visible = false; cyan_select._visible = false; ai_pawnjump = -1; player_pawnjump = -1; history_elems = new Array(); history_total_length = 0; in_replay = false; current_dialog_symbol = null; rand_enable = true; } function game_main() { if (game_state == "init") { game_state = "fade_in"; return("Animate"); } if ((game_state == "fade_in") || (game_state == "move_ai_piece")) { game_state = "player_move"; prepare_player_turn(); return("PlayerMove"); } if (game_state == "player_move") { game_state = "move_pl_piece"; return("Animate"); } if (game_state == "move_pl_piece") { game_state = "ai_ponder"; prepare_ai_turn(); return("AIPonder"); } if (game_state == "ai_ponder") { game_state = "move_ai_piece"; return("Animate"); } if (game_state == "replay") { game_state = "fade_for_replay"; return("Animate"); } if (game_state == "fade_for_replay") { start_replay(); game_state = "fade_in"; return("Animate"); } if (game_state == "quit") { game_state = "fade_out"; clear_history(); piece_fade = 0; return("Animate"); } if (game_state == "fade_out") { return("Fade Out"); } } function game_anim() { if (game_state == "fade_in") { return(fade_pieces()); } if (game_state == "fade_out") { return(unfade_pieces(false)); } if (game_state == "fade_for_replay") { return(unfade_pieces(true)); } if ((game_state == "move_pl_piece") || (game_state == "move_ai_piece")) { return(do_move_piece()); } } function prepare_player_turn() { select_row = (select_col = -1); drag_piece = null; var in_check = is_in_check(1); player_legal_moves = get_legal_moves(1); if (player_legal_moves.length == 0) { if (in_check) { indicate_turn("ai_mate"); show_game_dialog("ai_checkmate"); } else { indicate_turn("stalemate"); show_game_dialog("stalemate"); } } else if (in_check) { indicate_turn("pl_check"); } else { indicate_turn("pl_turn"); } } function check_player_replay() { if (in_replay && (replay_index < replay_moves.length)) { var replay_move = replay_moves[replay_index++]; if (replay_index >= replay_moves.length) { in_replay = false; } begin_player_move(replay_move.old_row, replay_move.old_col, replay_move.new_row, replay_move.new_col); } } function release_player_moves() { delete_moves(player_legal_moves); } function is_legal_player_move(old_row, old_col, new_row, new_col) { if ((old_row == new_row) && (old_col == new_col)) { return(false); } if (ai_board[new_row][new_col] < 0) { return(false); } return(lookup_player_move(old_row, old_col, new_row, new_col) != null); } function lookup_player_move(old_row, old_col, new_row, new_col) { var i = 0; while (i < player_legal_moves.length) { if ((((player_legal_moves[i].old_row == old_row) && (player_legal_moves[i].old_col == old_col)) && (player_legal_moves[i].new_row == new_row)) && (player_legal_moves[i].new_col == new_col)) { return(player_legal_moves[i]); } i++; } return(null); } function perform_undo() { if (history_elems.length < 2) { return(undefined); } var history_elem = pop_history(); undo_history_element(history_elem); if ((history_elems.length % 2) == 1) { history_elem = pop_history(); undo_history_element(history_elem); } delete_moves(player_legal_moves); select_row = (select_col = -1); blue_select._visible = false; green_select._visible = false; cyan_select._visible = false; } function undo_history_element(elem) { ai_board[elem.old_row][elem.old_col] = ai_board[elem.new_row][elem.new_col]; create_piece(elem.old_row, elem.old_col, true); ai_board[elem.new_row][elem.new_col] = 0; delete_piece(elem.new_row, elem.new_col); ai_board[elem.new_row][elem.new_col] = elem.captured; create_piece(elem.new_row, elem.new_col, true); pl_board[7 - elem.old_row][elem.old_col] = pl_board[7 - elem.new_row][elem.new_col]; pl_board[7 - elem.new_row][elem.new_col] = -elem.captured; if (elem.queened) { ai_board[elem.old_row][elem.old_col] = elem.pawn_promoted; pl_board[7 - elem.old_row][elem.old_col] = -elem.pawn_promoted; delete_piece(elem.old_row, elem.old_col); create_piece(elem.old_row, elem.old_col, true); } else if (elem.en_passant) { ai_board[elem.en_passant_row][elem.en_passant_col] = elem.en_passant_killed; pl_board[7 - elem.en_passant_row][elem.en_passant_col] = -elem.en_passant_killed; create_piece(elem.en_passant_row, elem.en_passant_col, true); } else if (elem.castle) { ai_board[elem.castle_old_row][elem.castle_old_col] = ai_board[elem.castle_new_row][elem.castle_new_col]; ai_board[elem.castle_new_row][elem.castle_new_col] = 0; create_piece(elem.castle_old_row, elem.castle_old_col, true); delete_piece(elem.castle_new_row, elem.castle_new_col); pl_board[7 - elem.castle_old_row][elem.castle_old_col] = pl_board[7 - elem.castle_new_row][elem.castle_new_col]; pl_board[7 - elem.castle_new_row][elem.castle_new_col] = 0; } } function build_history_elem(move, side) { var history_elem = new Object(); history_elem.side = side; history_elem.old_row = move.old_row; history_elem.old_col = move.old_col; history_elem.new_row = move.new_row; history_elem.new_col = move.new_col; history_elem.captured = move.captured; if (move.pawn_jump) { history_elem.pawn_jump = true; } history_elem.lines = new Array(); history_elem.lines[0] = ((side == 1) ? "W: " : "B: "); history_elem.lines[0] = history_elem.lines[0] + "ABCDEFGH".substr(history_elem.old_col, 1); history_elem.lines[0] = history_elem.lines[0] + "87654321".substr(history_elem.old_row, 1); history_elem.lines[0] = history_elem.lines[0] + " -> "; history_elem.lines[0] = history_elem.lines[0] + "ABCDEFGH".substr(history_elem.new_col, 1); history_elem.lines[0] = history_elem.lines[0] + "87654321".substr(history_elem.new_row, 1); if (history_elem.captured != 0) { history_elem.lines.push(" take " + get_piece_name(move.captured)); } if (move.special) { if (move.queened) { history_elem.lines.push(" into " + get_piece_name(move.queened)); history_elem.queened = move.queened; history_elem.pawn_promoted = move.pawn_promoted; } else if (move.castle) { history_elem.lines.push(" castles"); history_elem.castle = true; history_elem.castle_old_row = move.castle_old_row; history_elem.castle_old_col = move.castle_old_col; history_elem.castle_new_row = move.castle_new_row; history_elem.castle_new_col = move.castle_new_col; } else if (move.en_passant) { history_elem.lines.push(" en passant"); history_elem.en_passant = true; history_elem.en_passant_row = move.en_passant_row; history_elem.en_passant_col = move.en_passant_col; history_elem.en_passant_killed = move.en_passant_killed; } } return(history_elem); } function init_board() { create_board("RNBQKBNRPPPPPPPP................................pppppppprnbqkbnr"); } function create_move(moves, side, old_row, old_col, new_row, new_col) { var move = new Object(); if (side == 1) { move.old_row = 7 - old_row; move.old_col = old_col; move.new_row = 7 - new_row; move.new_col = new_col; move.captured = ai_board[7 - new_row][new_col]; } else { move.old_row = old_row; move.old_col = old_col; move.new_row = new_row; move.new_col = new_col; move.captured = ai_board[new_row][new_col]; } moves.push(move); return(move); } function delete_moves(moves) { var i = 0; while (i < moves.length) { if (moves[i].sub_moves) { delete_moves(moves[i].sub_moves); moves[i].sub_moves = null; } delete moves[i]; i++; } delete moves; } function push_move(move) { if (move.pass) { return(undefined); } ai_board[move.new_row][move.new_col] = ai_board[move.old_row][move.old_col]; ai_board[move.old_row][move.old_col] = 0; pl_board[7 - move.new_row][move.new_col] = pl_board[7 - move.old_row][move.old_col]; pl_board[7 - move.old_row][move.old_col] = 0; if (move.special) { if (move.queened) { ai_board[move.new_row][move.new_col] = move.queened; pl_board[7 - move.new_row][move.new_col] = -move.queened; } else if (move.en_passant) { ai_board[move.en_passant_row][move.en_passant_col] = 0; pl_board[7 - move.en_passant_row][move.en_passant_col] = 0; } else if (move.castle) { ai_board[move.castle_new_row][move.castle_new_col] = ai_board[move.castle_old_row][move.castle_old_col]; ai_board[move.castle_old_row][move.castle_old_col] = 0; pl_board[7 - move.castle_new_row][move.castle_new_col] = pl_board[7 - move.castle_old_row][move.castle_old_col]; pl_board[7 - move.castle_old_row][move.castle_old_col] = 0; } } } function pop_move(move) { if (move.pass) { return(undefined); } ai_board[move.old_row][move.old_col] = ai_board[move.new_row][move.new_col]; ai_board[move.new_row][move.new_col] = move.captured; pl_board[7 - move.old_row][move.old_col] = pl_board[7 - move.new_row][move.new_col]; pl_board[7 - move.new_row][move.new_col] = -move.captured; if (move.special) { if (move.queened) { ai_board[move.old_row][move.old_col] = move.pawn_promoted; pl_board[7 - move.old_row][move.old_col] = -move.pawn_promoted; } else if (move.en_passant) { ai_board[move.en_passant_row][move.en_passant_col] = move.en_passant_killed; pl_board[7 - move.en_passant_row][move.en_passant_col] = -move.en_passant_killed; } else if (move.castle) { ai_board[move.castle_old_row][move.castle_old_col] = ai_board[move.castle_new_row][move.castle_new_col]; ai_board[move.castle_new_row][move.castle_new_col] = 0; pl_board[7 - move.castle_old_row][move.castle_old_col] = pl_board[7 - move.castle_new_row][move.castle_new_col]; pl_board[7 - move.castle_new_row][move.castle_new_col] = 0; } } } function trace_move(move, indent) { if (indent == null) { indent = ""; } trace((((((((((indent + move.old_row) + ",") + move.old_col) + " => ") + move.new_row) + ",") + move.new_col) + " (") + move.captured) + ")"); } function move_to_str(move) { return(((((((((move.old_row + ",") + move.old_col) + " => ") + move.new_row) + ",") + move.new_col) + " (") + get_piece_char(move.captured)) + ")"); } function trace_board(board) { trace("--------"); var row = 0; while (row < 8) { var line = ""; var col = 0; while (col < 8) { var piece = board[row][col]; line = line + get_piece_char(piece); col++; } trace(line); row++; } } function trace_boards() { trace("------------------"); var row = 0; while (row < 8) { var line = ""; var col = 0; while (col < 8) { var piece = ai_board[row][col]; line = line + get_piece_char(piece); col++; } line = line + " "; var col = 0; while (col < 8) { var piece = pl_board[row][col]; line = line + get_piece_char(piece); col++; } trace(line); row++; } } function create_board(board) { var counter = 0; ai_board = new Array(); pl_board = new Array(); var row = 0; while (row < 8) { ai_board[row] = new Array(); pl_board[7 - row] = new Array(); var col = 0; while (col < 8) { var char = board.charAt(counter++); if (char == "P") { ai_board[row][col] = m_pawn; } else if (char == "N") { ai_board[row][col] = m_knight; } else if (char == "B") { ai_board[row][col] = m_bishop; } else if (char == "R") { ai_board[row][col] = m_rook; } else if (char == "Q") { ai_board[row][col] = m_queen; } else if (char == "K") { ai_board[row][col] = m_king; } else if (char == "p") { ai_board[row][col] = e_pawn; } else if (char == "n") { ai_board[row][col] = e_knight; } else if (char == "b") { ai_board[row][col] = e_bishop; } else if (char == "r") { ai_board[row][col] = e_rook; } else if (char == "q") { ai_board[row][col] = e_queen; } else if (char == "k") { ai_board[row][col] = e_king; } else { ai_board[row][col] = 0; } pl_board[7 - row][col] = -ai_board[row][col]; col++; } row++; } } function get_piece_char(piece_id) { if (piece_id == m_pawn) { return("P"); } if (piece_id == m_rook) { return("R"); } if (piece_id == m_knight) { return("N"); } if (piece_id == m_bishop) { return("B"); } if (piece_id == m_queen) { return("Q"); } if (piece_id == m_king) { return("K"); } if (piece_id == e_pawn) { return("p"); } if (piece_id == e_rook) { return("r"); } if (piece_id == e_knight) { return("n"); } if (piece_id == e_bishop) { return("b"); } if (piece_id == e_queen) { return("q"); } if (piece_id == e_king) { return("k"); } if (piece_id == 0) { return("."); } return("?"); } function get_piece_name(piece_id) { if (piece_id == m_pawn) { return("pawn"); } if (piece_id == m_rook) { return("rook"); } if (piece_id == m_knight) { return("knight"); } if (piece_id == m_bishop) { return("bishop"); } if (piece_id == m_queen) { return("queen"); } if (piece_id == m_king) { return("king"); } if (piece_id == e_pawn) { return("pawn"); } if (piece_id == e_rook) { return("rook"); } if (piece_id == e_knight) { return("knight"); } if (piece_id == e_bishop) { return("bishop"); } if (piece_id == e_queen) { return("queen"); } if (piece_id == e_king) { return("king"); } if (piece_id == 0) { return("."); } return("?"); } function get_legal_moves(side) { var moves = get_available_moves(side); var i = 0; while (i < moves.length) { var move = moves[i]; push_move(move); var in_check = is_in_check(side); pop_move(move); if (in_check) { moves.splice(i, 1); i--; delete move; } i++; } return(moves); } function get_available_moves(side) { var board = ((side == 1) ? (pl_board) : (ai_board)); var row; var col; var piece; var pr; var pc; var pp; var moves = new Array(); var move; var pawn_jumped_col = -100; if (history_elems.length > 0) { var history_elem = history_elems[history_elems.length - 1]; if (history_elem.pawn_jump) { pawn_jumped_col = history_elem.new_col; } } row = 0; while (row < 8) { col = 0; while (col < 8) { piece = board[row][col]; if (piece <= 0) { } else { if (piece == m_pawn) { if (row < 7) { if (board[row + 1][col] == 0) { move = create_move(moves, side, row, col, row + 1, col); if (row == 6) { move.special = true; move.queened = ((side == 0) ? (m_queen) : (e_queen)); move.pawn_promoted = ((side == 0) ? (m_pawn) : (e_pawn)); } if ((row == 1) && (board[row + 2][col] == 0)) { move = create_move(moves, side, row, col, row + 2, col); move.pawn_jump = true; } } if ((col > 0) && (board[row + 1][col - 1] < 0)) { move = create_move(moves, side, row, col, row + 1, col - 1); if (row == 6) { move.special = true; move.queened = ((side == 0) ? (m_queen) : (e_queen)); move.pawn_promoted = ((side == 0) ? (m_pawn) : (e_pawn)); } } if ((col < 7) && (board[row + 1][col + 1] < 0)) { move = create_move(moves, side, row, col, row + 1, col + 1); if (row == 6) { move.special = true; move.queened = ((side == 0) ? (m_queen) : (e_queen)); move.pawn_promoted = ((side == 0) ? (m_pawn) : (e_pawn)); } } if ((row == 4) && (Math.abs(col - pawn_jumped_col) == 1)) { move = create_move(moves, side, row, col, row + 1, pawn_jumped_col); move.special = true; move.en_passant = true; move.en_passant_row = ((side == 0) ? 4 : 3); move.en_passant_col = pawn_jumped_col; move.en_passant_killed = ((side == 0) ? (e_pawn) : (m_pawn)); } } } else if (piece == m_knight) { if (row > 0) { if ((col > 1) && (board[row - 1][col - 2] <= 0)) { create_move(moves, side, row, col, row - 1, col - 2); } if ((col < 6) && (board[row - 1][col + 2] <= 0)) { create_move(moves, side, row, col, row - 1, col + 2); } if (row > 1) { if ((col > 0) && (board[row - 2][col - 1] <= 0)) { create_move(moves, side, row, col, row - 2, col - 1); } if ((col < 7) && (board[row - 2][col + 1] <= 0)) { create_move(moves, side, row, col, row - 2, col + 1); } } } if (row < 7) { if ((col > 1) && (board[row + 1][col - 2] <= 0)) { create_move(moves, side, row, col, row + 1, col - 2); } if ((col < 6) && (board[row + 1][col + 2] <= 0)) { create_move(moves, side, row, col, row + 1, col + 2); } if (row < 6) { if ((col > 0) && (board[row + 2][col - 1] <= 0)) { create_move(moves, side, row, col, row + 2, col - 1); } if ((col < 7) && (board[row + 2][col + 1] <= 0)) { create_move(moves, side, row, col, row + 2, col + 1); } } } } if ((piece == m_rook) || (piece == m_queen)) { pr = row + 1; while (pr < 8) { pp = board[pr][col]; if (pp <= 0) { create_move(moves, side, row, col, pr, col); } if (pp != 0) { break; } pr++; } pr = row - 1; while (pr >= 0) { pp = board[pr][col]; if (pp <= 0) { create_move(moves, side, row, col, pr, col); } if (pp != 0) { break; } pr--; } pc = col + 1; while (pc < 8) { pp = board[row][pc]; if (pp <= 0) { create_move(moves, side, row, col, row, pc); } if (pp != 0) { break; } pc++; } pc = col - 1; while (pc >= 0) { pp = board[row][pc]; if (pp <= 0) { create_move(moves, side, row, col, row, pc); } if (pp != 0) { break; } pc--; } } if ((piece == m_bishop) || (piece == m_queen)) { (pr = row + 1); (pc = col + 1); while ((pr < 8) && (pc < 8)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr++; pc++; } (pr = row + 1); (pc = col - 1); while ((pr < 8) && (pc >= 0)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr++; pc--; } (pr = row - 1); (pc = col + 1); while ((pr >= 0) && (pc < 8)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr--; pc++; } (pr = row - 1); (pc = col - 1); while ((pr >= 0) && (pc >= 0)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr--; pc--; } } if (piece == m_king) { if (row > 0) { if ((col > 0) && (board[row - 1][col - 1] <= 0)) { create_move(moves, side, row, col, row - 1, col - 1); } if (board[row - 1][col] <= 0) { create_move(moves, side, row, col, row - 1, col); } if ((col < 7) && (board[row - 1][col + 1] <= 0)) { create_move(moves, side, row, col, row - 1, col + 1); } } if (row < 7) { if ((col > 0) && (board[row + 1][col - 1] <= 0)) { create_move(moves, side, row, col, row + 1, col - 1); } if (board[row + 1][col] <= 0) { create_move(moves, side, row, col, row + 1, col); } if ((col < 7) && (board[row + 1][col + 1] <= 0)) { create_move(moves, side, row, col, row + 1, col + 1); } } if ((col > 0) && (board[row][col - 1] <= 0)) { create_move(moves, side, row, col, row, col - 1); } if ((col < 7) && (board[row][col + 1] <= 0)) { create_move(moves, side, row, col, row, col + 1); } if (((row == 0) && (col == 4)) && (!ever_moved_from(side, 0, 4))) { var other_board = ((side == 1) ? (ai_board) : (pl_board)); if (((((board[0][0] == m_rook) && (board[0][1] == 0)) && (board[0][2] == 0)) && (board[0][3] == 0)) && (!ever_moved_from(side, 0, 0))) { other_board[7][0] = e_king; other_board[7][1] = e_king; other_board[7][2] = e_king; other_board[7][3] = e_king; var any_threatened = is_in_check(side); other_board[7][0] = e_rook; other_board[7][1] = 0; other_board[7][2] = 0; other_board[7][3] = 0; if (!any_threatened) { move = create_move(moves, side, 0, 4, 0, 2); move.special = true; move.castle = true; move.castle_old_row = ((side == 0) ? 0 : 7); move.castle_old_col = 0; move.castle_new_row = ((side == 0) ? 0 : 7); move.castle_new_col = 3; } } if ((((board[0][7] == m_rook) && (board[0][6] == 0)) && (board[0][5] == 0)) && (!ever_moved_from(side, 0, 7))) { other_board[7][7] = e_king; other_board[7][6] = e_king; other_board[7][5] = e_king; var any_threatened = is_in_check(side); other_board[7][7] = e_rook; other_board[7][6] = 0; other_board[7][5] = 0; if (!any_threatened) { move = create_move(moves, side, 0, 4, 0, 6); move.special = true; move.castle = true; move.castle_old_row = ((side == 0) ? 0 : 7); move.castle_old_col = 7; move.castle_new_row = ((side == 0) ? 0 : 7); move.castle_new_col = 5; } } } } } col++; } row++; } return(moves); } function is_in_check(side) { var board = ((side == 1) ? (ai_board) : (pl_board)); var row; var col; var piece; var pr; var pc; var pp; row = 0; while (row < 8) { col = 0; while (col < 8) { piece = board[row][col]; if (piece <= 0) { } else { if (piece == m_pawn) { if (row < 7) { if ((col > 0) && (board[row + 1][col - 1] == e_king)) { return(true); } if ((col < 7) && (board[row + 1][col + 1] == e_king)) { return(true); } } } else if (piece == m_knight) { if (row > 0) { if ((col > 1) && (board[row - 1][col - 2] == e_king)) { return(true); } if ((col < 6) && (board[row - 1][col + 2] == e_king)) { return(true); } if (row > 1) { if ((col > 0) && (board[row - 2][col - 1] == e_king)) { return(true); } if ((col < 7) && (board[row - 2][col + 1] == e_king)) { return(true); } } } if (row < 7) { if ((col > 1) && (board[row + 1][col - 2] == e_king)) { return(true); } if ((col < 6) && (board[row + 1][col + 2] == e_king)) { return(true); } if (row < 6) { if ((col > 0) && (board[row + 2][col - 1] == e_king)) { return(true); } if ((col < 7) && (board[row + 2][col + 1] == e_king)) { return(true); } } } } if ((piece == m_rook) || (piece == m_queen)) { pr = row + 1; while (pr < 8) { pp = board[pr][col]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pr++; } pr = row - 1; while (pr >= 0) { pp = board[pr][col]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pr--; } pc = col + 1; while (pc < 8) { pp = board[row][pc]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pc++; } pc = col - 1; while (pc >= 0) { pp = board[row][pc]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pc--; } } if ((piece == m_bishop) || (piece == m_queen)) { (pr = row + 1); (pc = col + 1); while ((pr < 8) && (pc < 8)) { pp = board[pr][pc]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pr++; pc++; } (pr = row + 1); (pc = col - 1); while ((pr < 8) && (pc >= 0)) { pp = board[pr][pc]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pr++; pc--; } (pr = row - 1); (pc = col + 1); while ((pr >= 0) && (pc < 8)) { pp = board[pr][pc]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pr--; pc++; } (pr = row - 1); (pc = col - 1); while ((pr >= 0) && (pc >= 0)) { pp = board[pr][pc]; if (pp == e_king) { return(true); } if (pp != 0) { break; } pr--; pc--; } } if (piece == m_king) { if (row > 0) { if ((col > 0) && (board[row - 1][col - 1] == e_king)) { return(true); } if (board[row - 1][col] == e_king) { return(true); } if ((col < 7) && (board[row - 1][col + 1] == e_king)) { return(true); } } if (row < 7) { if ((col > 0) && (board[row + 1][col - 1] == e_king)) { return(true); } if (board[row + 1][col] == e_king) { return(true); } if ((col < 7) && (board[row + 1][col + 1] == e_king)) { return(true); } } if ((col > 0) && (board[row][col - 1] == e_king)) { return(true); } if ((col < 7) && (board[row][col + 1] == e_king)) { return(true); } } } col++; } row++; } return(false); } function ever_moved_from(side, row, col) { if (side == 1) { row = 7 - row; } var i = 0; while (i < history_elems.length) { var history_elem = history_elems[i]; if ((history_elem.old_row == row) && (history_elem.old_col == col)) { return(true); } i++; } return(false); } function get_quick_moves_quiesce(side) { var board = ((side == 1) ? (pl_board) : (ai_board)); var row; var col; var piece; var pr; var pc; var pp; var moves = new Array(); row = 0; while (row < 8) { col = 0; while (col < 8) { piece = board[row][col]; if (piece <= 0) { } else { if (piece == m_pawn) { if (row < 7) { if ((col > 0) && (board[row + 1][col - 1] < 0)) { create_move(moves, side, row, col, row + 1, col - 1); } if ((col < 7) && (board[row + 1][col + 1] < 0)) { create_move(moves, side, row, col, row + 1, col + 1); } } } else if (piece == m_knight) { if (row > 0) { if ((col > 1) && (board[row - 1][col - 2] < 0)) { create_move(moves, side, row, col, row - 1, col - 2); } if ((col < 6) && (board[row - 1][col + 2] < 0)) { create_move(moves, side, row, col, row - 1, col + 2); } if (row > 1) { if ((col > 0) && (board[row - 2][col - 1] < 0)) { create_move(moves, side, row, col, row - 2, col - 1); } if ((col < 7) && (board[row - 2][col + 1] < 0)) { create_move(moves, side, row, col, row - 2, col + 1); } } } if (row < 7) { if ((col > 1) && (board[row + 1][col - 2] < 0)) { create_move(moves, side, row, col, row + 1, col - 2); } if ((col < 6) && (board[row + 1][col + 2] < 0)) { create_move(moves, side, row, col, row + 1, col + 2); } if (row < 6) { if ((col > 0) && (board[row + 2][col - 1] < 0)) { create_move(moves, side, row, col, row + 2, col - 1); } if ((col < 7) && (board[row + 2][col + 1] < 0)) { create_move(moves, side, row, col, row + 2, col + 1); } } } } if ((piece == m_rook) || (piece == m_queen)) { pr = row + 1; while (pr < 8) { pp = board[pr][col]; if (pp < 0) { create_move(moves, side, row, col, pr, col); } if (pp != 0) { break; } pr++; } pr = row - 1; while (pr >= 0) { pp = board[pr][col]; if (pp < 0) { create_move(moves, side, row, col, pr, col); } if (pp != 0) { break; } pr--; } pc = col + 1; while (pc < 8) { pp = board[row][pc]; if (pp < 0) { create_move(moves, side, row, col, row, pc); } if (pp != 0) { break; } pc++; } pc = col - 1; while (pc >= 0) { pp = board[row][pc]; if (pp < 0) { create_move(moves, side, row, col, row, pc); } if (pp != 0) { break; } pc--; } } if ((piece == m_bishop) || (piece == m_queen)) { (pr = row + 1); (pc = col + 1); while ((pr < 8) && (pc < 8)) { pp = board[pr][pc]; if (pp < 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr++; pc++; } (pr = row + 1); (pc = col - 1); while ((pr < 8) && (pc >= 0)) { pp = board[pr][pc]; if (pp < 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr++; pc--; } (pr = row - 1); (pc = col + 1); while ((pr >= 0) && (pc < 8)) { pp = board[pr][pc]; if (pp < 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr--; pc++; } (pr = row - 1); (pc = col - 1); while ((pr >= 0) && (pc >= 0)) { pp = board[pr][pc]; if (pp < 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr--; pc--; } } if (piece == m_king) { if (row > 0) { if ((col > 0) && (board[row - 1][col - 1] < 0)) { create_move(moves, side, row, col, row - 1, col - 1); } if (board[row - 1][col] < 0) { create_move(moves, side, row, col, row - 1, col); } if ((col < 7) && (board[row - 1][col + 1] < 0)) { create_move(moves, side, row, col, row - 1, col + 1); } } if (row < 7) { if ((col > 0) && (board[row + 1][col - 1] < 0)) { create_move(moves, side, row, col, row + 1, col - 1); } if (board[row + 1][col] < 0) { create_move(moves, side, row, col, row + 1, col); } if ((col < 7) && (board[row + 1][col + 1] < 0)) { create_move(moves, side, row, col, row + 1, col + 1); } } if ((col > 0) && (board[row][col - 1] < 0)) { create_move(moves, side, row, col, row, col - 1); } if ((col < 7) && (board[row][col + 1] < 0)) { create_move(moves, side, row, col, row, col + 1); } } } col++; } row++; } return(moves); } function get_quick_moves(side) { var board = ((side == 1) ? (pl_board) : (ai_board)); var row; var col; var piece; var pr; var pc; var pp; var moves = new Array(); row = 0; while (row < 8) { col = 0; while (col < 8) { piece = board[row][col]; if (piece <= 0) { } else { if (piece == m_pawn) { if (row < 7) { if (board[row + 1][col] == 0) { create_move(moves, side, row, col, row + 1, col); if ((row == 1) && (board[row + 2][col] == 0)) { create_move(moves, side, row, col, row + 2, col); } } if ((col > 0) && (board[row + 1][col - 1] < 0)) { create_move(moves, side, row, col, row + 1, col - 1); } if ((col < 7) && (board[row + 1][col + 1] < 0)) { create_move(moves, side, row, col, row + 1, col + 1); } } } else if (piece == m_knight) { if (row > 0) { if ((col > 1) && (board[row - 1][col - 2] <= 0)) { create_move(moves, side, row, col, row - 1, col - 2); } if ((col < 6) && (board[row - 1][col + 2] <= 0)) { create_move(moves, side, row, col, row - 1, col + 2); } if (row > 1) { if ((col > 0) && (board[row - 2][col - 1] <= 0)) { create_move(moves, side, row, col, row - 2, col - 1); } if ((col < 7) && (board[row - 2][col + 1] <= 0)) { create_move(moves, side, row, col, row - 2, col + 1); } } } if (row < 7) { if ((col > 1) && (board[row + 1][col - 2] <= 0)) { create_move(moves, side, row, col, row + 1, col - 2); } if ((col < 6) && (board[row + 1][col + 2] <= 0)) { create_move(moves, side, row, col, row + 1, col + 2); } if (row < 6) { if ((col > 0) && (board[row + 2][col - 1] <= 0)) { create_move(moves, side, row, col, row + 2, col - 1); } if ((col < 7) && (board[row + 2][col + 1] <= 0)) { create_move(moves, side, row, col, row + 2, col + 1); } } } } if ((piece == m_rook) || (piece == m_queen)) { pr = row + 1; while (pr < 8) { pp = board[pr][col]; if (pp <= 0) { create_move(moves, side, row, col, pr, col); } if (pp != 0) { break; } pr++; } pr = row - 1; while (pr >= 0) { pp = board[pr][col]; if (pp <= 0) { create_move(moves, side, row, col, pr, col); } if (pp != 0) { break; } pr--; } pc = col + 1; while (pc < 8) { pp = board[row][pc]; if (pp <= 0) { create_move(moves, side, row, col, row, pc); } if (pp != 0) { break; } pc++; } pc = col - 1; while (pc >= 0) { pp = board[row][pc]; if (pp <= 0) { create_move(moves, side, row, col, row, pc); } if (pp != 0) { break; } pc--; } } if ((piece == m_bishop) || (piece == m_queen)) { (pr = row + 1); (pc = col + 1); while ((pr < 8) && (pc < 8)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr++; pc++; } (pr = row + 1); (pc = col - 1); while ((pr < 8) && (pc >= 0)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr++; pc--; } (pr = row - 1); (pc = col + 1); while ((pr >= 0) && (pc < 8)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr--; pc++; } (pr = row - 1); (pc = col - 1); while ((pr >= 0) && (pc >= 0)) { pp = board[pr][pc]; if (pp <= 0) { create_move(moves, side, row, col, pr, pc); } if (pp != 0) { break; } pr--; pc--; } } if (piece == m_king) { if (row > 0) { if ((col > 0) && (board[row - 1][col - 1] <= 0)) { create_move(moves, side, row, col, row - 1, col - 1); } if (board[row - 1][col] <= 0) { create_move(moves, side, row, col, row - 1, col); } if ((col < 7) && (board[row - 1][col + 1] <= 0)) { create_move(moves, side, row, col, row - 1, col + 1); } } if (row < 7) { if ((col > 0) && (board[row + 1][col - 1] <= 0)) { create_move(moves, side, row, col, row + 1, col - 1); } if (board[row + 1][col] <= 0) { create_move(moves, side, row, col, row + 1, col); } if ((col < 7) && (board[row + 1][col + 1] <= 0)) { create_move(moves, side, row, col, row + 1, col + 1); } } if ((col > 0) && (board[row][col - 1] <= 0)) { create_move(moves, side, row, col, row, col - 1); } if ((col < 7) && (board[row][col + 1] <= 0)) { create_move(moves, side, row, col, row, col + 1); } } } col++; } row++; } return(moves); } function setup_piece_values() { m_pawn = 1000; m_knight = 3000; m_bishop = 3001; m_rook = 5000; m_queen = 9000; m_king = 40000; e_pawn = -1000; e_knight = -3000; e_bishop = -3001; e_rook = -5000; e_queen = -9000; e_king = -40000; infinity = 1000000 /* 0x0F4240 */; } function eval_board_value(castle) { piece_score = 0; castle_score = (castle ? 200 : 0); advance_score = 0; pawn_protect_score = 0; center_score = 0; rand_score = (rand_enable ? (Math.floor(Math.random() * 5)) : 0); var row = 0; while (row < 8) { var col = 0; while (col < 8) { var piece = ai_board[row][col]; piece_score = piece_score + piece; if (piece > 0) { if (((row == 3) || (row == 4)) && ((col == 3) || (col == 4))) { center_score = center_score + 6; } if (piece == m_pawn) { advance_score = advance_score + (row * 5); if (row < 7) { if ((col > 0) && (ai_board[row + 1][col - 1] == m_pawn)) { pawn_protect_score = pawn_protect_score + 5; } if ((col < 7) && (ai_board[row + 1][col + 1] == m_pawn)) { pawn_protect_score = pawn_protect_score + 5; } } if (row == 6) { advance_score = advance_score + 25; } if (row >= 7) { advance_score = advance_score + 50; } } if (piece == m_knight) { if (row > 0) { advance_score = advance_score + 9; } } if (piece == m_rook) { if ((col > 1) && (col < 6)) { advance_score = advance_score + 10; } if (row > 1) { advance_score = advance_score + 15; } } } col++; } row++; } if (ai_reps > 0) { return(piece_score + Math.floor((Math.random() * 600) * (ai_reps - 1))); } if ((history_elems.length > 12) && (is_in_check(1))) { castle_score = castle_score + 30; } return(((((piece_score + castle_score) + advance_score) + pawn_protect_score) + center_score) + rand_score); } function in_repetition() { if (history_elems.length < 6) { return(false); } var last_move = history_elems[history_elems.length - 2]; var second_last_move = history_elems[history_elems.length - 4]; var reps = 0; var flip = 0; var i = (history_elems.length - 6); while (i >= 0) { if (!history_elems_equiv(((flip == 0) ? (last_move) : (second_last_move)), history_elems[i])) { break; } reps++; flip = 1 - flip; i = i - 2; } return(reps); } function history_elems_equiv(elem_a, elem_b) { return((((elem_a.old_row == elem_b.old_row) && (elem_a.old_col == elem_b.old_col)) && (elem_a.new_row == elem_b.new_row)) && (elem_a.new_col == elem_b.new_col)); } function prepare_ai_turn() { ai_time_limit = 2500; var in_check = is_in_check(0); ai_moves = get_legal_moves(0); ai_original_num_moves = ai_moves.length; if (rand_enable) { ai_moves.sort(rand_sort); } ai_start_time = getTimer(); ai_current_par = 1; ai_current_move = 0; ai_alpha = -infinity; ai_game_over = false; ai_num_pieces = count_pl_pieces(); ai_reps = in_repetition(); if (ai_moves.length == 0) { ai_game_over = true; if (in_check) { indicate_turn("player_mate"); show_game_dialog("player_checkmate"); } else { indicate_turn("stalemate"); show_game_dialog("stalemate"); } } else if (in_check) { indicate_turn("ai_check"); } else { indicate_turn("ai_turn"); } } function ai_ponder() { if (ai_game_over) { return(true); } if (in_replay && (replay_index < replay_moves.length)) { var replay_move = replay_moves[replay_index++]; var ai_move = lookup_ai_move(replay_move.old_row, replay_move.old_col, replay_move.new_row, replay_move.new_col); ai_old_row = ai_move.old_row; ai_old_col = ai_move.old_col; ai_new_row = ai_move.new_row; ai_new_col = ai_move.new_col; prepare_move_piece(ai_move); record_history(ai_move, 0); delete_moves(ai_moves); return(true); } do { ai_increment(); } while (!ai_check_finished()); ai_finished(); return(true); } function ai_increment() { var move = ai_moves[ai_current_move]; push_move(move); if (ai_current_par == 1) { move.value = (move.eval_value = eval_board_value(move.castle)); } else { move.value = -negamax(1, ai_current_par - 1, move, move.eval_value, -infinity, -ai_alpha, false, true); if (move.value > ai_alpha) { ai_alpha = move.value; } } pop_move(move); ai_current_move++; if (ai_current_move == ai_moves.length) { ai_moves.sort(compare_moves); ai_current_par++; ai_current_move = 0; ai_alpha = -infinity; } } function ai_check_finished() { if (ai_moves.length == 1) { return(true); } if (ai_current_par <= 2) { return(false); } var time_elapsed = (getTimer() - ai_start_time); if ((ai_current_move == 0) && (time_elapsed > (ai_time_limit / 2))) { return(true); } if (time_elapsed < ai_time_limit) { return(false); } if (ai_current_move > 1) { while (ai_moves.length > ai_current_move) { delete eval (ai_moves.pop()); } ai_moves.sort(compare_moves); } return(true); } function ai_finished() { ai_old_row = ai_moves[0].old_row; ai_old_col = ai_moves[0].old_col; ai_new_row = ai_moves[0].new_row; ai_new_col = ai_moves[0].new_col; prepare_move_piece(ai_moves[0]); record_history(ai_moves[0], 0); delete_moves(ai_moves); } function lookup_ai_move(old_row, old_col, new_row, new_col) { var i = 0; while (i < ai_moves.length) { if ((((ai_moves[i].old_row == old_row) && (ai_moves[i].old_col == old_col)) && (ai_moves[i].new_row == new_row)) && (ai_moves[i].new_col == new_col)) { return(ai_moves[i]); } i++; } return(null); } function negamax(side, par, last_move, calc_value, alpha, beta, quiesce, coward) { var moves; if (!last_move.sub_moves) { if (quiesce) { last_move.sub_moves = get_quick_moves_quiesce(side); } else { last_move.sub_moves = get_quick_moves(side); } } var moves = last_move.sub_moves; var best = (quiesce ? (((side == 0) ? (calc_value) : (-calc_value))) : (-infinity)); var value; var i = 0; while (i < moves.length) { var captured = moves[i].captured; if (coward && (captured > m_pawn)) { captured = captured * 1.2; } if (par == 1) { value = ((side == 0) ? (calc_value - moves[i].captured) : (captured - calc_value)); } else { push_move(moves[i]); value = -negamax(1 - side, par - 1, moves[i], calc_value - captured, -beta, -alpha, ai_num_pieces > 6, false); pop_move(moves[i]); } if (value > best) { best = value; } if (best > alpha) { alpha = best; } if (alpha >= beta) { break; } i++; } return(best); } function count_pl_pieces() { var total = 0; var row = 0; while (row < 8) { var col = 0; while (col < 8) { if (ai_board[row][col] < 0) { total++; } col++; } row++; } return(total); } function rand_sort(move_a, move_b) { return(((Math.random() < 0.5) ? 1 : -1)); } function compare_moves(move_a, move_b) { if (move_a.value > move_b.value) { return(-1); } if (move_a.value < move_b.value) { return(1); } return(0); } function compare_captures(move_a, move_b) { if (move_a.captured > move_b.captured) { return(-1); } if (move_a.captured < move_b.captured) { return(1); } return(0); } function compare_anti_captures(move_a, move_b) { if (move_a.captured < move_b.captured) { return(-1); } if (move_a.captured > move_b.captured) { return(1); } return(0); } function init_piece_sprites() { var row; var col; game_pieces = new Array(); var row = 0; while (row < 8) { game_pieces[row] = new Array(); var col = 0; while (col < 8) { create_piece(row, col, false); col++; } row++; } } function create_piece(row, col, visible) { if (ai_board[row][col] != 0) { num_pieces++; this.attachMovie(get_symbol_name(ai_board[row][col]), "piece_" + num_pieces, num_pieces); var piece = eval ("piece_" + num_pieces); piece._x = 35 + (50 * col); piece._y = 35 + (50 * row); piece._visible = visible; game_pieces[row][col] = piece; } else { game_pieces[row][col] = null; } } function get_symbol_name(piece_id) { if (piece_id == m_pawn) { return("r_pawn"); } if (piece_id == m_rook) { return("r_castle"); } if (piece_id == m_knight) { return("r_knight"); } if (piece_id == m_bishop) { return("r_bishop"); } if (piece_id == m_queen) { return("r_queen"); } if (piece_id == m_king) { return("r_king"); } if (piece_id == e_pawn) { return("w_pawn"); } if (piece_id == e_rook) { return("w_castle"); } if (piece_id == e_knight) { return("w_knight"); } if (piece_id == e_bishop) { return("w_bishop"); } if (piece_id == e_queen) { return("w_queen"); } if (piece_id == e_king) { return("w_king"); } if (piece_id == 0) { return("empty"); } return("(UNKNOWN)"); } function delete_piece_sprites() { var row = 0; while (row < 8) { var col = 0; while (col < 8) { delete_piece(row, col); col++; } row++; } } function delete_piece(row, col) { if (game_pieces[row][col] != null) { removeMovieClip(game_pieces[row][col]); game_pieces[row][col].unloadMovie(); game_pieces[row][col] = null; } } function fade_pieces() { row = 0; while (row < 8) { col = 0; while (col < 8) { if (game_pieces[row][col] != null) { if ((row + col) == piece_fade) { game_pieces[row][col]._visible = true; game_pieces[row][col]._alpha = 50; } else if ((row + col) == (piece_fade - 1)) { game_pieces[row][col]._alpha = 100; } } col++; } row++; } piece_fade++; return(piece_fade > 18); } function unfade_pieces(for_replay) { row = 0; while (row < 8) { col = 0; while (col < 8) { if (game_pieces[row][col] != null) { if (game_pieces[row][col]._visible) { var alpha = (game_pieces[row][col]._alpha - 4); if (alpha <= 0) { game_pieces[row][col]._visible = false; } else { game_pieces[row][col]._alpha = alpha; } } } col++; } row++; } piece_fade++; return(piece_fade > (for_replay ? 50 : 16)); } function prepare_move_piece(move) { var old_row = move.old_row; var old_col = move.old_col; var new_row = move.new_row; var new_col = move.new_col; move_piece = game_pieces[old_row][old_col]; move_to_x = 35 + (50 * new_col); move_to_y = 35 + (50 * new_row); if (game_pieces[new_row][new_col] != null) { kill_piece = game_pieces[new_row][new_col]; } else { kill_piece = null; } game_pieces[old_row][old_col] = null; game_pieces[new_row][new_col] = move_piece; ai_board[new_row][new_col] = ai_board[old_row][old_col]; ai_board[old_row][old_col] = 0; pl_board[7 - new_row][new_col] = pl_board[7 - old_row][old_col]; pl_board[7 - old_row][old_col] = 0; if ((Math.abs(old_row - new_row) < 2) && (Math.abs(old_col - new_col) < 2)) { move_speed = 2; } else { move_speed = 5; } move_queened = false; move_castle = false; move_en_passant = false; if (move.special) { if (move.queened) { ai_board[move.new_row][move.new_col] = move.queened; pl_board[7 - move.new_row][move.new_col] = -move.queened; move_queened = true; move_queen_row = move.new_row; move_queen_col = move.new_col; if (move.queened == m_queen) { move_queen_choice = m_queen; } else if (((in_replay && (replay_index > 0)) && (replay_index <= replay_moves.length)) && (replay_moves[replay_index - 1].move_queen_choice)) { make_player_queen_choice(replay_moves[replay_index - 1].move_queen_choice); } else { move_queen_choice = 0; } choose_queen_dialog = false; move_queen_commenced = false; } else if (move.en_passant) { ai_board[move.en_passant_row][move.en_passant_col] = 0; pl_board[7 - move.en_passant_row][move.en_passant_col] = 0; move_en_passant = true; move_en_passant_piece = game_pieces[move.en_passant_row][move.en_passant_col]; game_pieces[move.en_passant_row][move.en_passant_col] = null; } else if (move.castle) { ai_board[move.castle_new_row][move.castle_new_col] = ai_board[move.castle_old_row][move.castle_old_col]; ai_board[move.castle_old_row][move.castle_old_col] = 0; pl_board[7 - move.castle_new_row][move.castle_new_col] = pl_board[7 - move.castle_old_row][move.castle_old_col]; pl_board[7 - move.castle_old_row][move.castle_old_col] = 0; move_castle = true; move_castle_piece = game_pieces[move.castle_old_row][move.castle_old_col]; move_castle_to_x = 35 + (50 * move.castle_new_col); move_castle_to_y = 35 + (50 * move.castle_new_row); game_pieces[move.castle_old_row][move.castle_old_col] = null; game_pieces[move.castle_new_row][move.castle_new_col] = move_castle_piece; } } } function do_move_piece() { if (((((move_piece._x == move_to_x) && (move_piece._y == move_to_y)) && (kill_piece == null)) && ((!move_castle) || ((move_castle_piece._x == move_castle_to_x) && (move_castle_piece._y == move_castle_to_y)))) && (check_for_queening())) { if (last_anim_frame) { return(true); } last_anim_frame = true; return(false); } last_anim_frame = false; if (kill_piece != null) { if (kill_piece._alpha > 0) { kill_piece._alpha = kill_piece._alpha - 5; } else { kill_piece._visible = false; removeMovieClip(kill_piece); kill_piece.unloadMovie(); kill_piece = null; } } if (move_en_passant && (move_en_passant_piece != null)) { if (move_en_passant_piece._alpha > 0) { move_en_passant_piece._alpha = move_en_passant_piece._alpha - 5; } else { move_en_passant_piece._visible = false; removeMovieClip(move_en_passant_piece); move_en_passant_piece.unloadMovie(); move_en_passant_piece = null; } } if (move_piece._x < move_to_x) { move_piece._x = move_piece._x + move_speed; } if (move_piece._x > move_to_x) { move_piece._x = move_piece._x - move_speed; } if (move_piece._y < move_to_y) { move_piece._y = move_piece._y + move_speed; } if (move_piece._y > move_to_y) { move_piece._y = move_piece._y - move_speed; } if (move_castle) { if (move_castle_piece._x < move_castle_to_x) { move_castle_piece._x = move_castle_piece._x + 6.25; } if (move_castle_piece._x > move_castle_to_x) { move_castle_piece._x = move_castle_piece._x - 6.25; } if (move_castle_piece._y < move_castle_to_y) { move_castle_piece._y = move_castle_piece._y + 6.25; } if (move_castle_piece._y > move_castle_to_y) { move_castle_piece._y = move_castle_piece._y - 6.25; } } return(false); } function check_for_queening() { if (!move_queened) { return(true); } if (move_queen_choice == 0) { if (!choose_queen_dialog) { choose_queen_dialog = true; show_game_dialog("promote_pawn"); } return(false); } if (!move_queen_commenced) { move_queen_commenced = true; ai_board[move_queen_row][move_queen_col] = move_queen_choice; pl_board[7 - move_queen_row][move_queen_col] = -move_queen_choice; promoted_pawn = game_pieces[move_queen_row][move_queen_col]; create_piece(move_queen_row, move_queen_col, true); newly_promoted = game_pieces[move_queen_row][move_queen_col]; newly_promoted._alpha = 0; promotion_progress = 0; } if (promotion_progress < 100) { promotion_progress = promotion_progress + 5; promoted_pawn._alpha = 100 - promotion_progress; newly_promoted._alpha = promotion_progress; return(false); } newly_promoted._alpha = 100; if (promoted_pawn != null) { promoted_pawn = null; removeMovieClip(promoted_pawn); promoted_pawn.unloadMovie(); } return(true); } function board_mouse_down() { var row; var col; row = Math.floor((_ymouse - 10) / 50); col = Math.floor((_xmouse - 10) / 50); if ((((row < 0) || (row > 7)) || (col < 0)) || (col > 7)) { return(undefined); } if (ai_board[row][col] < 0) { select_row = row; select_col = col; blue_select._x = 35 + (50 * col); blue_select._y = 35 + (50 * row); blue_select._visible = true; green_select._visible = false; cyan_select._visible = false; restore_dragged_piece(); drag_piece = game_pieces[row][col]; drag_piece_start_x = drag_piece._x; drag_piece_start_y = drag_piece._y; drag_mouse_start_x = _xmouse; drag_mouse_start_y = _ymouse; } else { if ((select_row != -1) && (select_col != -1)) { if (is_legal_player_move(select_row, select_col, row, col)) { begin_player_move(select_row, select_col, row, col); } } select_row = -1; select_col = -1; blue_select._visible = false; green_select._visible = false; cyan_select._visible = false; } } function board_mouse_up() { if (drag_piece == null) { return(undefined); } restore_dragged_piece(); var row; var col; row = Math.floor((_ymouse - 10) / 50); col = Math.floor((_xmouse - 10) / 50); if ((((row < 0) || (row > 7)) || (col < 0)) || (col > 7)) { return(undefined); } if ((select_row != -1) && (select_col != -1)) { if (is_legal_player_move(select_row, select_col, row, col)) { begin_player_move(select_row, select_col, row, col); } } } function board_mouse_move() { var row; var col; row = Math.floor((_ymouse - 10) / 50); col = Math.floor((_xmouse - 10) / 50); if (drag_piece != null) { drag_piece._x = (drag_piece_start_x + _xmouse) - drag_mouse_start_x; drag_piece._y = (drag_piece_start_y + _ymouse) - drag_mouse_start_y; } if ((((((row >= 0) && (row < 8)) && (col >= 0)) && (col < 8)) && ((row != select_row) || (col != select_col))) && (ai_board[row][col] < 0)) { cyan_select._x = 35 + (50 * col); cyan_select._y = 35 + (50 * row); cyan_select._visible = true; green_select._visible = false; } else if (((((((select_row != -1) && (select_col != -1)) && (row >= 0)) && (row < 8)) && (col >= 0)) && (col < 8)) && (is_legal_player_move(select_row, select_col, row, col))) { green_select._x = 35 + (50 * col); green_select._y = 35 + (50 * row); green_select._visible = true; cyan_select._visible = false; } else { green_select._visible = false; cyan_select._visible = false; } } function begin_player_move(old_row, old_col, new_row, new_col) { var player_move = lookup_player_move(old_row, old_col, new_row, new_col); record_history(player_move, 1); restore_dragged_piece(); release_player_moves(); prepare_move_piece(player_move); gotoAndPlay (78); } function restore_dragged_piece() { if (drag_piece != null) { drag_piece._x = drag_piece_start_x; drag_piece._y = drag_piece_start_y; drag_piece = null; } } function record_history(move, side) { var history_elem = build_history_elem(move, side); history_elems.push(history_elem); var i = 0; while (i < history_elem.lines.length) { GameHistory.addItem(history_elem.lines[i]); history_total_length++; i++; } GameHistory.setScrollPosition(GameHistory.getLength()); } function pop_history() { if (history_elems.length > 0) { var history_elem = history_elems.pop(); var i = 0; while (i < history_elem.lines.length) { history_total_length--; GameHistory.removeItemAt(history_total_length); GameHistory.setScrollPosition(GameHistory.getLength()); i++; } return(history_elem); } return(null); } function make_player_queen_choice(choice) { move_queen_choice = choice; if (history_elems.length > 0) { history_elems[history_elems.length - 1].move_queen_choice = move_queen_choice; } GameHistory.removeItemAt(history_total_length - 1); GameHistory.addItem(" into " + get_piece_name(choice)); } function clear_history() { while (history_elems.length > 0) { pop_history(); } } function start_replay() { replay_moves = new Array(); var i = 0; while (i < history_elems.length) { var history_elem = history_elems[i]; var replay_move = new Object(); replay_move.old_row = history_elem.old_row; replay_move.old_col = history_elem.old_col; replay_move.new_row = history_elem.new_row; replay_move.new_col = history_elem.new_col; if (history_elem.queened && (history_elem.move_queen_choice)) { replay_move.move_queen_choice = history_elem.move_queen_choice; } replay_moves.push(replay_move); i++; } clear_history(); delete_piece_sprites(); init_game(); in_replay = true; replay_index = 0; } function indicate_turn(turn) { if (in_replay) { if ((replay_index >= replay_moves.length) && (game_state == "player_move")) { in_replay = false; } else { turn = "replay"; } } TurnIndicator.gotoAndStop(turn); } function show_game_dialog(dialog_symbol) { current_dialog_symbol = dialog_symbol; num_dialogs++; this.attachMovie(dialog_symbol, "dialog_" + num_dialogs, (100 + num_pieces) + num_dialogs); current_dialog = eval ("dialog_" + num_dialogs); current_dialog._x = 210; current_dialog._y = 210; current_dialog._visible = visible; } function close_game_dialog() { if (current_dialog_symbol != null) { removeMovieClip(current_dialog); current_dialog.unloadMovie(); } current_dialog_symbol = null; }
Frame 15
stop();
Frame 22
if (buttonPressed == "Rules") { gotoAndPlay (143); } else { gotoAndPlay (54); }
Frame 37
stop();
Frame 53
gotoAndStop (15);
Frame 69
init_game(); gotoAndPlay (78);
Frame 78
var result = game_main(); gotoAndPlay(result); CoverButton.useHandCursor = false;
Instance of Symbol 197 MovieClip [FListBoxSymbol] "GameHistory" in Frame 78
//component parameters onClipEvent (initialize) { selectMultiple = false; changeHandler = ""; }
Instance of Symbol 246 MovieClip in Frame 85
onClipEvent (mouseMove) { _parent.board_mouse_move(); } onClipEvent (mouseDown) { _parent.board_mouse_down(); } onClipEvent (mouseUp) { _parent.board_mouse_up(); }
Frame 86
check_player_replay();
Frame 87
stop();
Frame 100
if (ai_game_over) { } else if (ai_ponder()) { gotoAndPlay (78); } else { gotoAndPlay (98); }
Frame 109
if (game_anim()) { gotoAndPlay (78); }
Frame 110
if (game_anim()) { gotoAndPlay (78); } else { gotoAndPlay (109); }
Frame 129
unfade_pieces();
Frame 130
unfade_pieces();
Frame 131
unfade_pieces();
Frame 132
unfade_pieces();
Frame 133
unfade_pieces();
Frame 134
unfade_pieces();
Frame 135
unfade_pieces();
Frame 136
unfade_pieces();
Frame 137
unfade_pieces();
Frame 138
unfade_pieces();
Frame 139
unfade_pieces();
Frame 140
unfade_pieces();
Frame 141
unfade_pieces();
Frame 142
delete_piece_sprites(); gotoAndPlay (1);
Frame 143
function do_back() { gotoAndPlay (155); } function do_next() { }
Frame 154
gotoAndPlay (165);
Frame 155
function do_back() { } function do_next() { }
Frame 164
gotoAndPlay (1);
Frame 165
function do_back() { gotoAndPlay (155); } function do_next() { gotoAndStop (172); }
Frame 171
stop(); function do_back() { gotoAndPlay (155); } function do_next() { gotoAndStop (172); }
Frame 172
stop(); function do_back() { gotoAndStop (171); } function do_next() { gotoAndStop (179); }
Frame 179
stop(); function do_back() { gotoAndStop (172); } function do_next() { gotoAndStop (186); }
Frame 186
stop(); function do_back() { gotoAndStop (179); } function do_next() { gotoAndStop (193); }
Frame 193
stop(); function do_back() { gotoAndStop (186); } function do_next() { gotoAndStop (200); }
Frame 200
stop(); function do_back() { gotoAndStop (193); } function do_next() { gotoAndStop (207); }
Frame 207
stop(); function do_back() { gotoAndStop (200); } function do_next() { gotoAndStop (214); }
Frame 214
stop(); function do_back() { gotoAndStop (207); } function do_next() { gotoAndStop (221); }
Frame 221
stop(); function do_back() { gotoAndStop (214); } function do_next() { gotoAndStop (228); }
Frame 228
stop(); function do_back() { gotoAndStop (221); } function do_next() { gotoAndStop (235); }
Frame 235
stop(); function do_back() { gotoAndStop (228); } function do_next() { gotoAndStop (242); }
Frame 242
stop(); function do_back() { gotoAndStop (235); } function do_next() { gotoAndStop (249); }
Frame 249
stop(); function do_back() { gotoAndStop (242); } function do_next() { gotoAndStop (256); }
Frame 256
stop(); function do_back() { gotoAndStop (249); } function do_next() { play(); }
Frame 272
stop(); function do_back() { gotoAndStop (256); } function do_next() { gotoAndStop (273); }
Frame 273
stop(); function do_back() { gotoAndStop (256); } function do_next() { play(); }
Frame 282
stop(); function do_back() { gotoAndStop (273); } function do_next() { gotoAndStop (283); }
Frame 283
stop(); function do_back() { gotoAndStop (273); } function do_next() { play(); }
Frame 293
stop(); function do_back() { gotoAndStop (283); } function do_next() { gotoAndStop (294); }
Frame 294
stop(); function do_back() { gotoAndStop (283); } function do_next() { play(); }
Frame 312
stop(); function do_back() { gotoAndStop (294); } function do_next() { gotoAndStop (313); }
Frame 313
stop(); function do_back() { gotoAndStop (294); } function do_next() { gotoAndPlay (320); }
Frame 320
function queen_setup() { queen_row = 1; queen_col = 1; select_row = -1; select_col = -1; sample_queen._x = 60 + (50 * queen_col); sample_queen._y = 125 + (50 * queen_row); sample_blue_box._visible = false; sample_green_box._visible = false; sample_cyan_box._visible = false; drag_queen = false; } function begin_queen_anim(new_row, new_col) { sample_blue_box._visible = false; sample_green_box._visible = false; sample_cyan_box._visible = false; select_row = -1; select_col = -1; drag_queen = false; move_to_x = 60 + (50 * new_col); move_to_y = 125 + (50 * new_row); if ((Math.abs(queen_row - new_row) < 2) && (Math.abs(queen_col - new_col) < 2)) { move_speed = 2; } else { move_speed = 5; } queen_row = new_row; queen_col = new_col; gotoAndPlay (324); } function queen_anim() { if ((sample_queen._x == move_to_x) && (sample_queen._y == move_to_y)) { if (last_anim_frame) { return(true); } last_anim_frame = true; return(false); } last_anim_frame = false; if (sample_queen._x < move_to_x) { sample_queen._x = sample_queen._x + move_speed; } if (sample_queen._x > move_to_x) { sample_queen._x = sample_queen._x - move_speed; } if (sample_queen._y < move_to_y) { sample_queen._y = sample_queen._y + move_speed; } if (sample_queen._y > move_to_y) { sample_queen._y = sample_queen._y - move_speed; } return(false); } function queen_mouse_down() { var row; var col; row = Math.floor((_ymouse - 100) / 50); col = Math.floor((_xmouse - 35) / 50); if ((((row < 0) || (row > 3)) || (col < 0)) || (col > 3)) { return(undefined); } if ((queen_row == row) && (queen_col == col)) { select_row = row; select_col = col; sample_blue_box._x = 60 + (50 * col); sample_blue_box._y = 125 + (50 * row); sample_blue_box._visible = true; sample_green_box._visible = false; sample_cyan_box._visible = false; restore_dragged_queen(); drag_queen = true; drag_queen_start_x = sample_queen._x; drag_queen_start_y = sample_queen._y; drag_qmouse_start_x = _xmouse; drag_qmouse_start_y = _ymouse; } else { if ((select_row != -1) && (select_col != -1)) { if (is_legal_queen_move(row, col)) { begin_queen_anim(row, col); } } select_row = -1; select_col = -1; sample_blue_box._visible = false; sample_green_box._visible = false; sample_cyan_box._visible = false; } } function queen_mouse_move() { var row; var col; row = Math.floor((_ymouse - 100) / 50); col = Math.floor((_xmouse - 35) / 50); if (drag_queen) { sample_queen._x = (drag_queen_start_x + _xmouse) - drag_queen_start_x; sample_queen._y = (drag_queen_start_y + _ymouse) - drag_queen_start_y; } if ((((row != select_row) || (col != select_col)) && (row == queen_row)) && (col == queen_col)) { sample_cyan_box._x = 60 + (50 * col); sample_cyan_box._y = 125 + (50 * row); sample_cyan_box._visible = true; sample_green_box._visible = false; } else if (((((((select_row != -1) && (select_col != -1)) && (row >= 0)) && (row < 4)) && (col >= 0)) && (col < 4)) && (is_legal_queen_move(row, col))) { sample_green_box._x = 60 + (50 * col); sample_green_box._y = 125 + (50 * row); sample_green_box._visible = true; cyan_select._visible = false; } else { sample_green_box._visible = false; sample_cyan_box._visible = false; } } function queen_mouse_up() { if (!drag_queen) { return(undefined); } restore_dragged_queen(); var row; var col; row = Math.floor((_ymouse - 100) / 50); col = Math.floor((_xmouse - 35) / 50); if ((((row < 0) || (row > 3)) || (col < 0)) || (col > 3)) { return(undefined); } if (((select_row != -1) && (select_col != -1)) && ((row != select_row) || (col != select_col))) { if (is_legal_queen_move(row, col)) { begin_queen_anim(row, col); } } } function restore_dragged_queen() { if (drag_queen) { sample_queen._x = drag_queen_start_x; sample_queen._y = drag_queen_start_y; drag_queen = false; } } function is_legal_queen_move(new_row, new_col) { if ((((new_row < 0) || (new_row > 3)) || (new_col < 0)) || (new_col > 3)) { return(false); } if ((new_row == queen_row) && (new_col == queen_col)) { return(false); } if ((new_row == queen_row) || (new_col == queen_col)) { return(true); } var row_diff = (new_row - queen_row); var col_diff = (new_col - queen_col); if ((row_diff == col_diff) || (row_diff == (-col_diff))) { return(true); } return(false); } function do_back() { gotoAndStop (313); } function do_next() { gotoAndStop (327); } NoNext.useHandCursor = false;
Frame 321
queen_setup();
Instance of Symbol 382 MovieClip in Frame 322
onClipEvent (mouseMove) { _parent.queen_mouse_move(); } onClipEvent (mouseDown) { _parent.queen_mouse_down(); } onClipEvent (mouseUp) { _parent.queen_mouse_up(); }
Frame 323
stop();
Frame 324
if (queen_anim()) { NoNext._visible = false; NoNext._x = -300; gotoAndStop (322); }
Frame 325
if (queen_anim()) { NoNext._visible = false; NoNext._x = -300; gotoAndStop (322); } else { gotoAndPlay (324); }
Frame 327
stop(); function do_back() { gotoAndPlay (320); } function do_next() { gotoAndPlay (155); }
Symbol 1 MovieClip [FUIComponentSymbol] Frame 1
#initclip 3 function FUIComponentClass() { this.init(); } FUIComponentClass.prototype = new MovieClip(); FUIComponentClass.prototype.init = function () { this.enable = true; this.focused = false; this.useHandCursor = false; this._accImpl = new Object(); this._accImpl.stub = true; this.styleTable = new Array(); if (_global.globalStyleFormat == undefined) { _global.globalStyleFormat = new FStyleFormat(); globalStyleFormat.isGlobal = true; _global._focusControl = new Object(); _global._focusControl.onSetFocus = function (oldFocus, newFocus) { oldFocus.myOnKillFocus(); newFocus.myOnSetFocus(); }; Selection.addListener(_global._focusControl); } if (this._name != undefined) { this._focusrect = false; this.tabEnabled = true; this.focusEnabled = true; this.tabChildren = false; this.tabFocused = true; if (this.hostStyle == undefined) { globalStyleFormat.addListener(this); } else { this.styleTable = this.hostStyle; } this.deadPreview._visible = false; this.deadPreview._width = (this.deadPreview._height = 1); this.methodTable = new Object(); this.keyListener = new Object(); this.keyListener.controller = this; this.keyListener.onKeyDown = function () { this.controller.myOnKeyDown(); }; this.keyListener.onKeyUp = function () { this.controller.myOnKeyUp(); }; for (var i in this.styleFormat_prm) { this.setStyleProperty(i, this.styleFormat_prm[i]); } } }; FUIComponentClass.prototype.setEnabled = function (enabledFlag) { this.enable = ((arguments.length > 0) ? (enabledFlag) : true); this.tabEnabled = (this.focusEnabled = enabledFlag); if ((!this.enable) && (this.focused)) { Selection.setFocus(undefined); } }; FUIComponentClass.prototype.getEnabled = function () { return(this.enable); }; FUIComponentClass.prototype.setSize = function (w, h) { this.width = w; this.height = h; this.focusRect.removeMovieClip(); }; FUIComponentClass.prototype.setChangeHandler = function (chng, obj) { this.handlerObj = ((obj == undefined) ? (this._parent) : (obj)); this.changeHandler = chng; }; FUIComponentClass.prototype.invalidate = function (methodName) { this.methodTable[methodName] = true; this.onEnterFrame = this.cleanUI; }; FUIComponentClass.prototype.cleanUI = function () { if (this.methodTable.setSize) { this.setSize(this.width, this.height); } else { this.cleanUINotSize(); } this.methodTable = new Object(); delete this.onEnterFrame; }; FUIComponentClass.prototype.cleanUINotSize = function () { for (var funct in this.methodTable) { this[funct](); } }; FUIComponentClass.prototype.drawRect = function (x, y, w, h) { var inner = this.styleTable.focusRectInner.value; var outer = this.styleTable.focusRectOuter.value; if (inner == undefined) { inner = 16777215 /* 0xFFFFFF */; } if (outer == undefined) { outer = 0; } this.createEmptyMovieClip("focusRect", 1000); this.focusRect.controller = this; this.focusRect.lineStyle(1, outer); this.focusRect.moveTo(x, y); this.focusRect.lineTo(x + w, y); this.focusRect.lineTo(x + w, y + h); this.focusRect.lineTo(x, y + h); this.focusRect.lineTo(x, y); this.focusRect.lineStyle(1, inner); this.focusRect.moveTo(x + 1, y + 1); this.focusRect.lineTo((x + w) - 1, y + 1); this.focusRect.lineTo((x + w) - 1, (y + h) - 1); this.focusRect.lineTo(x + 1, (y + h) - 1); this.focusRect.lineTo(x + 1, y + 1); }; FUIComponentClass.prototype.pressFocus = function () { this.tabFocused = false; this.focusRect.removeMovieClip(); Selection.setFocus(this); }; FUIComponentClass.prototype.drawFocusRect = function () { this.drawRect(-2, -2, this.width + 4, this.height + 4); }; FUIComponentClass.prototype.myOnSetFocus = function () { this.focused = true; Key.addListener(this.keyListener); if (this.tabFocused) { this.drawFocusRect(); } }; FUIComponentClass.prototype.myOnKillFocus = function () { this.tabFocused = true; this.focused = false; this.focusRect.removeMovieClip(); Key.removeListener(this.keyListener); }; FUIComponentClass.prototype.executeCallBack = function () { this.handlerObj[this.changeHandler](this); }; FUIComponentClass.prototype.updateStyleProperty = function (styleFormat, propName) { this.setStyleProperty(propName, styleFormat[propName], styleFormat.isGlobal); }; FUIComponentClass.prototype.setStyleProperty = function (propName, value, isGlobal) { if (value == "") { return(undefined); } var tmpValue = parseInt(value); if (!isNaN(tmpValue)) { value = tmpValue; } var global = ((arguments.length > 2) ? (isGlobal) : false); if (this.styleTable[propName] == undefined) { this.styleTable[propName] = new Object(); this.styleTable[propName].useGlobal = true; } if (this.styleTable[propName].useGlobal || (!global)) { this.styleTable[propName].value = value; if (this.setCustomStyleProperty(propName, value)) { } else if (propName == "embedFonts") { this.invalidate("setSize"); } else if (propName.subString(0, 4) == "text") { if (this.textStyle == undefined) { this.textStyle = new TextFormat(); } var textProp = propName.subString(4, propName.length); this.textStyle[textProp] = value; this.invalidate("setSize"); } else { for (var j in this.styleTable[propName].coloredMCs) { var myColor = new Color(this.styleTable[propName].coloredMCs[j]); if (this.styleTable[propName].value == undefined) { var myTObj = {ra:"100", rb:"0", ga:"100", gb:"0", ba:"100", bb:"0", aa:"100", ab:"0"}; myColor.setTransform(myTObj); } else { myColor.setRGB(value); } } } this.styleTable[propName].useGlobal = global; } }; FUIComponentClass.prototype.registerSkinElement = function (skinMCRef, propName) { if (this.styleTable[propName] == undefined) { this.styleTable[propName] = new Object(); this.styleTable[propName].useGlobal = true; } if (this.styleTable[propName].coloredMCs == undefined) { this.styleTable[propName].coloredMCs = new Object(); } this.styleTable[propName].coloredMCs[skinMCRef] = skinMCRef; if (this.styleTable[propName].value != undefined) { var myColor = new Color(skinMCRef); myColor.setRGB(this.styleTable[propName].value); } }; _global.FStyleFormat = function () { this.nonStyles = {listeners:true, isGlobal:true, isAStyle:true, addListener:true, removeListener:true, nonStyles:true, applyChanges:true}; this.listeners = new Object(); this.isGlobal = false; if (arguments.length > 0) { for (var i in arguments[0]) { this[i] = arguments[0][i]; } } }; _global.FStyleFormat.prototype = new Object(); FStyleFormat.prototype.addListener = function () { var arg = 0; while (arg < arguments.length) { var mcRef = arguments[arg]; this.listeners[arguments[arg]] = mcRef; for (var i in this) { if (this.isAStyle(i)) { mcRef.updateStyleProperty(this, i.toString()); } } arg++; } }; FStyleFormat.prototype.removeListener = function (component) { this.listeners[component] = undefined; for (var prop in this) { if (this.isAStyle(prop)) { if (component.styleTable[prop].useGlobal == this.isGlobal) { component.styleTable[prop].useGlobal = true; var value = (this.isGlobal ? undefined : (globalStyleFormat[prop])); component.setStyleProperty(prop, value, true); } } } }; FStyleFormat.prototype.applyChanges = function () { var count = 0; for (var i in this.listeners) { var component = this.listeners[i]; if (arguments.length > 0) { var j = 0; while (j < arguments.length) { if (this.isAStyle(arguments[j])) { component.updateStyleProperty(this, arguments[j]); } j++; } } else { for (var j in this) { if (this.isAStyle(j)) { component.updateStyleProperty(this, j.toString()); } } } } }; FStyleFormat.prototype.isAStyle = function (name) { return((this.nonStyles[name] ? false : true)); }; #endinitclip
Symbol 14 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(arrow_mc, "arrow"); component.registerSkinElement(face_mc, "face"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 24 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(arrow_mc, "arrow"); component.registerSkinElement(face_mc, "face"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 33 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(arrow_mc, "foregroundDisabled"); component.registerSkinElement(face_mc, "face"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 34 MovieClip [UpArrow] Frame 1
stop();
Symbol 34 MovieClip [UpArrow] Frame 2
stop();
Symbol 34 MovieClip [UpArrow] Frame 3
stop();
Symbol 41 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 48 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(face_mc, "face"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 53 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(highlight3D_mc, "highlight3D"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight");
Symbol 54 MovieClip [ScrollThumb] Frame 1
stop();
Symbol 62 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(arrow_mc, "arrow"); component.registerSkinElement(face_mc, "face"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 70 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(arrow_mc, "arrow"); component.registerSkinElement(face_mc, "face"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 78 MovieClip Frame 1
var component = _parent._parent; component.registerSkinElement(arrow_mc, "foregroundDisabled"); component.registerSkinElement(face_mc, "face"); component.registerSkinElement(shadow_mc, "shadow"); component.registerSkinElement(darkshadow_mc, "darkshadow"); component.registerSkinElement(highlight_mc, "highlight"); component.registerSkinElement(highlight3D_mc, "highlight3D");
Symbol 79 MovieClip [DownArrow] Frame 1
stop();
Symbol 79 MovieClip [DownArrow] Frame 2
stop();
Symbol 79 MovieClip [DownArrow] Frame 3
stop();
Symbol 82 MovieClip [FHighlightSymbol] Frame 1
var component = _parent.controller; component.registerSkinElement(highlight_mc, "selection"); stop();
Symbol 82 MovieClip [FHighlightSymbol] Frame 2
component.registerSkinElement(highlight_mc2, "selectionDisabled"); stop();
Symbol 82 MovieClip [FHighlightSymbol] Frame 3
component.registerSkinElement(highlight_mc3, "selectionUnfocused"); stop();
Symbol 85 MovieClip [FLabelSymbol] Frame 1
#initclip 1 _global.FLabelClass = function () { if (this.hostComponent == undefined) { this.hostComponent = ((this._parent.controller == undefined) ? (this._parent) : (this._parent.controller)); } if (this.customTextStyle == undefined) { if (this.hostComponent.textStyle == undefined) { this.hostComponent.textStyle = new TextFormat(); } this.textStyle = this.hostComponent.textStyle; this.enable = true; } }; FLabelClass.prototype = new MovieClip(); Object.registerClass("FLabelSymbol", FLabelClass); FLabelClass.prototype.setLabel = function (label) { var val = this.hostComponent.styleTable.embedFonts.value; if (val != undefined) { this.labelField.embedFonts = val; } this.labelField.setNewTextFormat(this.textStyle); this.labelField.text = label; this.labelField._height = this.labelField.textHeight + 2; }; FLabelClass.prototype.setSize = function (width) { this.labelField._width = width; }; FLabelClass.prototype.setEnabled = function (enable) { this.enable = enable; var tmpColor = this.hostComponent.styleTable[(enable ? "textColor" : "textDisabled")].value; if (tmpColor == undefined) { tmpColor = (enable ? 0 : 8947848); } this.setColor(tmpColor); }; FLabelClass.prototype.getLabel = function () { return(this.labelField.text); }; FLabelClass.prototype.setColor = function (col) { this.labelField.textColor = col; }; #endinitclip
Symbol 117 Button
on (release) { play(); }
Symbol 120 MovieClip [stalemate] Frame 1
CoverButton.useHandCursor = false; _parent.gotoAndStop("Game Over");
Symbol 120 MovieClip [stalemate] Frame 10
this.totalMoves = ("(total moves: " + _parent.history_elems.length) + ")"; stop();
Symbol 120 MovieClip [stalemate] Frame 20
_parent.close_game_dialog();
Symbol 125 MovieClip [player_checkmate] Frame 1
CoverButton.useHandCursor = false; _parent.gotoAndStop("Game Over");
Symbol 125 MovieClip [player_checkmate] Frame 10
this.totalMoves = ("(total moves: " + _parent.history_elems.length) + ")"; stop();
Symbol 125 MovieClip [player_checkmate] Frame 20
_parent.close_game_dialog();
Symbol 163 Button
on (release) { queen_choice_made = _parent.e_knight; play(); }
Symbol 167 Button
on (release) { queen_choice_made = _parent.e_bishop; play(); }
Symbol 168 Button
on (release) { queen_choice_made = _parent.e_rook; play(); }
Symbol 169 Button
on (release) { queen_choice_made = _parent.e_queen; play(); }
Symbol 170 MovieClip [promote_pawn] Frame 1
CoverButton.useHandCursor = false;
Symbol 170 MovieClip [promote_pawn] Frame 10
stop();
Symbol 170 MovieClip [promote_pawn] Frame 16
_parent.make_player_queen_choice(queen_choice_made);
Symbol 170 MovieClip [promote_pawn] Frame 20
_parent.close_game_dialog();
Symbol 174 MovieClip [ai_checkmate] Frame 1
CoverButton.useHandCursor = false; _parent.gotoAndStop("Game Over");
Symbol 174 MovieClip [ai_checkmate] Frame 10
this.totalMoves = ("(total moves: " + _parent.history_elems.length) + ")"; stop();
Symbol 174 MovieClip [ai_checkmate] Frame 20
_parent.close_game_dialog();
Symbol 183 MovieClip Frame 1
var component = _parent; component.registerSkinElement(track_mc, "scrollTrack");
Symbol 184 MovieClip [FScrollBarSymbol] Frame 1
#initclip 4 FScrollBarClass = function () { if (this._height == 4) { return(undefined); } this.init(); this.minPos = (this.maxPos = (this.pageSize = (this.largeScroll = 0))); this.smallScroll = 1; this.width = (this.horizontal ? (this._width) : (this._height)); this._xscale = (this._yscale = 100); this.setScrollPosition(0); this.tabEnabled = false; if (this._targetInstanceName.length > 0) { this.setScrollTarget(this._parent[this._targetInstanceName]); } this.tabChildren = false; this.setSize(this.width); }; FScrollBarClass.prototype = new FUIComponentClass(); FScrollBarClass.prototype.setHorizontal = function (flag) { if (this.horizontal && (!flag)) { this._xscale = 100; this._rotation = 0; } else if (flag && (!this.horizontal)) { this._xscale = -100; this._rotation = -90; } this.horizontal = flag; }; FScrollBarClass.prototype.setScrollProperties = function (pSize, mnPos, mxPos) { if (!this.enable) { return(undefined); } this.pageSize = pSize; this.minPos = Math.max(mnPos, 0); this.maxPos = Math.max(mxPos, 0); this.scrollPosition = Math.max(this.minPos, this.scrollPosition); this.scrollPosition = Math.min(this.maxPos, this.scrollPosition); if ((this.maxPos - this.minPos) <= 0) { this.scrollThumb_mc.removeMovieClip(); this.upArrow_mc.gotoAndStop(3); this.downArrow_mc.gotoAndStop(3); this.downArrow_mc.onPress = (this.downArrow_mc.onRelease = (this.downArrow_mc.onDragOut = null)); this.upArrow_mc.onPress = (this.upArrow_mc.onRelease = (this.upArrow_mc.onDragOut = null)); this.scrollTrack_mc.onPress = (this.scrollTrack_mc.onRelease = null); this.scrollTrack_mc.onDragOut = (this.scrollTrack_mc.onRollOut = null); this.scrollTrack_mc.useHandCursor = false; } else { var tmp = this.getScrollPosition(); this.upArrow_mc.gotoAndStop(1); this.downArrow_mc.gotoAndStop(1); this.upArrow_mc.onPress = (this.upArrow_mc.onDragOver = this.startUpScroller); this.upArrow_mc.onRelease = (this.upArrow_mc.onDragOut = this.stopScrolling); this.downArrow_mc.onPress = (this.downArrow_mc.onDragOver = this.startDownScroller); this.downArrow_mc.onRelease = (this.downArrow_mc.onDragOut = this.stopScrolling); this.scrollTrack_mc.onPress = (this.scrollTrack_mc.onDragOver = this.startTrackScroller); this.scrollTrack_mc.onRelease = this.stopScrolling; this.scrollTrack_mc.onDragOut = this.stopScrolling; this.scrollTrack_mc.onRollOut = this.stopScrolling; this.scrollTrack_mc.useHandCursor = false; this.attachMovie("ScrollThumb", "scrollThumb_mc", 3); this.scrollThumb_mc._x = 0; this.scrollThumb_mc._y = this.upArrow_mc._height; this.scrollThumb_mc.onPress = this.startDragThumb; this.scrollThumb_mc.controller = this; this.scrollThumb_mc.onRelease = (this.scrollThumb_mc.onReleaseOutside = this.stopDragThumb); this.scrollThumb_mc.useHandCursor = false; this.thumbHeight = (this.pageSize / ((this.maxPos - this.minPos) + this.pageSize)) * this.trackSize; this.thumbMid_mc = this.scrollThumb_mc.mc_sliderMid; this.thumbTop_mc = this.scrollThumb_mc.mc_sliderTop; this.thumbBot_mc = this.scrollThumb_mc.mc_sliderBot; this.thumbHeight = Math.max(this.thumbHeight, 6); this.midHeight = (this.thumbHeight - this.thumbTop_mc._height) - this.thumbBot_mc._height; this.thumbMid_mc._yScale = (this.midHeight * 100) / this.thumbMid_mc._height; this.thumbMid_mc._y = this.thumbTop_mc._height; this.thumbBot_mc._y = this.thumbTop_mc._height + this.midHeight; this.scrollTop = this.scrollThumb_mc._y; this.trackHeight = this.trackSize - this.thumbHeight; this.scrollBot = this.trackHeight + this.scrollTop; tmp = Math.min(tmp, this.maxPos); this.setScrollPosition(Math.max(tmp, this.minPos)); } }; FScrollBarClass.prototype.getScrollPosition = function () { return(this.scrollPosition); }; FScrollBarClass.prototype.setScrollPosition = function (pos) { this.scrollPosition = pos; if (this.scrollThumb_mc != undefined) { pos = Math.min(pos, this.maxPos); pos = Math.max(pos, this.minPos); } this.scrollThumb_mc._y = (((pos - this.minPos) * this.trackHeight) / (this.maxPos - this.minPos)) + this.scrollTop; this.executeCallBack(); }; FScrollBarClass.prototype.setLargeScroll = function (lScroll) { this.largeScroll = lScroll; }; FScrollBarClass.prototype.setSmallScroll = function (sScroll) { this.smallScroll = sScroll; }; FScrollBarClass.prototype.setEnabled = function (enabledFlag) { var wasEnabled = this.enable; if (enabledFlag && (!wasEnabled)) { this.enable = enabledFlag; if (this.textField != undefined) { this.setScrollTarget(this.textField); } else { this.setScrollProperties(this.pageSize, this.cachedMinPos, this.cachedMaxPos); this.setScrollPosition(this.cachedPos); } this.clickFilter = undefined; } else if ((!enabledFlag) && (wasEnabled)) { this.textField.removeListener(this); this.cachedPos = this.getScrollPosition(); this.cachedMinPos = this.minPos; this.cachedMaxPos = this.maxPos; if (this.clickFilter == undefined) { this.setScrollProperties(this.pageSize, 0, 0); } else { this.clickFilter = true; } this.enable = enabledFlag; } }; FScrollBarClass.prototype.setSize = function (hgt) { if (this._height == 1) { return(undefined); } this.width = hgt; this.scrollTrack_mc._yscale = 100; this.scrollTrack_mc._yscale = (100 * this.width) / this.scrollTrack_mc._height; if (this.upArrow_mc == undefined) { this.attachMovie("UpArrow", "upArrow_mc", 1); this.attachMovie("DownArrow", "downArrow_mc", 2); this.downArrow_mc.controller = (this.upArrow_mc.controller = this); this.upArrow_mc.useHandCursor = (this.downArrow_mc.useHandCursor = false); this.upArrow_mc._x = (this.upArrow_mc._y = 0); this.downArrow_mc._x = 0; } this.scrollTrack_mc.controller = this; this.downArrow_mc._y = this.width - this.downArrow_mc._height; this.trackSize = this.width - (2 * this.downArrow_mc._height); if (this.textField != undefined) { this.onTextChanged(); } else { this.setScrollProperties(this.pageSize, this.minPos, this.maxPos); } }; FScrollBarClass.prototype.scrollIt = function (inc, mode) { var delt = this.smallScroll; if (inc != "one") { delt = ((this.largeScroll == 0) ? (this.pageSize) : (this.largeScroll)); } var newPos = (this.getScrollPosition() + (mode * delt)); if (newPos > this.maxPos) { newPos = this.maxPos; } else if (newPos < this.minPos) { newPos = this.minPos; } this.setScrollPosition(newPos); }; FScrollBarClass.prototype.startDragThumb = function () { this.lastY = this._ymouse; this.onMouseMove = this.controller.dragThumb; }; FScrollBarClass.prototype.dragThumb = function () { this.scrollMove = this._ymouse - this.lastY; this.scrollMove = this.scrollMove + this._y; if (this.scrollMove < this.controller.scrollTop) { this.scrollMove = this.controller.scrollTop; } else if (this.scrollMove > this.controller.scrollBot) { this.scrollMove = this.controller.scrollBot; } this._y = this.scrollMove; var c = this.controller; c.scrollPosition = Math.round(((c.maxPos - c.minPos) * (this._y - c.scrollTop)) / c.trackHeight) + c.minPos; this.controller.isScrolling = true; updateAfterEvent(); this.controller.executeCallBack(); }; FScrollBarClass.prototype.stopDragThumb = function () { this.controller.isScrolling = false; this.onMouseMove = null; }; FScrollBarClass.prototype.startTrackScroller = function () { this.controller.trackScroller(); this.controller.scrolling = setInterval(this.controller, "scrollInterval", 500, "page", -1); }; FScrollBarClass.prototype.scrollInterval = function (inc, mode) { clearInterval(this.scrolling); if (inc == "page") { this.trackScroller(); } else { this.scrollIt(inc, mode); } this.scrolling = setInterval(this, "scrollInterval", 35, inc, mode); }; FScrollBarClass.prototype.trackScroller = function () { if ((this.scrollThumb_mc._y + this.thumbHeight) < this._ymouse) { this.scrollIt("page", 1); } else if (this.scrollThumb_mc._y > this._ymouse) { this.scrollIt("page", -1); } }; FScrollBarClass.prototype.stopScrolling = function () { this.controller.downArrow_mc.gotoAndStop(1); this.controller.upArrow_mc.gotoAndStop(1); clearInterval(this.controller.scrolling); }; FScrollBarClass.prototype.startUpScroller = function () { this.controller.upArrow_mc.gotoAndStop(2); this.controller.scrollIt("one", -1); this.controller.scrolling = setInterval(this.controller, "scrollInterval", 500, "one", -1); }; FScrollBarClass.prototype.startDownScroller = function () { this.controller.downArrow_mc.gotoAndStop(2); this.controller.scrollIt("one", 1); this.controller.scrolling = setInterval(this.controller, "scrollInterval", 500, "one", 1); }; FScrollBarClass.prototype.setScrollTarget = function (tF) { if (tF == undefined) { this.textField.removeListener(this); delete this.textField[(this.horizontal ? "hScroller" : "vScroller")]; if ((this.textField.hScroller != undefined) && (this.textField.vScroller != undefined)) { this.textField.unwatch("text"); this.textField.unwatch("htmltext"); } } this.textField = undefined; if (!(tF instanceof TextField)) { return(undefined); } this.textField = tF; this.textField[(this.horizontal ? "hScroller" : "vScroller")] = this; this.onTextChanged(); this.onChanged = function () { this.onTextChanged(); }; this.onScroller = function () { if (!this.isScrolling) { if (!this.horizontal) { this.setScrollPosition(this.textField.scroll); } else { this.setScrollPosition(this.textField.hscroll); } } }; this.textField.addListener(this); this.textField.watch("text", this.callback); this.textField.watch("htmlText", this.callback); }; FScrollBarClass.prototype.callback = function (prop, oldVal, newVal) { clearInterval(this.hScroller.synchScroll); clearInterval(this.vScroller.synchScroll); this.hScroller.synchScroll = setInterval(this.hScroller, "onTextChanged", 50); this.vScroller.synchScroll = setInterval(this.vScroller, "onTextChanged", 50); return(newVal); }; FScrollBarClass.prototype.onTextChanged = function () { if ((!this.enable) || (this.textField == undefined)) { return(undefined); } clearInterval(this.synchScroll); if (this.horizontal) { var pos = this.textField.hscroll; this.setScrollProperties(this.textField._width, 0, this.textField.maxhscroll); this.setScrollPosition(Math.min(pos, this.textField.maxhscroll)); } else { var pos = this.textField.scroll; var pageSize = (this.textField.bottomScroll - this.textField.scroll); this.setScrollProperties(pageSize, 1, this.textField.maxscroll); this.setScrollPosition(Math.min(pos, this.textField.maxscroll)); } }; FScrollBarClass.prototype.executeCallBack = function () { if (this.textField == undefined) { super.executeCallBack(); } else if (this.horizontal) { this.textField.hscroll = this.getScrollPosition(); } else { this.textField.scroll = this.getScrollPosition(); } }; Object.registerClass("FScrollBarSymbol", FScrollBarClass); #endinitclip
Symbol 185 MovieClip [FListItemSymbol] Frame 1
#initclip 9 function FListItemClass() { this.init(); } FListItemClass.prototype = new FSelectableItemClass(); Object.registerClass("FListItemSymbol", FListItemClass); #endinitclip
Symbol 186 MovieClip [DataProviderSymbol] Frame 1
#initclip 2 _global.DataProviderClass = function () { this.init(); }; DataProviderClass.prototype.init = function () { this.items = new Array(); this.uniqueID = 0; this.views = new Array(); }; DataProviderClass.prototype.addView = function (viewRef) { this.views.push(viewRef); var eventObj = {event:"updateAll"}; viewRef.modelChanged(eventObj); }; DataProviderClass.prototype.addItemAt = function (index, value) { if (index < this.getLength()) { this.items.splice(index, 0, "tmp"); } this.items[index] = new Object(); if (typeof(value) == "object") { this.items[index] = value; } else { this.items[index].label = value; } this.items[index].__ID__ = this.uniqueID++; var eventObj = {event:"addRows", firstRow:index, lastRow:index}; this.updateViews(eventObj); }; DataProviderClass.prototype.addItem = function (value) { this.addItemAt(this.getLength(), value); }; DataProviderClass.prototype.removeItemAt = function (index) { var tmpItm = this.items[index]; this.items.splice(index, 1); var eventObj = {event:"deleteRows", firstRow:index, lastRow:index}; this.updateViews(eventObj); return(tmpItm); }; DataProviderClass.prototype.removeAll = function () { this.items = new Array(); this.updateViews({event:"deleteRows", firstRow:0, lastRow:this.getLength() - 1}); }; DataProviderClass.prototype.replaceItemAt = function (index, itemObj) { if ((index < 0) || (index >= this.getLength())) { return(undefined); } var tmpID = this.getItemID(index); if (typeof(itemObj) == "object") { this.items[index] = itemObj; } else { this.items[index].label = itemObj; } this.items[index].__ID__ = tmpID; this.updateViews({event:"updateRows", firstRow:index, lastRow:index}); }; DataProviderClass.prototype.getLength = function () { return(this.items.length); }; DataProviderClass.prototype.getItemAt = function (index) { return(this.items[index]); }; DataProviderClass.prototype.getItemID = function (index) { return(this.items[index].__ID__); }; DataProviderClass.prototype.sortItemsBy = function (fieldName, order) { this.items.sortOn(fieldName); if (order == "DESC") { this.items.reverse(); } this.updateViews({event:"sort"}); }; DataProviderClass.prototype.updateViews = function (eventObj) { var i = 0; while (i < this.views.length) { this.views[i].modelChanged(eventObj); i++; } }; #endinitclip
Symbol 187 MovieClip [FSelectableItemSymbol] Frame 1
#initclip 6 function FSelectableItemClass() { this.init(); } FSelectableItemClass.prototype = new FUIComponentClass(); FSelectableItemClass.prototype.init = function () { if (this._name != "itemAsset") { this.highlighted = false; this.layoutContent(100); } }; FSelectableItemClass.prototype.drawItem = function (itmObj, selected) { this.displayContent(itmObj, selected); if ((this.highlighted != selected) || ((this.controller.focused != this.oldFocus) && (selected))) { this.setHighlighted(selected); } this.oldFocus = this.controller.focused; }; FSelectableItemClass.prototype.setSize = function (width, height) { var LOWEST_DEPTH = -16384; this.width = width; this.layoutContent(width); this.attachMovie("FHighlightSymbol", "highlight_mc", LOWEST_DEPTH); this.highlight_mc._x = 0.5; this.highlight_mc._width = width - 0.5; this.highlight_mc._height = height; this.highlight_mc.controller = this; this.highlight_mc._alpha = 0; this.highlight_mc.trackAsMenu = true; this.highlight_mc.onPress = function () { if (this.controller.enable) { this.controller.controller.clickHandler(this.controller.itemNum); } }; this.highlight_mc.onDragOver = function () { if (this.controller.controller.focused) { this.onPress(); } }; this.highlight_mc.useHandCursor = false; this.highlight_mc.trackAsMenu = true; }; FSelectableItemClass.prototype.setEnabled = function (enabledFlag) { this.enable = enabledFlag; this.fLabel_mc.setEnabled(enabledFlag); this.highlight_mc.gotoAndStop((enabledFlag ? "unfocused" : "disabled")); }; FSelectableItemClass.prototype.layoutContent = function (width) { this.attachMovie("FLabelSymbol", "fLabel_mc", 2, {hostComponent:this.controller}); this.fLabel_mc._x = 2; this.fLabel_mc._y = 0; this.fLabel_mc.setSize(width - 2); this.fLabel_mc.labelField.selectable = false; }; FSelectableItemClass.prototype.displayContent = function (itmObj, selected) { var tmpLabel = ""; if (itmObj.label != undefined) { tmpLabel = itmObj.label; } else if (typeof(itmObj) == "object") { for (var i in itmObj) { if (i != "__ID__") { tmpLabel = (itmObj[i] + ", ") + tmpLabel; } } tmpLabel = tmpLabel.substring(0, tmpLabel.length - 2); } else { tmpLabel = itmObj; } if (this.fLabel_mc.labelField.text != tmpLabel) { this.fLabel_mc.setLabel(tmpLabel); } var clr = (selected ? (this.controller.styleTable.textSelected.value) : (this.controller.styleTable.textColor.value)); if (clr == undefined) { clr = (selected ? 16777215 : 0); } this.fLabel_mc.setColor(clr); }; FSelectableItemClass.prototype.getItemIndex = function () { return(this.controller.getScrollPosition() + this.itemNum); }; FSelectableItemClass.prototype.getItemModel = function () { return(this.controller.getItemAt(this.getItemIndex())); }; FSelectableItemClass.prototype.getHostDataProvider = function () { return(this.controller.dataProvider); }; FSelectableItemClass.prototype.setHighlighted = function (flag) { fade = this.controller.styleTable.fadeRate.value; if (((fade == undefined) || (fade == 0)) || (!flag)) { this.highlight_mc._alpha = (flag ? 100 : 0); delete this.onEnterFrame; } else { this.fadeN = fade; this.fadeX = 1; this.highLight_mc._alpha = 20; this.onEnterFrame = function () { this.highLight_mc._alpha = (60 * Math.sqrt((this.fadeX++) / this.fadeN)) + 40; if (this.fadeX > this.fadeN) { delete this.onEnterFrame; } }; } this.highlighted = flag; }; #endinitclip
Symbol 188 MovieClip [FSelectableListSymbol] Frame 1
#initclip 5 function FSelectableListClass() { this.init(); } FSelectableListClass.prototype = new FUIComponentClass(); FSelectableListClass.prototype.init = function () { super.init(); this.enable = true; this.selected = new Array(); this.topDisplayed = (this.numDisplayed = 0); this.lastSelected = 0; this.tabChildren = false; if (this._name != undefined) { this.dataProvider = new DataProviderClass(); this.dataProvider.addView(this); } }; FSelectableListClass.prototype.addItemAt = function (index, label, data) { if ((index < 0) || (!this.enable)) { return(undefined); } this.dataProvider.addItemAt(index, {label:label, data:data}); }; FSelectableListClass.prototype.addItem = function (label, data) { if (!this.enable) { return(undefined); } this.dataProvider.addItem({label:label, data:data}); }; FSelectableListClass.prototype.removeItemAt = function (index) { this.selectHolder = this.getSelectedIndex(); var item = this.getItemAt(index); this.dataProvider.removeItemAt(index); return(item); }; FSelectableListClass.prototype.removeAll = function () { this.dataProvider.removeAll(); }; FSelectableListClass.prototype.replaceItemAt = function (index, newLabel, newData) { this.dataProvider.replaceItemAt(index, {label:newLabel, data:newData}); }; FSelectableListClass.prototype.sortItemsBy = function (fieldName, order) { this.lastSelID = this.dataProvider.getItemID(this.lastSelected); this.dataProvider.sortItemsBy(fieldName, order); }; FSelectableListClass.prototype.getLength = function () { return(this.dataProvider.getLength()); }; FSelectableListClass.prototype.getSelectedIndex = function () { for (var uniqueID in this.selected) { var tmpInd = this.selected[uniqueID].sIndex; if (tmpInd != undefined) { return(tmpInd); } } }; FSelectableListClass.prototype.getSelectedItem = function () { return(this.getItemAt(this.getSelectedIndex())); }; FSelectableListClass.prototype.getItemAt = function (index) { return(this.dataProvider.getItemAt(index)); }; FSelectableListClass.prototype.getEnabled = function () { return(this.enable); }; FSelectableListClass.prototype.getValue = function () { var item = this.getSelectedItem(); return(((item.data == undefined) ? (item.label) : (item.data))); }; FSelectableListClass.prototype.setSelectedIndex = function (index, flag) { if (((index >= 0) && (index < this.getLength())) && (this.enable)) { this.clearSelected(); this.selectItem(index, true); this.lastSelected = index; this.invalidate("updateControl"); if (flag != false) { this.executeCallBack(); } } }; FSelectableListClass.prototype.setDataProvider = function (obj) { this.setScrollPosition(0); this.clearSelected(); if (obj instanceof Array) { this.dataProvider = new DataProviderClass(); var i = 0; while (i < obj.length) { var value = ((typeof(obj[i]) == "string") ? ({label:obj[i]}) : (obj[i])); this.dataProvider.addItem(value); i++; } } else { this.dataProvider = obj; } this.dataProvider.addView(this); }; FSelectableListClass.prototype.setItemSymbol = function (linkID) { this.tmpPos = this.getScrollPosition(); this.itemSymbol = linkID; this.invalidate("setSize"); this.setScrollPosition(this.tmpPos); }; FSelectableListClass.prototype.setEnabled = function (enabledFlag) { this.cleanUI(); super.setEnabled(enabledFlag); this.enable = enabledFlag; this.boundingBox_mc.gotoAndStop((this.enable ? "enabled" : "disabled")); var limit = Math.min(this.numDisplayed, this.getLength()); var i = 0; while (i < limit) { this.container_mc[("fListItem" + i) + "_mc"].setEnabled(this.enable); i++; } if (this.enable) { this.invalidate("updateControl"); } }; FSelectableListClass.prototype.updateControl = function () { var i = 0; while (i < this.numDisplayed) { this.container_mc[("fListItem" + i) + "_mc"].drawItem(this.getItemAt(this.topDisplayed + i), this.isSelected(this.topDisplayed + i)); i++; } }; FSelectableListClass.prototype.setSize = function (w, h) { super.setSize(w, h); this.boundingBox_mc._xscale = (this.boundingBox_mc._yscale = 100); this.boundingBox_mc._xscale = (this.width * 100) / this.boundingBox_mc._width; this.boundingBox_mc._yscale = (this.height * 100) / this.boundingBox_mc._height; var i = 0; while (i < this.numDisplayed) { this.container_mc.attachMovie(this.itemSymbol, ("fListItem" + i) + "_mc", 10 + i, {controller:this, itemNum:i}); var item_mc = this.container_mc[("fListItem" + i) + "_mc"]; var offset = ((this.scrollOffset == undefined) ? 0 : (this.scrollOffset)); item_mc.setSize(this.width - offset, this.itmHgt); item_mc._y = (this.itmHgt - 2) * i; i++; } this.updateControl(); }; FSelectableListClass.prototype.modelChanged = function (eventObj) { var firstRow = eventObj.firstRow; var lastRow = eventObj.lastRow; var event = eventObj.event; if (event == "addRows") { for (var i in this.selected) { if ((this.selected[i].sIndex != undefined) && (this.selected[i].sIndex >= firstRow)) { this.selected[i].sIndex = this.selected[i].sIndex + ((lastRow - firstRow) + 1); this.setSelectedIndex(this.selected[i].sIndex, false); } } } else if (event == "deleteRows") { if (firstRow == lastRow) { var index = firstRow; if (this.selectHolder == index) { this.selectionDeleted = true; } if (((this.topDisplayed + this.numDisplayed) >= this.getLength()) && (this.topDisplayed > 0)) { this.topDisplayed--; if (this.selectionDeleted && ((index - 1) >= 0)) { this.setSelectedIndex(index - 1, false); } } else if (this.selectionDeleted) { var len = this.getLength(); if (((index == (len - 1)) && (len > 1)) || (index > (len / 2))) { this.setSelectedIndex(index - 1, false); } else { this.setSelectedIndex(index, false); } } for (var i in this.selected) { if (this.selected[i].sIndex > firstRow) { this.selected[i].sIndex--; } } } else { this.clearSelected(); this.topDisplayed = 0; } } else if (event == "sort") { var len = this.getLength(); var i = 0; while (i < len) { if (this.isSelected(i)) { var id = this.dataProvider.getItemID(i); if (id == this.lastSelID) { this.lastSelected = i; } this.selected[String(id)].sIndex = i; } i++; } } this.invalidate("updateControl"); }; FSelectableListClass.prototype.measureItmHgt = function () { this.attachMovie(this.itemSymbol, "tmpItem_mc", 0, {controller:this}); this.tmpItem_mc.drawItem({label:"Sizer: PjtTopg"}, false); this.itmHgt = this.tmpItem_mc._height; this.tmpItem_mc.removeMovieClip(); }; FSelectableListClass.prototype.selectItem = function (index, selectedFlag) { if (selectedFlag && (!this.isSelected(index))) { this.selected[String(this.dataProvider.getItemID(index))] = {sIndex:index}; } else if (!selectedFlag) { delete this.selected[String(this.dataProvider.getItemID(index))]; } }; FSelectableListClass.prototype.isSelected = function (index) { return(this.selected[String(this.dataProvider.getItemID(index))].sIndex != undefined); }; FSelectableListClass.prototype.clearSelected = function () { for (var uniqueID in this.selected) { var index = this.selected[uniqueID].sIndex; if (((index != undefined) && (this.topDisplayed <= index)) && (index < (this.topDisplayed + this.numDisplayed))) { this.container_mc[("fListItem" + (index - this.topDisplayed)) + "_mc"].drawItem(this.getItemAt(index), false); } } delete this.selected; this.selected = new Array(); }; FSelectableListClass.prototype.selectionHandler = function (itemNum) { var tmpInd = (this.topDisplayed + itemNum); if (this.getItemAt(tmpInd == undefined)) { this.changeFlag = false; return(undefined); } this.changeFlag = true; this.clearSelected(); this.selectItem(tmpInd, true); this.container_mc[("fListItem" + itemNum) + "_mc"].drawItem(this.getItemAt(tmpInd), this.isSelected(tmpInd)); }; FSelectableListClass.prototype.moveSelBy = function (incr) { var itmNum = this.getSelectedIndex(); var newItm = (itmNum + incr); newItm = Math.max(0, newItm); newItm = Math.min(this.getLength() - 1, newItm); if (newItm == itmNum) { return(undefined); } if ((itmNum < this.topDisplayed) || (itmNum >= (this.topDisplayed + this.numDisplayed))) { this.setScrollPosition(itmNum); } if ((newItm >= (this.topDisplayed + this.numDisplayed)) || (newItm < this.topDisplayed)) { this.setScrollPosition(this.topDisplayed + incr); } this.selectionHandler(newItm - this.topDisplayed); }; FSelectableListClass.prototype.clickHandler = function (itmNum) { this.focusRect.removeMovieClip(); if (!this.focused) { this.pressFocus(); } this.selectionHandler(itmNum); this.onMouseUp = this.releaseHandler; }; FSelectableListClass.prototype.releaseHandler = function () { if (this.changeFlag) { this.executeCallBack(); } this.changeFlag = false; this.onMouseUp = undefined; }; FSelectableListClass.prototype.myOnSetFocus = function () { super.myOnSetFocus(); var i = 0; while (i < this.numDisplayed) { this.container_mc[("fListItem" + i) + "_mc"].highlight_mc.gotoAndStop("enabled"); i++; } }; FSelectableListClass.prototype.myOnKillFocus = function () { super.myOnKillFocus(); var i = 0; while (i < this.numDisplayed) { this.container_mc[("fListItem" + i) + "_mc"].highlight_mc.gotoAndStop("unfocused"); i++; } }; #endinitclip
Instance of Symbol 186 MovieClip [DataProviderSymbol] "dPAsset" in Symbol 188 MovieClip [FSelectableListSymbol] Frame 1
//component parameters onClipEvent (initialize) { }
Instance of Symbol 187 MovieClip [FSelectableItemSymbol] "ItemAsset" in Symbol 188 MovieClip [FSelectableListSymbol] Frame 1
//component parameters onClipEvent (initialize) { }
Symbol 189 MovieClip [FScrollSelectListSymbol] Frame 1
#initclip 7 function FScrollSelectListClass() { this.init(); } FScrollSelectListClass.prototype = new FSelectableListClass(); FScrollSelectListClass.prototype.getScrollPosition = function () { return(this.topDisplayed); }; FScrollSelectListClass.prototype.setScrollPosition = function (pos) { if (this.enable) { pos = Math.min(pos, this.getLength() - this.numDisplayed); pos = Math.max(pos, 0); this.scrollBar_mc.setScrollPosition(pos); } }; FScrollSelectListClass.prototype.setAutoHideScrollBar = function (flag) { this.permaScrollBar = !flag; this.setSize(this.width, this.height); }; FScrollSelectListClass.prototype.setEnabled = function (enabledFlag) { super.setEnabled(enabledFlag); this.scrollBar_mc.setEnabled(this.enable); }; FScrollSelectListClass.prototype.setSize = function (w, h) { var pos = this.getScrollPosition(); super.setSize(w, h); if (this.scrollBar_mc != undefined) { this.removed = true; } this.scrollBar_mc = undefined; this.initScrollBar(); this.setScrollPosition(pos); }; FScrollSelectListClass.prototype.modelChanged = function (eventObj) { super.modelChanged(eventObj); this.invalidate("initScrollBar"); }; FScrollSelectListClass.prototype.initScrollBar = function () { if ((!this.permaScrollBar) && (this.getLength() <= this.numDisplayed)) { if (this.removed) { this.scrollBar_mc.removeMovieClip(); this.scrollBar_mc = undefined; this.scrollOffset = undefined; this.invalidate("setSize"); } } else { if (this.scrollBar_mc == undefined) { this.container_mc.attachMovie("FScrollBarSymbol", "scrollBar_mc", 3000, {hostStyle:this.styleTable}); this.scrollBar_mc = this.container_mc.scrollBar_mc; this.scrollBar_mc.setChangeHandler("scrollHandler", this); this.scrollBar_mc.setSize(this.height); this.scrollBar_mc._x = this.width - this.scrollBar_mc._width; this.scrollBar_mc._y = 0; this.scrollBar_mc.setLargeScroll(this.numDisplayed - 1); this.scrollOffset = this.scrollBar_mc._width; this.invalidate("setSize"); } this.scrollBar_mc.setScrollProperties(this.numDisplayed, 0, this.getLength() - this.numDisplayed); } }; FScrollSelectListClass.prototype.scrollHandler = function (scrollBar) { var pos = scrollBar.getScrollPosition(); this.topDisplayed = pos; if (this.lastPosition != pos) { this.updateControl(); } this.lastPosition = pos; }; FScrollSelectListClass.prototype.clickHandler = function (itmNum) { super.clickHandler(itmNum); if ((this.dragScrolling == undefined) && (this.scrollBar_mc != undefined)) { this.dragScrolling = setInterval(this, "dragScroll", 15); } }; FScrollSelectListClass.prototype.releaseHandler = function () { clearInterval(this.dragScrolling); this.dragScrolling = undefined; super.releaseHandler(); }; FScrollSelectListClass.prototype.dragScroll = function () { clearInterval(this.dragScrolling); if (this.container_mc._ymouse < 0) { this.setScrollPosition(this.getScrollPosition() - 1); this.selectionHandler(0); this.scrollInterval = Math.max(25, (-23.8 * (-this.container_mc._ymouse)) + 500); this.dragScrolling = setInterval(this, "dragScroll", this.scrollInterval); } else if (this.container_mc._ymouse > ((this.itmHgt - 2) * this.numDisplayed)) { this.setScrollPosition(this.getScrollPosition() + 1); this.selectionHandler(this.numDisplayed - 1); this.scrollInterval = Math.max(25, (-23.8 * Math.abs((this.container_mc._ymouse - ((this.itmHgt - 2) * this.numDisplayed)) - 2)) + 500); this.dragScrolling = setInterval(this, "dragScroll", this.scrollInterval); } else { this.dragScrolling = setInterval(this, "dragScroll", 15); } }; FScrollSelectListClass.prototype.myOnKeyDown = function () { if (this.focused) { this.keyCodes = new Array(40, 38, 34, 33, 36, 35); this.keyIncrs = new Array(1, -1, this.numDisplayed - 1, -(this.numDisplayed - 1), -this.getLength(), this.getLength()); var i = 0; while (i < this.keyCodes.length) { if (Key.isDown(this.keyCodes[i])) { this.moveSelBy(this.keyIncrs[i]); return(undefined); } i++; } this.findInputText(); } }; FScrollSelectListClass.prototype.findInputText = function () { var tmpCode = Key.getAscii(); if ((tmpCode >= 33) && (tmpCode <= 126)) { this.findString(String.fromCharCode(tmpCode)); } }; FScrollSelectListClass.prototype.findString = function (str) { if (this.getLength() == 0) { return(undefined); } var itemNum = this.getSelectedIndex(); var jump = 0; var i = (itemNum + 1); while (i != itemNum) { var itmStr = this.getItemAt(i).label.substring(0, str.length); if ((str == itmStr) || (str.toUpperCase() == itmStr.toUpperCase())) { var jump = (i - itemNum); break; } if (i >= (this.getLength() - 1)) { i = -1; } i++; } if (jump != 0) { this.moveSelBy(jump); } }; #endinitclip
Instance of Symbol 184 MovieClip [FScrollBarSymbol] "scrollBarAsset" in Symbol 189 MovieClip [FScrollSelectListSymbol] Frame 1
//component parameters onClipEvent (initialize) { _targetInstanceName = ""; horizontal = false; } onClipEvent (load) { this._width = (this._height = 1); }
Instance of Symbol 188 MovieClip [FSelectableListSymbol] "superClassAsset" in Symbol 189 MovieClip [FScrollSelectListSymbol] Frame 1
//component parameters onClipEvent (initialize) { }
Symbol 194 MovieClip [FBoundingBoxSymbol] Frame 1
var component = _parent; component.registerSkinElement(boundingBox, "background"); stop();
Symbol 194 MovieClip [FBoundingBoxSymbol] Frame 2
component.registerSkinElement(boundingBox2, "backgroundDisabled"); stop();
Symbol 197 MovieClip [FListBoxSymbol] Frame 1
#initclip 8 function FListBoxClass() { this.itemSymbol = "FListItemSymbol"; this.init(); this.permaScrollBar = true; var i = 0; while (i < this.labels.length) { this.addItem(this.labels[i], this.data[i]); i++; } this.boundingBox_mc.gotoAndStop(1); this.width = this._width; this.height = this._height; this._yscale = (this._xscale = 100); this.setSize(this.width, this.height); if (this.changeHandler.length > 0) { this.setChangeHandler(this.changeHandler); } } FListBoxClass.prototype = new FScrollSelectListClass(); Object.registerClass("FListBoxSymbol", FListBoxClass); FListBoxClass.prototype.getSelectedIndices = function () { var tmpArray = new Array(); for (var i in this.selected) { tmpArray.push(this.selected[i].sIndex); } return(((tmpArray.length > 0) ? (tmpArray) : undefined)); }; FListBoxClass.prototype.getSelectedItems = function () { var indices = this.getSelectedIndices(); var tmpArray = new Array(); var i = 0; while (i < indices.length) { tmpArray.push(this.getItemAt(indices[i])); i++; } return(((tmpArray.length > 0) ? (tmpArray) : undefined)); }; FListBoxClass.prototype.getSelectMultiple = function () { return(this.selectMultiple); }; FListBoxClass.prototype.getRowCount = function () { return(this.numDisplayed); }; FListBoxClass.prototype.setSelectedIndices = function (indexArray) { this.clearSelected(); var i = 0; while (i < indexArray.length) { this.selectItem(indexArray[i], true); i++; } this.updateControl(); }; FListBoxClass.prototype.setSelectMultiple = function (flag) { this.selectMultiple = flag; }; FListBoxClass.prototype.setRowCount = function (count) { var hgt = ((count * (this.itmHgt - 2)) + 2); this.setSize(this.width, hgt); }; FListBoxClass.prototype.setWidth = function (wdt) { this.setSize(wdt, this.height); }; FListBoxClass.prototype.setSize = function (w, h) { if (!this.enable) { return(undefined); } w = Math.max(w, 20); h = Math.max(h, 40); this.container_mc.removeMovieClip(); this.container_mc = this.createEmptyMovieClip("container", 3); this.measureItmHgt(); this.numDisplayed = Math.floor(h / (this.itmHgt - 2)); this.height = (this.numDisplayed * (this.itmHgt - 2)) + 2; super.setSize(w, this.height); }; FListBoxClass.prototype.removeItemAt = function (index) { this.selectHolder = this.getSelectedIndices(); return(super.removeItemAt(index)); }; FListBoxClass.prototype.selectionHandler = function (itemNum) { if (this.clickFilter) { var index = (this.topDisplayed + itemNum); if (this.getItemAt(index) == undefined) { this.changeFlag = false; return(undefined); } this.changeFlag = true; if (((!this.selectMultiple) && (!Key.isDown(17))) || ((!Key.isDown(16)) && (!Key.isDown(17)))) { this.clearSelected(); this.selectItem(index, true); this.lastSelected = index; this.container_mc[("fListItem" + itemNum) + "_mc"].drawItem(this.getItemAt(index), this.isSelected(index)); } else if (Key.isDown(16) && (this.selectMultiple)) { if (this.lastSelected == -1) { this.lastSelected = index; } var incr = ((this.lastSelected < index) ? 1 : -1); this.clearSelected(); var i = this.lastSelected; while (i != index) { this.selectItem(i, true); if ((i >= this.topDisplayed) && (i < (this.topDisplayed + this.numDisplayed))) { this.container_mc[("fListItem" + (i - this.topDisplayed)) + "_mc"].drawItem(this.getItemAt(i), this.isSelected(i)); } i = i + incr; } this.selectItem(index, true); this.container_mc[("fListItem" + (index - this.topDisplayed)) + "_mc"].drawItem(this.getItemAt(index), this.isSelected(index)); } else if (key.isDown(17)) { var selectedFlag = this.isSelected(index); if (!this.selectMultiple) { this.clearSelected(); } if (!((!this.selectMultiple) && (selectedFlag))) { this.selectItem(index, !selectedFlag); this.container_mc[("fListItem" + itemNum) + "_mc"].drawItem(this.getItemAt(this.topDisplayed + itemNum), this.isSelected(this.topDisplayed + itemNum)); } this.lastSelected = index; } } else { this.clickFilter = true; } }; FListBoxClass.prototype.moveSelBy = function (itemNum) { super.moveSelBy(itemNum); this.releaseHandler(); }; #endinitclip this.deadPreview._visible = false;
Instance of Symbol 189 MovieClip [FScrollSelectListSymbol] "superClassAsset" in Symbol 197 MovieClip [FListBoxSymbol] Frame 1
//component parameters onClipEvent (initialize) { }
Symbol 205 Button
on (release) { getURL ("http://www.somegames.net/flash.html"); }
Symbol 209 Button
on (release) { buttonPressed = "Play"; gotoAndPlay (16); }
Symbol 211 Button
on (release) { gotoAndPlay (23); }
Symbol 213 Button
on (release) { buttonPressed = "Rules"; gotoAndPlay (16); }
Symbol 224 Button
on (release) { getURL ("http://www.somegames.net"); }
Symbol 226 Button
on (release) { play(); }
Symbol 273 Button
on (release) { perform_undo(); release_player_moves(); prepare_player_turn(); }
Symbol 274 Button
on (release) { game_state = "replay"; TurnIndicator.gotoAndStop("replay"); gotoAndPlay (78); }
Symbol 275 Button
on (release) { game_state = "quit"; close_game_dialog(); gotoAndPlay (78); }
Symbol 276 Button
on (release) { close_game_dialog(); perform_undo(); game_state = "move_ai_piece"; gotoAndPlay (78); }
Symbol 277 Button
on (release) { close_game_dialog(); game_state = "replay"; TurnIndicator.gotoAndStop("replay"); gotoAndPlay (78); }
Symbol 279 Button
on (release) { _parent.gotoAndPlay("Rules Done"); }
Symbol 280 Button
on (release) { _parent.do_back(); }
Symbol 282 Button
on (release) { _parent.do_next(); }
Symbol 384 Button
on (release) { getURL ("http://www.somegames.net/flash.html"); }
Symbol 385 Button
on (release) { getURL ("mailto:burton@cs.stanford.edu"); }

Library Items

Symbol 1 MovieClip [FUIComponentSymbol]
Symbol 2 GraphicUsed by:3 21 39 40 46 47 49 55 67
Symbol 3 MovieClipUses:2Used by:14
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClipUses:4Used by:14
Symbol 6 GraphicUsed by:7 27 58 73
Symbol 7 MovieClipUses:6Used by:14
Symbol 8 GraphicUsed by:9 28 59 74
Symbol 9 MovieClipUses:8Used by:14
Symbol 10 GraphicUsed by:11 16 26 60 64 72
Symbol 11 MovieClipUses:10Used by:14
Symbol 12 GraphicUsed by:13 15 25 61 63 71
Symbol 13 MovieClipUses:12Used by:14
Symbol 14 MovieClipUses:3 5 7 9 11 13Used by:34
Symbol 15 MovieClipUses:12Used by:24
Symbol 16 MovieClipUses:10Used by:24
Symbol 17 GraphicUsed by:18 65
Symbol 18 MovieClipUses:17Used by:24
Symbol 19 GraphicUsed by:20 66
Symbol 20 MovieClipUses:19Used by:24
Symbol 21 MovieClipUses:2Used by:24
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClipUses:22Used by:24
Symbol 24 MovieClipUses:15 16 18 20 21 23Used by:34
Symbol 25 MovieClipUses:12Used by:33
Symbol 26 MovieClipUses:10Used by:33
Symbol 27 MovieClipUses:6Used by:33
Symbol 28 MovieClipUses:8Used by:33
Symbol 29 GraphicUsed by:30 75
Symbol 30 MovieClipUses:29Used by:33
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClipUses:31Used by:33
Symbol 33 MovieClipUses:25 26 27 28 30 32Used by:34
Symbol 34 MovieClip [UpArrow]Uses:14 24 33
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClipUses:35Used by:41
Symbol 37 GraphicUsed by:38 42 43 52
Symbol 38 MovieClipUses:37Used by:41
Symbol 39 MovieClipUses:2Used by:41
Symbol 40 MovieClipUses:2Used by:41
Symbol 41 MovieClipUses:36 38 39 40Used by:54
Symbol 42 MovieClipUses:37Used by:48
Symbol 43 MovieClipUses:37Used by:48
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClipUses:44Used by:48
Symbol 46 MovieClipUses:2Used by:48
Symbol 47 MovieClipUses:2Used by:48
Symbol 48 MovieClipUses:42 43 45 46 47Used by:54
Symbol 49 MovieClipUses:2Used by:53
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:53
Symbol 52 MovieClipUses:37Used by:53
Symbol 53 MovieClipUses:49 51 52Used by:54
Symbol 54 MovieClip [ScrollThumb]Uses:41 48 53
Symbol 55 MovieClipUses:2Used by:62
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:56Used by:62
Symbol 58 MovieClipUses:6Used by:62
Symbol 59 MovieClipUses:8Used by:62
Symbol 60 MovieClipUses:10Used by:62
Symbol 61 MovieClipUses:12Used by:62
Symbol 62 MovieClipUses:55 57 58 59 60 61Used by:79
Symbol 63 MovieClipUses:12Used by:70
Symbol 64 MovieClipUses:10Used by:70
Symbol 65 MovieClipUses:17Used by:70
Symbol 66 MovieClipUses:19Used by:70
Symbol 67 MovieClipUses:2Used by:70
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used by:70
Symbol 70 MovieClipUses:63 64 65 66 67 69Used by:79
Symbol 71 MovieClipUses:12Used by:78
Symbol 72 MovieClipUses:10Used by:78
Symbol 73 MovieClipUses:6Used by:78
Symbol 74 MovieClipUses:8Used by:78
Symbol 75 MovieClipUses:29Used by:78
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76Used by:78
Symbol 78 MovieClipUses:71 72 73 74 75 77Used by:79
Symbol 79 MovieClip [DownArrow]Uses:62 70 78
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClipUses:80Used by:82
Symbol 82 MovieClip [FHighlightSymbol]Uses:81
Symbol 83 FontUsed by:84
Symbol 84 EditableTextUses:83Used by:85
Symbol 85 MovieClip [FLabelSymbol]Uses:84
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClipUses:86Used by:88
Symbol 88 MovieClip [r_castle]Uses:87
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:91
Symbol 91 MovieClip [r_knight]Uses:90
Symbol 92 GraphicUsed by:93
Symbol 93 MovieClipUses:92Used by:94
Symbol 94 MovieClip [r_bishop]Uses:93
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:97
Symbol 97 MovieClip [r_queen]Uses:96
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:100
Symbol 100 MovieClip [r_king]Uses:99
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClipUses:101Used by:103
Symbol 103 MovieClip [r_pawn]Uses:102
Symbol 104 GraphicUsed by:105
Symbol 105 ButtonUses:104Used by:120 125 170 174  Timeline
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:120 125 170 174
Symbol 108 GraphicUsed by:113 117
Symbol 109 FontUsed by:110 114 115 121 122 157 158 171 206 208 260 372 373
Symbol 110 TextUses:109Used by:113 117
Symbol 111 GraphicUsed by:113 117 209 211 213 221 226 262 264 266 273 274 275 276 277 279 280 282
Symbol 112 GraphicUsed by:113 117 209 211 213 221 226 262 264 266 273 274 275 276 277 279 280 282
Symbol 113 ButtonUses:108 110 111 112Used by:120 125 174
Symbol 114 TextUses:109Used by:116
Symbol 115 TextUses:109Used by:116
Symbol 116 MovieClipUses:114 115Used by:120
Symbol 117 ButtonUses:108 110 111 112Used by:120 125 174
Symbol 118 FontUsed by:119 124 173 289 292 320 321 322 329 331 332 333 335 336 337 339 340 341 343 344 345 347 348 349 351 353 356 358 360 362 363 366 367 369 370 375 376 378 383
Symbol 119 EditableTextUses:118Used by:120
Symbol 120 MovieClip [stalemate]Uses:105 107 113 116 117 119
Symbol 121 TextUses:109Used by:123 172
Symbol 122 TextUses:109Used by:123
Symbol 123 MovieClipUses:121 122Used by:125
Symbol 124 EditableTextUses:118Used by:125
Symbol 125 MovieClip [player_checkmate]Uses:105 107 113 123 117 124
Symbol 126 GraphicUsed by:170
Symbol 127 FontUsed by:128 129 130 131 132 133 134 135 136 137 138 139 140 198 210 212 219 220 222 249 250 251 252 253 254 255 256 257 261 263 265 278 281 290 319 327 330 334 338 342 346 350 352 355 357 359 361 365 374 377 380 386
Symbol 128 TextUses:127Used by:170
Symbol 129 TextUses:127Used by:170
Symbol 130 TextUses:127Used by:170
Symbol 131 TextUses:127Used by:170
Symbol 132 TextUses:127Used by:170
Symbol 133 TextUses:127Used by:170
Symbol 134 TextUses:127Used by:170
Symbol 135 TextUses:127Used by:170
Symbol 136 TextUses:127Used by:170
Symbol 137 TextUses:127Used by:170
Symbol 138 TextUses:127Used by:170
Symbol 139 TextUses:127Used by:170
Symbol 140 TextUses:127Used by:170
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:141Used by:143
Symbol 143 MovieClip [w_knight]Uses:142Used by:163 170  Timeline
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144Used by:146
Symbol 146 MovieClip [w_bishop]Uses:145Used by:167 170  Timeline
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:147Used by:149
Symbol 149 MovieClip [w_castle]Uses:148Used by:153 168  Timeline
Symbol 150 GraphicUsed by:153 168
Symbol 151 GraphicUsed by:153 168
Symbol 152 GraphicUsed by:153 168
Symbol 153 ButtonUses:149 150 151 152Used by:170
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClipUses:154Used by:156
Symbol 156 MovieClip [w_queen]Uses:155Used by:169 170  Timeline
Symbol 157 TextUses:109Used by:159
Symbol 158 TextUses:109Used by:159
Symbol 159 MovieClipUses:157 158Used by:170
Symbol 160 GraphicUsed by:163
Symbol 161 GraphicUsed by:163
Symbol 162 GraphicUsed by:163
Symbol 163 ButtonUses:143 160 161 162Used by:170
Symbol 164 GraphicUsed by:167 169
Symbol 165 GraphicUsed by:167 169
Symbol 166 GraphicUsed by:167 169
Symbol 167 ButtonUses:146 164 165 166Used by:170
Symbol 168 ButtonUses:149 150 151 152Used by:170
Symbol 169 ButtonUses:156 164 165 166Used by:170
Symbol 170 MovieClip [promote_pawn]Uses:126 128 129 130 131 132 133 134 135 136 137 138 139 140 105 107 143 146 153 156 159 163 167 168 169
Symbol 171 TextUses:109Used by:172
Symbol 172 MovieClipUses:121 171Used by:174
Symbol 173 EditableTextUses:118Used by:174
Symbol 174 MovieClip [ai_checkmate]Uses:105 107 113 172 117 173
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClipUses:175Used by:177
Symbol 177 MovieClip [w_king]Uses:176Used by:Timeline
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClipUses:178Used by:180
Symbol 180 MovieClip [w_pawn]Uses:179Used by:Timeline
Symbol 181 GraphicUsed by:182
Symbol 182 MovieClipUses:181Used by:183
Symbol 183 MovieClipUses:182Used by:184
Symbol 184 MovieClip [FScrollBarSymbol]Uses:183Used by:189
Symbol 185 MovieClip [FListItemSymbol]Used by:197
Symbol 186 MovieClip [DataProviderSymbol]Used by:188
Symbol 187 MovieClip [FSelectableItemSymbol]Used by:188
Symbol 188 MovieClip [FSelectableListSymbol]Uses:186 187Used by:189
Symbol 189 MovieClip [FScrollSelectListSymbol]Uses:184 188Used by:197
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:194
Symbol 192 GraphicUsed by:194
Symbol 193 GraphicUsed by:194
Symbol 194 MovieClip [FBoundingBoxSymbol]Uses:191 192 193Used by:197
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClipUses:195Used by:197
Symbol 197 MovieClip [FListBoxSymbol]Uses:185 189 194 196Used by:Timeline
Symbol 198 TextUses:127Used by:205
Symbol 199 GraphicUsed by:205
Symbol 200 FontUsed by:201 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243
Symbol 201 TextUses:200Used by:205
Symbol 202 GraphicUsed by:205 224 384 385
Symbol 203 GraphicUsed by:205
Symbol 204 GraphicUsed by:205
Symbol 205 ButtonUses:198 199 201 202 203 204Used by:Timeline
Symbol 206 TextUses:109Used by:207
Symbol 207 MovieClipUses:206Used by:Timeline
Symbol 208 TextUses:109Used by:209
Symbol 209 ButtonUses:111 208 112Used by:Timeline
Symbol 210 TextUses:127Used by:211
Symbol 211 ButtonUses:111 210 112Used by:Timeline
Symbol 212 TextUses:127Used by:213
Symbol 213 ButtonUses:111 212 112Used by:Timeline
Symbol 214 ShapeTweeningUsed by:Timeline
Symbol 215 GraphicUsed by:Timeline
Symbol 216 ShapeTweeningUsed by:Timeline
Symbol 217 GraphicUsed by:381  Timeline
Symbol 218 ShapeTweeningUsed by:Timeline
Symbol 219 TextUses:127Used by:221 226 280
Symbol 220 TextUses:127Used by:221 226 280 282
Symbol 221 ButtonUses:111 219 220 112Used by:Timeline
Symbol 222 TextUses:127Used by:225
Symbol 223 GraphicUsed by:224 384 385
Symbol 224 ButtonUses:202 223Used by:225
Symbol 225 MovieClipUses:222 224Used by:Timeline
Symbol 226 ButtonUses:111 219 220 112Used by:Timeline
Symbol 227 ShapeTweeningUsed by:Timeline
Symbol 228 TextUses:200Used by:244
Symbol 229 TextUses:200Used by:244
Symbol 230 TextUses:200Used by:244
Symbol 231 TextUses:200Used by:244
Symbol 232 TextUses:200Used by:244
Symbol 233 TextUses:200Used by:244
Symbol 234 TextUses:200Used by:244
Symbol 235 TextUses:200Used by:244
Symbol 236 TextUses:200Used by:244
Symbol 237 TextUses:200Used by:244
Symbol 238 TextUses:200Used by:244
Symbol 239 TextUses:200Used by:244
Symbol 240 TextUses:200Used by:244
Symbol 241 TextUses:200Used by:244
Symbol 242 TextUses:200Used by:244
Symbol 243 TextUses:200Used by:244
Symbol 244 MovieClipUses:228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243Used by:Timeline
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:Timeline
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClipUses:247Used by:Timeline
Symbol 249 TextUses:127Used by:Timeline
Symbol 250 TextUses:127Used by:258
Symbol 251 TextUses:127Used by:258
Symbol 252 TextUses:127Used by:258
Symbol 253 TextUses:127Used by:258
Symbol 254 TextUses:127Used by:258
Symbol 255 TextUses:127Used by:258
Symbol 256 TextUses:127Used by:258
Symbol 257 TextUses:127Used by:258
Symbol 258 MovieClipUses:250 251 252 253 254 255 256 257Used by:Timeline
Symbol 259 GraphicUsed by:Timeline
Symbol 260 TextUses:109Used by:Timeline
Symbol 261 TextUses:127Used by:262 273 276
Symbol 262 ButtonUses:111 261 112Used by:Timeline
Symbol 263 TextUses:127Used by:264 274 277
Symbol 264 ButtonUses:111 263 112Used by:Timeline
Symbol 265 TextUses:127Used by:266 275
Symbol 266 ButtonUses:111 265 112Used by:Timeline
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClipUses:267Used by:Timeline
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClipUses:269Used by:Timeline
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClipUses:271Used by:Timeline
Symbol 273 ButtonUses:111 261 112Used by:Timeline
Symbol 274 ButtonUses:111 263 112Used by:Timeline
Symbol 275 ButtonUses:111 265 112Used by:Timeline
Symbol 276 ButtonUses:111 261 112Used by:Timeline
Symbol 277 ButtonUses:111 263 112Used by:Timeline
Symbol 278 TextUses:127Used by:279
Symbol 279 ButtonUses:111 278 112Used by:283
Symbol 280 ButtonUses:111 219 220 112Used by:283
Symbol 281 TextUses:127Used by:282
Symbol 282 ButtonUses:111 281 220 112Used by:283
Symbol 283 MovieClipUses:279 280 282Used by:Timeline
Symbol 284 ShapeTweeningUsed by:Timeline
Symbol 285 GraphicUsed by:Timeline
Symbol 286 ShapeTweeningUsed by:Timeline
Symbol 287 GraphicUsed by:Timeline
Symbol 288 FontUsed by:289 320 331 335 339 343 347 353 356 358 360 363 370 383
Symbol 289 TextUses:118 288Used by:Timeline
Symbol 290 TextUses:127Used by:Timeline
Symbol 291 ShapeTweeningUsed by:Timeline
Symbol 292 TextUses:118Used by:Timeline
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293Used by:296 298 300 302 304 306 308 310 312 314 316 318 324 326
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:294 295Used by:Timeline
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClipUses:294 297Used by:Timeline
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClipUses:294 299Used by:Timeline
Symbol 301 GraphicUsed by:302
Symbol 302 MovieClipUses:294 301Used by:Timeline
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClipUses:294 303Used by:Timeline
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClipUses:294 305Used by:Timeline
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:294 307Used by:Timeline
Symbol 309 GraphicUsed by:310
Symbol 310 MovieClipUses:294 309Used by:Timeline
Symbol 311 GraphicUsed by:312
Symbol 312 MovieClipUses:294 311Used by:Timeline
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:294 313Used by:Timeline
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClipUses:294 315Used by:Timeline
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:294 317Used by:Timeline
Symbol 319 TextUses:127Used by:Timeline
Symbol 320 TextUses:118 288Used by:Timeline
Symbol 321 TextUses:118Used by:Timeline
Symbol 322 TextUses:118Used by:Timeline
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClipUses:323 294Used by:Timeline
Symbol 325 GraphicUsed by:326
Symbol 326 MovieClipUses:325 294Used by:Timeline
Symbol 327 TextUses:127Used by:Timeline
Symbol 328 FontUsed by:329 351
Symbol 329 TextUses:118 328Used by:Timeline
Symbol 330 TextUses:127Used by:Timeline
Symbol 331 TextUses:118 288Used by:Timeline
Symbol 332 TextUses:118Used by:Timeline
Symbol 333 TextUses:118Used by:Timeline
Symbol 334 TextUses:127Used by:Timeline
Symbol 335 TextUses:118 288Used by:Timeline
Symbol 336 TextUses:118Used by:Timeline
Symbol 337 TextUses:118Used by:Timeline
Symbol 338 TextUses:127Used by:Timeline
Symbol 339 TextUses:118 288Used by:Timeline
Symbol 340 TextUses:118Used by:Timeline
Symbol 341 TextUses:118Used by:Timeline
Symbol 342 TextUses:127Used by:Timeline
Symbol 343 TextUses:118 288Used by:Timeline
Symbol 344 TextUses:118Used by:Timeline
Symbol 345 TextUses:118Used by:Timeline
Symbol 346 TextUses:127Used by:Timeline
Symbol 347 TextUses:118 288Used by:Timeline
Symbol 348 TextUses:118Used by:Timeline
Symbol 349 TextUses:118Used by:Timeline
Symbol 350 TextUses:127Used by:Timeline
Symbol 351 TextUses:118 328Used by:Timeline
Symbol 352 TextUses:127Used by:Timeline
Symbol 353 TextUses:118 288Used by:Timeline
Symbol 354 GraphicUsed by:Timeline
Symbol 355 TextUses:127Used by:Timeline
Symbol 356 TextUses:118 288Used by:Timeline
Symbol 357 TextUses:127Used by:Timeline
Symbol 358 TextUses:118 288Used by:Timeline
Symbol 359 TextUses:127Used by:Timeline
Symbol 360 TextUses:118 288Used by:Timeline
Symbol 361 TextUses:127Used by:Timeline
Symbol 362 TextUses:118Used by:Timeline
Symbol 363 TextUses:118 288Used by:Timeline
Symbol 364 GraphicUsed by:Timeline
Symbol 365 TextUses:127Used by:Timeline
Symbol 366 TextUses:118Used by:Timeline
Symbol 367 TextUses:118Used by:Timeline
Symbol 368 GraphicUsed by:Timeline
Symbol 369 TextUses:118Used by:Timeline
Symbol 370 TextUses:288 118Used by:Timeline
Symbol 371 GraphicUsed by:Timeline
Symbol 372 TextUses:109Used by:Timeline
Symbol 373 TextUses:109Used by:Timeline
Symbol 374 TextUses:127Used by:Timeline
Symbol 375 TextUses:118Used by:Timeline
Symbol 376 TextUses:118Used by:Timeline
Symbol 377 TextUses:127Used by:Timeline
Symbol 378 TextUses:118Used by:Timeline
Symbol 379 GraphicUsed by:382  Timeline
Symbol 380 TextUses:127Used by:Timeline
Symbol 381 ButtonUses:217Used by:Timeline
Symbol 382 MovieClipUses:379Used by:Timeline
Symbol 383 TextUses:118 288Used by:Timeline
Symbol 384 ButtonUses:202 223Used by:Timeline
Symbol 385 ButtonUses:202 223Used by:Timeline
Symbol 386 TextUses:127Used by:Timeline

Instance Names

"GameHistory"Frame 78Symbol 197 MovieClip [FListBoxSymbol]
"CoverButton"Frame 78Symbol 105 Button
"TurnIndicator"Frame 78Symbol 258 MovieClip
"blue_select"Frame 85Symbol 268 MovieClip
"green_select"Frame 85Symbol 270 MovieClip
"cyan_select"Frame 85Symbol 272 MovieClip
"NoNext"Frame 320Symbol 381 Button
"sample_blue_box"Frame 320Symbol 268 MovieClip
"sample_cyan_box"Frame 320Symbol 272 MovieClip
"sample_green_box"Frame 320Symbol 270 MovieClip
"sample_queen"Frame 320Symbol 156 MovieClip [w_queen]
"face_mc"Symbol 14 MovieClip Frame 1Symbol 3 MovieClip
"arrow_mc"Symbol 14 MovieClip Frame 1Symbol 5 MovieClip
"highlight_mc"Symbol 14 MovieClip Frame 1Symbol 7 MovieClip
"shadow_mc"Symbol 14 MovieClip Frame 1Symbol 9 MovieClip
"darkshadow_mc"Symbol 14 MovieClip Frame 1Symbol 11 MovieClip
"highlight3D_mc"Symbol 14 MovieClip Frame 1Symbol 13 MovieClip
"darkshadow_mc"Symbol 24 MovieClip Frame 1Symbol 15 MovieClip
"highlight3D_mc"Symbol 24 MovieClip Frame 1Symbol 16 MovieClip
"highlight_mc"Symbol 24 MovieClip Frame 1Symbol 18 MovieClip
"shadow_mc"Symbol 24 MovieClip Frame 1Symbol 20 MovieClip
"face_mc"Symbol 24 MovieClip Frame 1Symbol 21 MovieClip
"arrow_mc"Symbol 24 MovieClip Frame 1Symbol 23 MovieClip
"highlight3D_mc"Symbol 33 MovieClip Frame 1Symbol 25 MovieClip
"darkshadow_mc"Symbol 33 MovieClip Frame 1Symbol 26 MovieClip
"highlight_mc"Symbol 33 MovieClip Frame 1Symbol 27 MovieClip
"shadow_mc"Symbol 33 MovieClip Frame 1Symbol 28 MovieClip
"face_mc"Symbol 33 MovieClip Frame 1Symbol 30 MovieClip
"arrow_mc"Symbol 33 MovieClip Frame 1Symbol 32 MovieClip
"up"Symbol 34 MovieClip [UpArrow] Frame 1Symbol 14 MovieClip
"down"Symbol 34 MovieClip [UpArrow] Frame 2Symbol 24 MovieClip
"disabled"Symbol 34 MovieClip [UpArrow] Frame 3Symbol 33 MovieClip
"highlight3D_mc"Symbol 41 MovieClip Frame 1Symbol 36 MovieClip
"darkshadow_mc"Symbol 41 MovieClip Frame 1Symbol 38 MovieClip
"highlight_mc"Symbol 41 MovieClip Frame 1Symbol 39 MovieClip
"shadow_mc"Symbol 41 MovieClip Frame 1Symbol 40 MovieClip
"highlight3D_mc"Symbol 48 MovieClip Frame 1Symbol 42 MovieClip
"darkshadow_mc"Symbol 48 MovieClip Frame 1Symbol 43 MovieClip
"shadow_mc"Symbol 48 MovieClip Frame 1Symbol 45 MovieClip
"face_mc"Symbol 48 MovieClip Frame 1Symbol 46 MovieClip
"highlight_mc"Symbol 48 MovieClip Frame 1Symbol 47 MovieClip
"shadow_mc"Symbol 53 MovieClip Frame 1Symbol 49 MovieClip
"darkshadow_mc"Symbol 53 MovieClip Frame 1Symbol 51 MovieClip
"highlight3D_mc"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip
"mc_sliderTop"Symbol 54 MovieClip [ScrollThumb] Frame 1Symbol 41 MovieClip
"mc_sliderMid"Symbol 54 MovieClip [ScrollThumb] Frame 1Symbol 48 MovieClip
"mc_sliderBot"Symbol 54 MovieClip [ScrollThumb] Frame 1Symbol 53 MovieClip
"face_mc"Symbol 62 MovieClip Frame 1Symbol 55 MovieClip
"arrow_mc"Symbol 62 MovieClip Frame 1Symbol 57 MovieClip
"highlight_mc"Symbol 62 MovieClip Frame 1Symbol 58 MovieClip
"shadow_mc"Symbol 62 MovieClip Frame 1Symbol 59 MovieClip
"darkshadow_mc"Symbol 62 MovieClip Frame 1Symbol 60 MovieClip
"highlight3D_mc"Symbol 62 MovieClip Frame 1Symbol 61 MovieClip
"darkshadow_mc"Symbol 70 MovieClip Frame 1Symbol 63 MovieClip
"highlight3D_mc"Symbol 70 MovieClip Frame 1Symbol 64 MovieClip
"highlight_mc"Symbol 70 MovieClip Frame 1Symbol 65 MovieClip
"shadow_mc"Symbol 70 MovieClip Frame 1Symbol 66 MovieClip
"face_mc"Symbol 70 MovieClip Frame 1Symbol 67 MovieClip
"arrow_mc"Symbol 70 MovieClip Frame 1Symbol 69 MovieClip
"highlight3D_mc"Symbol 78 MovieClip Frame 1Symbol 71 MovieClip
"darkshadow_mc"Symbol 78 MovieClip Frame 1Symbol 72 MovieClip
"highlight_mc"Symbol 78 MovieClip Frame 1Symbol 73 MovieClip
"shadow_mc"Symbol 78 MovieClip Frame 1Symbol 74 MovieClip
"face_mc"Symbol 78 MovieClip Frame 1Symbol 75 MovieClip
"arrow_mc"Symbol 78 MovieClip Frame 1Symbol 77 MovieClip
"up"Symbol 79 MovieClip [DownArrow] Frame 1Symbol 62 MovieClip
"down"Symbol 79 MovieClip [DownArrow] Frame 2Symbol 70 MovieClip
"disabled"Symbol 79 MovieClip [DownArrow] Frame 3Symbol 78 MovieClip
"highlight_mc"Symbol 82 MovieClip [FHighlightSymbol] Frame 1Symbol 81 MovieClip
"highlight_mc2"Symbol 82 MovieClip [FHighlightSymbol] Frame 2Symbol 81 MovieClip
"highlight_mc3"Symbol 82 MovieClip [FHighlightSymbol] Frame 3Symbol 81 MovieClip
"labelField"Symbol 85 MovieClip [FLabelSymbol] Frame 1Symbol 84 EditableText
"spr"Symbol 88 MovieClip [r_castle] Frame 1Symbol 87 MovieClip
"spr"Symbol 91 MovieClip [r_knight] Frame 1Symbol 90 MovieClip
"spr"Symbol 94 MovieClip [r_bishop] Frame 1Symbol 93 MovieClip
"spr"Symbol 97 MovieClip [r_queen] Frame 1Symbol 96 MovieClip
"spr"Symbol 100 MovieClip [r_king] Frame 1Symbol 99 MovieClip
"spr"Symbol 103 MovieClip [r_pawn] Frame 1Symbol 102 MovieClip
"CoverButton"Symbol 120 MovieClip [stalemate] Frame 1Symbol 105 Button
"CoverButton"Symbol 125 MovieClip [player_checkmate] Frame 1Symbol 105 Button
"spr"Symbol 143 MovieClip [w_knight] Frame 1Symbol 142 MovieClip
"spr"Symbol 146 MovieClip [w_bishop] Frame 1Symbol 145 MovieClip
"spr"Symbol 149 MovieClip [w_castle] Frame 1Symbol 148 MovieClip
"spr"Symbol 156 MovieClip [w_queen] Frame 1Symbol 155 MovieClip
"CoverButton"Symbol 170 MovieClip [promote_pawn] Frame 1Symbol 105 Button
"CoverButton"Symbol 174 MovieClip [ai_checkmate] Frame 1Symbol 105 Button
"spr"Symbol 177 MovieClip [w_king] Frame 1Symbol 176 MovieClip
"spr"Symbol 180 MovieClip [w_pawn] Frame 1Symbol 179 MovieClip
"track_mc"Symbol 183 MovieClip Frame 1Symbol 182 MovieClip
"scrollTrack_mc"Symbol 184 MovieClip [FScrollBarSymbol] Frame 1Symbol 183 MovieClip
"dPAsset"Symbol 188 MovieClip [FSelectableListSymbol] Frame 1Symbol 186 MovieClip [DataProviderSymbol]
"ItemAsset"Symbol 188 MovieClip [FSelectableListSymbol] Frame 1Symbol 187 MovieClip [FSelectableItemSymbol]
"scrollBarAsset"Symbol 189 MovieClip [FScrollSelectListSymbol] Frame 1Symbol 184 MovieClip [FScrollBarSymbol]
"superClassAsset"Symbol 189 MovieClip [FScrollSelectListSymbol] Frame 1Symbol 188 MovieClip [FSelectableListSymbol]
"boundingBox"Symbol 194 MovieClip [FBoundingBoxSymbol] Frame 1Symbol 191 MovieClip
"boundingBox2"Symbol 194 MovieClip [FBoundingBoxSymbol] Frame 2Symbol 191 MovieClip
"itemAsset"Symbol 197 MovieClip [FListBoxSymbol] Frame 1Symbol 185 MovieClip [FListItemSymbol]
"superClassAsset"Symbol 197 MovieClip [FListBoxSymbol] Frame 1Symbol 189 MovieClip [FScrollSelectListSymbol]
"boundingBox_mc"Symbol 197 MovieClip [FListBoxSymbol] Frame 1Symbol 194 MovieClip [FBoundingBoxSymbol]
"deadPreview"Symbol 197 MovieClip [FListBoxSymbol] Frame 1Symbol 196 MovieClip

Special Tags

Protect (24)Timeline Frame 131 bytes "..$1$N3$CDAJSTU71Z/O4paEO1VDO.."
ExportAssets (56)Timeline Frame 1Symbol 1 as "FUIComponentSymbol"
ExportAssets (56)Timeline Frame 1Symbol 34 as "UpArrow"
ExportAssets (56)Timeline Frame 1Symbol 54 as "ScrollThumb"
ExportAssets (56)Timeline Frame 1Symbol 79 as "DownArrow"
ExportAssets (56)Timeline Frame 1Symbol 82 as "FHighlightSymbol"
ExportAssets (56)Timeline Frame 1Symbol 85 as "FLabelSymbol"
ExportAssets (56)Timeline Frame 1Symbol 88 as "r_castle"
ExportAssets (56)Timeline Frame 1Symbol 91 as "r_knight"
ExportAssets (56)Timeline Frame 1Symbol 94 as "r_bishop"
ExportAssets (56)Timeline Frame 1Symbol 97 as "r_queen"
ExportAssets (56)Timeline Frame 1Symbol 100 as "r_king"
ExportAssets (56)Timeline Frame 1Symbol 103 as "r_pawn"
ExportAssets (56)Timeline Frame 1Symbol 120 as "stalemate"
ExportAssets (56)Timeline Frame 1Symbol 125 as "player_checkmate"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 170 as "promote_pawn"
ExportAssets (56)Timeline Frame 1Symbol 174 as "ai_checkmate"
ExportAssets (56)Timeline Frame 1Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 1Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 1Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 1Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 1Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 1Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 1Symbol 184 as "FScrollBarSymbol"
ExportAssets (56)Timeline Frame 1Symbol 185 as "FListItemSymbol"
ExportAssets (56)Timeline Frame 1Symbol 184 as "FScrollBarSymbol"
ExportAssets (56)Timeline Frame 1Symbol 186 as "DataProviderSymbol"
ExportAssets (56)Timeline Frame 1Symbol 187 as "FSelectableItemSymbol"
ExportAssets (56)Timeline Frame 1Symbol 188 as "FSelectableListSymbol"
ExportAssets (56)Timeline Frame 1Symbol 189 as "FScrollSelectListSymbol"
ExportAssets (56)Timeline Frame 1Symbol 194 as "FBoundingBoxSymbol"
ExportAssets (56)Timeline Frame 1Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 78Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 79Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 80Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 81Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 82Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 83Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 84Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 85Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 86Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 87Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 88Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 89Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 90Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 91Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 92Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 93Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 94Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 95Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 96Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 97Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 98Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 99Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 100Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 101Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 102Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 103Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 104Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 105Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 106Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 107Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 108Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 109Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 110Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 111Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 112Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 113Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 114Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 115Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 116Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 117Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 118Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 119Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 120Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 121Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 122Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 123Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 124Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 125Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 126Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 127Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 128Symbol 197 as "FListBoxSymbol"
ExportAssets (56)Timeline Frame 179Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 180Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 181Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 182Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 183Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 184Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 185Symbol 180 as "w_pawn"
ExportAssets (56)Timeline Frame 193Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 194Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 195Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 196Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 197Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 198Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 199Symbol 143 as "w_knight"
ExportAssets (56)Timeline Frame 200Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 201Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 202Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 203Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 204Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 205Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 206Symbol 146 as "w_bishop"
ExportAssets (56)Timeline Frame 207Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 208Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 209Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 210Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 211Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 212Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 213Symbol 149 as "w_castle"
ExportAssets (56)Timeline Frame 214Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 215Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 216Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 217Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 218Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 219Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 220Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 221Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 222Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 223Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 224Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 225Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 226Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 227Symbol 177 as "w_king"
ExportAssets (56)Timeline Frame 320Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 321Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 322Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 323Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 324Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 325Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 326Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 327Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 328Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 329Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 330Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 331Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 332Symbol 156 as "w_queen"
ExportAssets (56)Timeline Frame 333Symbol 156 as "w_queen"

Labels

"Splash Stop"Frame 15
"LeaveSplash"Frame 16
"ToAbout"Frame 23
"About"Frame 30
"About Fade"Frame 38
"Fade In"Frame 54
"Initialize"Frame 69
"Main"Frame 78
"Active Right Panel"Frame 78
"PlayerMove"Frame 85
"Selectors"Frame 85
"Player Move"Frame 87
"AIPonder"Frame 98
"AI Ponder"Frame 100
"Animate"Frame 109
"Animation"Frame 110
"Game Over"Frame 119
"Fade Out"Frame 129
"Rules Start"Frame 143
"Rules Done"Frame 155
"Rule1"Frame 165
"Rule1Stop"Frame 171
"Rule2"Frame 172
"Rule3"Frame 179
"Rule4"Frame 186
"Rule5"Frame 193
"Rule6"Frame 200
"Rule7"Frame 207
"Rule8"Frame 214
"Rule9"Frame 221
"Rule10"Frame 228
"Rule11"Frame 235
"Rule12"Frame 242
"Rule13"Frame 249
"Rule14"Frame 256
"Rule15"Frame 273
"Rule16"Frame 283
"Rule17"Frame 294
"Rule18"Frame 313
"Rule19"Frame 320
"Queen Pause"Frame 322
"Queen Loop"Frame 324
"Rule20"Frame 327
"Symbol_36"Symbol 1 MovieClip [FUIComponentSymbol] Frame 1
"enabled"Symbol 82 MovieClip [FHighlightSymbol] Frame 1
"disabled"Symbol 82 MovieClip [FHighlightSymbol] Frame 2
"unfocused"Symbol 82 MovieClip [FHighlightSymbol] Frame 3
"Symbol_32"Symbol 85 MovieClip [FLabelSymbol] Frame 1
"Symbol_354"Symbol 186 MovieClip [DataProviderSymbol] Frame 1
"enabled"Symbol 194 MovieClip [FBoundingBoxSymbol] Frame 1
"disabled"Symbol 194 MovieClip [FBoundingBoxSymbol] Frame 2
"pl_turn"Symbol 258 MovieClip Frame 1
"ai_turn"Symbol 258 MovieClip Frame 11
"pl_check"Symbol 258 MovieClip Frame 21
"ai_check"Symbol 258 MovieClip Frame 31
"pl_mate"Symbol 258 MovieClip Frame 41
"ai_mate"Symbol 258 MovieClip Frame 51
"stalemate"Symbol 258 MovieClip Frame 60
"replay"Symbol 258 MovieClip Frame 70

Dynamic Text Variables

totalMovesSymbol 119 EditableText"(total moves: 15)"
totalMovesSymbol 124 EditableText"(total moves: 15)"
totalMovesSymbol 173 EditableText"(total moves: 15)"




http://swfchan.com/3/12612/info.shtml
Created: 5/6 -2019 19:42:17 Last modified: 5/6 -2019 19:42:17 Server time: 22/12 -2024 21:27:23