亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tictactoe.java

?? JavaApplet實例編程 本代碼面向Java的愛好者和從事網絡開發的院校學生及技術人員。
?? JAVA
字號:

import java.awt.*;
import java.awt.image.*;
import java.net.*;
import java.applet.*;

/**
 * A TicTacToe applet. A very simple, and mostly brain-dead
 * implementation of your favorite game! <p>
 *
 * In this game a position is represented by a white and black
 * bitmask. A bit is set if a position is ocupied. There are
 * 9 squares so there are 1<<9 possible positions for each
 * side. An array of 1<<9 booleans is created, it marks
 * all the winning positions.
 *
 */
public
class TicTacToe extends Applet {
    /**
     * White's current position. The computer is white.
     */
    int white;

    /**
     * Black's current position. The user is black.
     */
    int black;

    /**
     * The squares in order of importance...
     */
    final static int moves[] = {4, 0, 2, 6, 8, 1, 3, 5, 7};

    /**
     * The winning positions.
     */
    static boolean won[] = new boolean[1 << 9];
    static final int DONE = (1 << 9) - 1;
    static final int OK = 0;
    static final int WIN = 1;
    static final int LOSE = 2;
    static final int STALEMATE = 3;

    /**
     * Mark all positions with these bits set as winning.
     */
    static void isWon(int pos) {
	for (int i = 0 ; i < DONE ; i++) {
	    if ((i & pos) == pos) {
		won[i] = true;
	    }
	}
    }

    /**
     * Initialize all winning positions.
     */
    static {
	isWon((1 << 0) | (1 << 1) | (1 << 2));
	isWon((1 << 3) | (1 << 4) | (1 << 5));
	isWon((1 << 6) | (1 << 7) | (1 << 8));
	isWon((1 << 0) | (1 << 3) | (1 << 6));
	isWon((1 << 1) | (1 << 4) | (1 << 7));
	isWon((1 << 2) | (1 << 5) | (1 << 8));
	isWon((1 << 0) | (1 << 4) | (1 << 8));
	isWon((1 << 2) | (1 << 4) | (1 << 6));
    }

    /**
     * Compute the best move for white.
     * @return the square to take
     */
    int bestMove(int white, int black) {
	int bestmove = -1;
	
      loop:
	for (int i = 0 ; i < 9 ; i++) {
	    int mw = moves[i];
	    if (((white & (1 << mw)) == 0) && ((black & (1 << mw)) == 0)) {
		int pw = white | (1 << mw);
		if (won[pw]) {
		    // white wins, take it!
		    return mw;
		}
		for (int mb = 0 ; mb < 9 ; mb++) {
		    if (((pw & (1 << mb)) == 0) && ((black & (1 << mb)) == 0)) {
			int pb = black | (1 << mb);
			if (won[pb]) {
			    // black wins, take another
			    continue loop;
			}
		    }
		}
		// Neither white nor black can win in one move, this will do.
		if (bestmove == -1) {
		    bestmove = mw;
		}
	    }
	}
	if (bestmove != -1) {
	    return bestmove;
	}

	// No move is totally satisfactory, try the first one that is open
	for (int i = 0 ; i < 9 ; i++) {
	    int mw = moves[i];
	    if (((white & (1 << mw)) == 0) && ((black & (1 << mw)) == 0)) {
		return mw;
	    }
	}

	// No more moves
	return -1;
    }

    /**
     * User move.
     * @return true if legal
     */
    boolean yourMove(int m) {
	if ((m < 0) || (m > 8)) {
	    return false;
	}
	if (((black | white) & (1 << m)) != 0) {
	    return false;
	}
	black |= 1 << m;
	return true;
    }

    /**
     * Computer move.
     * @return true if legal
     */
    boolean myMove() {
	if ((black | white) == DONE) {
	    return false;
	}
	int best = bestMove(white, black);
	white |= 1 << best;
	return true;
    }

    /**
     * Figure what the status of the game is.
     */
    int status() {
	if (won[white]) {
	    return WIN;
	}
	if (won[black]) {
	    return LOSE;
	}
	if ((black | white) == DONE) {
	    return STALEMATE;
	}
	return OK;
    }

    /**
     * Who goes first in the next game?
     */
    boolean first = true;

    /**
     * The image for white.
     */
    Image notImage;

    /**
     * The image for black.
     */
    Image crossImage;

    /**
     * Initialize the applet. Resize and load images.
     */
    public void init() {
	notImage = getImage(getCodeBase(), "not.gif");
	crossImage = getImage(getCodeBase(), "cross.gif");
    }

