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

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

?? tictactoe.java

?? java tutorial.sun公司官方出品。java入門書籍。最新版
?? JAVA
字號:
/* * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *   - Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer. * *   - Redistributions in binary form must reproduce the above copyright *     notice, this list of conditions and the following disclaimer in the *     documentation and/or other materials provided with the distribution. * *   - Neither the name of Sun Microsystems nor the names of its *     contributors may be used to endorse or promote products derived *     from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ 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. * * @version 	1.2, 13 Oct 1995 * @author Arthur van Hoff * @modified 96/04/23 Jim Hagen : winning sounds */publicclass 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(getClass().getResource("images/not.gif"));	crossImage = getImage(getClass().getResource("images/cross.gif"));    }    /**     * Paint it.     */    public void paint(Graphics g) {	Dimension d = getSize();	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(getClass().getResource("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 = getSize();	int c = (x * 3) / d.width;	int r = (y * 3) / d.height;	if (yourMove(c + r * 3)) {	    repaint();	    switch (status()) {	      case WIN:		play(getClass().getResource("audio/yahoo1.au"));		break;	      case LOSE:		play(getClass().getResource("audio/yahoo2.au"));		break;	      case STALEMATE:		break;	      default:		if (myMove()) {		    repaint();		    switch (status()) {		      case WIN:			play(getClass().getResource("audio/yahoo1.au"));			break;		      case LOSE:			play(getClass().getResource("audio/yahoo2.au"));			break;		      case STALEMATE:			break;		      default:			play(getClass().getResource("audio/ding.au"));		    }		} else {		    play(getClass().getResource("audio/beep.au"));		}	    }	} else {	    play(getClass().getResource("audio/beep.au"));	}	return true;    }    public String getAppletInfo() {	return "TicTacToe by Arthur van Hoff";    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合一区二区三区| 丝瓜av网站精品一区二区 | 亚洲影院在线观看| 亚洲国产精华液网站w| 欧美成人女星排名| 欧美xxxxx裸体时装秀| 91精品国产欧美日韩| 欧美精品日韩精品| 欧美精品第1页| 91麻豆精品国产91久久久久久 | 国产精品久久久久天堂| 久久精品人人做人人爽人人| 精品免费国产一区二区三区四区| 日韩精品一区二区三区视频在线观看| 欧美一区二区三区色| 日韩欧美激情一区| 久久影院电视剧免费观看| 久久精品无码一区二区三区| 日本一区二区三区国色天香| 一区二区免费视频| 午夜精品福利一区二区蜜股av | 韩国一区二区视频| 国产成人亚洲综合a∨婷婷图片 | 欧美无乱码久久久免费午夜一区| 在线观看91视频| 欧美精品一级二级三级| 日韩久久久精品| 中文字幕精品一区| 亚洲精品视频免费看| 日韩av电影天堂| 国产精品综合网| 国产成人鲁色资源国产91色综| 成人av在线一区二区| 欧洲av一区二区嗯嗯嗯啊| 3d成人动漫网站| 国产精品欧美一区喷水| 亚洲一区二区三区视频在线播放| 久久99精品国产91久久来源| 99久久久久久| 精品欧美黑人一区二区三区| 欧美激情一区在线观看| 亚洲自拍偷拍欧美| 国产精品香蕉一区二区三区| 欧美在线观看你懂的| 久久综合国产精品| 亚洲成人手机在线| 成人免费高清在线| 欧美一区二区精品在线| 亚洲欧美在线观看| 99精品黄色片免费大全| 欧美日韩aaa| 综合网在线视频| 国产伦精品一区二区三区免费迷| 色94色欧美sute亚洲线路二| 精品日韩在线观看| 亚洲午夜电影网| 国产精华液一区二区三区| 欧美日韩dvd在线观看| 亚洲天堂成人在线观看| 韩国av一区二区| 欧美久久久影院| 亚洲伊人伊色伊影伊综合网| 成人av资源在线| 久久精品夜色噜噜亚洲a∨| 免费视频一区二区| 欧美日韩国产三级| 亚洲理论在线观看| 懂色av一区二区夜夜嗨| 日韩精品一区二区三区中文精品| 一区二区三区日韩欧美| 9l国产精品久久久久麻豆| 国产亚洲va综合人人澡精品 | 欧美一区二区三区的| 欧美片网站yy| 色94色欧美sute亚洲线路一ni| 日韩限制级电影在线观看| 亚洲乱码日产精品bd| 99热这里都是精品| 国产精品美女久久久久av爽李琼| 国产精品资源在线观看| 久久久精品蜜桃| 韩日欧美一区二区三区| 久久精品一区二区三区四区| 国产一区亚洲一区| 国产夜色精品一区二区av| 国产精品自在在线| 国产偷v国产偷v亚洲高清 | 久久先锋影音av鲁色资源网| 热久久国产精品| 精品成人免费观看| 国产一区二区看久久| 国产精品嫩草99a| www.欧美精品一二区| 亚洲人成精品久久久久| 色综合一区二区| 性欧美大战久久久久久久久| 欧美一区二区久久久| 国产原创一区二区| 国产精品久久三区| 欧美日韩在线精品一区二区三区激情 | 色八戒一区二区三区| 亚洲日本电影在线| 欧美日韩精品一区二区在线播放 | 日韩欧美国产系列| 国产乱妇无码大片在线观看| 一区在线播放视频| 欧美三级午夜理伦三级中视频| 裸体健美xxxx欧美裸体表演| 国产欧美精品一区aⅴ影院 | 91精品国产品国语在线不卡| 久久不见久久见中文字幕免费| 国产欧美精品一区二区色综合| 色天使色偷偷av一区二区| 天天综合色天天综合色h| www激情久久| 欧美性受极品xxxx喷水| 久久国产精品72免费观看| 1024成人网| 欧美大片一区二区| 色综合 综合色| 国产尤物一区二区| 天堂一区二区在线| 国产精品系列在线| 欧美一二三区精品| 日本道在线观看一区二区| 精品亚洲aⅴ乱码一区二区三区| 国产精品对白交换视频| 欧美精品一区二区不卡 | 欧美三级视频在线观看| 国产成人综合视频| 麻豆一区二区99久久久久| 亚洲精品大片www| 国产欧美一区二区精品秋霞影院| 欧美三级电影精品| 91小视频在线免费看| 国产一区二区三区在线观看精品| 天堂一区二区在线免费观看| 亚洲人成在线观看一区二区| 久久精品一级爱片| 欧美精品一区二区蜜臀亚洲| 欧美一区二区三区免费| 欧美性欧美巨大黑白大战| 成年人国产精品| 国产成人在线影院| 韩国av一区二区三区在线观看| 天天色天天操综合| 亚洲国产成人va在线观看天堂| 亚洲色图.com| 亚洲日本韩国一区| 亚洲人成网站影音先锋播放| 国产精品麻豆网站| 国产精品美女久久久久久2018 | 亚洲国产精品成人综合 | 中文字幕在线不卡一区| 久久久久久亚洲综合影院红桃| 日韩女同互慰一区二区| 欧美一区二区成人| 日韩欧美成人一区二区| 精品少妇一区二区三区免费观看 | 洋洋成人永久网站入口| 国产精品亲子伦对白| 国产精品国产a| 国产精品久久久久久久久久免费看 | 日韩一区二区三区电影| 欧美日韩卡一卡二| 日韩三区在线观看| 成人黄色av电影| 色哟哟欧美精品| 欧美性欧美巨大黑白大战| 欧美性大战久久久| 在线不卡一区二区| 日韩女优电影在线观看| 久久综合久久99| 久久精品亚洲国产奇米99| 国产精品色呦呦| 一区二区三区四区在线播放 | 久久国产三级精品| 久久成人免费电影| 丁香婷婷综合激情五月色| 色综合中文字幕| 91精品国产麻豆| 精品va天堂亚洲国产| 亚洲色图.com| 日韩在线播放一区二区| 国产黑丝在线一区二区三区| 99久久精品免费看国产免费软件| 色婷婷亚洲一区二区三区| 3751色影院一区二区三区| 国产视频一区不卡| 一区二区三区日韩精品| 美女视频一区在线观看| 成人精品在线视频观看| 欧美日韩精品欧美日韩精品一综合 | av电影在线观看不卡| 欧美日韩一区二区欧美激情| 国产婷婷色一区二区三区在线| 一区二区三区av电影| 国产一区二区三区免费| 欧洲中文字幕精品| 日本一区二区三级电影在线观看|