    /**
     * Paint it.
     */
    public void paint(Graphics g) {
	Dimension d = size();
	g.setColor(Color.black);
	int xoff = d.width / 3;
	int yoff = d.height / 3;
	g.drawLine(xoff, 0, xoff, d.height);
	g.drawLine(2*xoff, 0, 2*xoff, d.height);
	g.drawLine(0, yoff, d.width, yoff);
	g.drawLine(0, 2*yoff, d.width, 2*yoff);

	int i = 0;
	for (int r = 0 ; r < 3 ; r++) {
	    for (int c = 0 ; c < 3 ; c++, i++) {
		if ((white & (1 << i)) != 0) {
		    g.drawImage(notImage, c*xoff + 1, r*yoff + 1, this);
		} else if ((black & (1 << i)) != 0) {
		    g.drawImage(crossImage, c*xoff + 1, r*yoff + 1, this);
		}
	    }
	}
    }

    /**
     * The user has clicked in the applet. Figure out where
     * and see if a legal move is possible. If it is a legal
     * move, respond with a legal move (if possible).
     */
    public boolean mouseUp(Event evt, int x, int y) {
	switch (status()) {
	  case WIN:
	  case LOSE:
	  case STALEMATE:
	    play(getCodeBase(), "audio/return.au");
	    white = black = 0;
	    if (first) {
		white |= 1 << (int)(Math.random() * 9);
	    }
	    first = !first;
	    repaint();
	    return true;
	}

	// Figure out the row/colum
	Dimension d = size();
	int c = (x * 3) / d.width;
	int r = (y * 3) / d.height;
	if (yourMove(c + r * 3)) {
	    repaint();

	    switch (status()) {
	      case WIN:
		play(getCodeBase(), "audio/joy.au");
		break;
	      case LOSE:
		play(getCodeBase(), "audio/joy.au");
		break;
	      case STALEMATE:
		break;
	      default:
		if (myMove()) {
		    repaint();
		    switch (status()) {
		      case WIN:
			play(getCodeBase(), "audio/joy.au");
			break;
		      case LOSE:
			play(getCodeBase(), "audio/joy.au");
			break;
		      case STALEMATE:
			break;
		      default:
			play(getCodeBase(), "audio/ding.au");
		    }
		} else {
		    play(getCodeBase(), "audio/beep.au");
		}
	    }
	} else {
	    play(getCodeBase(), "audio/beep.au");
	}
	return true;
    }

    public String getAppletInfo() {
	return "TicTacToe is free";
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久99| 一区二区三区在线观看动漫| 欧美日韩国产美女| 99久久久国产精品| 91视频在线观看免费| 91网站最新网址| 91免费视频网址| 在线精品视频一区二区| 色琪琪一区二区三区亚洲区| 色偷偷成人一区二区三区91 | 欧美一区二区在线播放| 欧美色图天堂网| 欧美日韩在线三级| 91精品国产色综合久久不卡电影| 欧美日韩国产电影| 91精品国产综合久久精品麻豆 | 欧美一二三区精品| 91精品国产综合久久久久久| 日韩三级中文字幕| 26uuu精品一区二区在线观看| 精品国产一区二区三区四区四| 日韩精品一区二区在线观看| www久久精品| 国产精品大尺度| 午夜欧美电影在线观看| 久久国产福利国产秒拍| 成人免费av在线| 欧美色倩网站大全免费| 欧美第一区第二区| 亚洲欧洲一区二区在线播放| 亚洲国产欧美日韩另类综合| 亚洲18色成人| 国产一区二区三区四| 成人av资源在线| 欧美精品三级日韩久久| 国产无一区二区| 日韩亚洲欧美综合| 国产精品人成在线观看免费| 一区二区成人在线观看| 久久91精品久久久久久秒播| 成人av网站在线观看免费| 欧美日韩久久久一区| 欧美经典三级视频一区二区三区| 曰韩精品一区二区| 国产一区二区网址| 欧美精品一二三| 国产精品麻豆视频| 免费在线观看一区| 日本丰满少妇一区二区三区| 精品国产露脸精彩对白| 一区二区三区色| 国产大片一区二区| 91麻豆精品国产91久久久使用方法| 亚洲欧洲性图库| 精品一区二区三区免费观看| 欧美最新大片在线看| 国产精品久久久久毛片软件| 精品一区精品二区高清| 在线91免费看| 亚洲图片欧美综合| 色国产综合视频| 国产精品福利影院| 国产精品1024| 精品粉嫩超白一线天av| 青青国产91久久久久久| 欧美日韩一本到| 亚洲国产欧美在线| 欧美在线视频你懂得| 日韩毛片高清在线播放| 高清国产一区二区| 国产亚洲欧美一级| 国产一区二区三区精品视频| 日韩视频免费观看高清完整版 | 国产麻豆视频一区二区| 日韩一区二区精品在线观看| 亚洲成av人综合在线观看| 91在线看国产| 综合欧美亚洲日本| 94-欧美-setu| 亚洲精选在线视频| 一本色道久久综合亚洲91| 日韩美女久久久| 欧美三级在线看| 午夜久久久久久电影| 911精品产国品一二三产区| 亚洲成人av一区二区三区| 欧美色爱综合网| 免费观看在线综合色| 欧美一级久久久久久久大片| 久久99精品久久久久久动态图| 日韩免费观看高清完整版| 国产美女精品在线| 综合av第一页| 91精品国产综合久久久久久久久久 | 欧美色综合网站| 免费观看91视频大全| 国产亚洲综合av| 91最新地址在线播放| 亚洲一区二区三区四区的| 日韩欧美资源站| 成人黄色av电影| 偷拍一区二区三区| 久久色.com| 在线观看av不卡| 久久超碰97中文字幕| 国产精品免费视频观看| 欧美系列一区二区| 国产精品综合在线视频| 亚洲免费大片在线观看| 欧美一级生活片| 成人小视频在线| 天天亚洲美女在线视频| 欧美国产日韩精品免费观看| 欧美日韩免费视频| 国产成人福利片| 亚洲成av人在线观看| 欧美国产精品一区二区| 制服丝袜亚洲色图| 99re这里只有精品视频首页| 日本不卡视频在线| 一区二区三区精品视频| 久久综合给合久久狠狠狠97色69| 91福利国产成人精品照片| 国产一区二区按摩在线观看| 亚洲国产欧美在线人成| 最新热久久免费视频| 欧美v日韩v国产v| 欧美天堂亚洲电影院在线播放| 国产成人av网站| 日韩av一级电影| 亚洲一区二区影院| 国产精品九色蝌蚪自拍| 日韩手机在线导航| 欧美日韩一二区| 欧美在线不卡一区| av欧美精品.com| 国产精品888| 韩国一区二区三区| 男女激情视频一区| 丝袜亚洲另类欧美综合| 最新国产精品久久精品| 中文字幕乱码日本亚洲一区二区| 日韩欧美国产综合| 91精品综合久久久久久| 欧美乱熟臀69xxxxxx| 欧美老肥妇做.爰bbww视频| 色狠狠一区二区| 色婷婷一区二区| 色哟哟精品一区| 在线观看91视频| 欧美日韩色综合| 欧美人狂配大交3d怪物一区| 欧美日韩综合一区| 欧美日韩一区二区不卡| 欧美精品在线观看一区二区| 欧美日韩在线电影| 欧美一级生活片| 精品盗摄一区二区三区| 2020国产成人综合网| 久久久影视传媒| 欧美国产日韩a欧美在线观看| 欧美高清在线一区| 亚洲三级在线播放| 亚洲午夜免费视频| 日本欧美一区二区在线观看| 青青草伊人久久| 国产九色sp调教91| 色综合久久88色综合天天| 欧美视频在线播放| 日韩欧美在线一区二区三区| 精品福利一区二区三区免费视频| 久久精品人人爽人人爽| 综合中文字幕亚洲| 午夜电影久久久| 久久精品国产免费| 成人黄色av网站在线| 欧美无乱码久久久免费午夜一区| 制服丝袜在线91| 国产精品麻豆网站| 午夜精品久久久久久| 国产一区二区三区高清播放| 色综合久久精品| 日韩欧美国产一区在线观看| 国产精品久久久久久久岛一牛影视| 亚洲精品自拍动漫在线| 美国欧美日韩国产在线播放| 丰满亚洲少妇av| 在线不卡a资源高清| 国产精品视频第一区| 亚洲电影激情视频网站| 国产精品白丝jk黑袜喷水| 欧美最新大片在线看| 久久久久久久一区| 亚洲第四色夜色| 懂色av中文一区二区三区| 欧美另类videos死尸| 中文字幕在线不卡国产视频| 日韩1区2区日韩1区2区| 99re这里只有精品6| 国产亚洲欧美日韩在线一区|