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

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

?? wzq.java

?? JAVA網絡編程等幾個小程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* OK first of all, when I wrote this, I just copied my c code and translated to java.
I had never written any java code ever before, and now, three years later, I find this
code horrible. 
But because of the many requests for the code I've decided to put out the code anyway,
but I warn you, don't code like this!

Note that this engine doesn't think ahead, it just evaluate the current position.
The best way to proceed is maybe to modify the Analyze function and use it with the 
MiniMax algorithm. I actually started coding some think-ahead but I think i'ts
commented below.

Well that's it, and good luck!

Staffan Ekvall
pnyxtr@yahoo.com

*/


import java.awt.*;
import java.awt.image.*;
import java.net.*;
import java.applet.*;
//import java.util.math;

public
class Connect5 extends Applet
	{
	char Board[][][] = new char[32][32][2];
	int PointBoard[][] = new int[32][32];
   int x, y;
   int startx = 15, endx = 15, starty = 15, endy = 15;

   int white;
   int black;
   char cleararea = 1;
   static final int PLAYING = 0;
   static final int NOTPLAYING = 1;
   static final int WAITING = 1;
   static final int YOUWON = 2;
   static final int YOULOST = 3;
   int status = NOTPLAYING;
   int picturestatus = WAITING;

   int status2[] = { 0, 0 };
   int fx, fy;

   static final char EMPTY = 0;
   static final char MARKX = 1;
   static final char MARKO = 2;
   static final char EDGE = 3;

   static final int FIVE = 80000;
   static final int FOUR = 12000;
	static final int THREE = 500;
	static final int THREEHOLE = 450;
	static final int FOURBLOCK = 450;
	static final int FOURBLOCKHOLE = 400;
	static final int TWO = 50;
	static final int TWOHOLE = 45;
	static final int THREEBLOCK = 40;
	static final int TWOBLOCK = 3;

   void
   CopyBoard(int from, int to)
   	{
      for (x = 0; x < 32; x++)
	      for (y = 0; y < 32; y++)
            Board[x][y][to] = Board[x][y][from];
      }

	int
   ChkWin(int realcheck)
		{
		int x, y, mx[] = { 1, 0, 1, -1 }, my[] = { 0, 1, 1, 1 }, i, type;
		for (x = startx - 4; x < endx + 4; x++)
			for (y = starty - 4; y < endy + 4; y++)
				{
      		if (Board[x][y][0] > 0)
		         {
      			type = Board[x][y][0];
		         if (type != EDGE)
					for (i = 0; i < 4; i++)
						if (Board[x + 1 * mx[i]][y + 1 * my[i]][0] == type  &&
						    S(x + 2 * mx[i], y + 2 * my[i]) == type  &&
						    S(x + 3 * mx[i], y + 3 * my[i]) == type  &&
						    S(x + 4 * mx[i], y + 4 * my[i]) == type)
		               {
							if (realcheck == 1)
                     	{
								status = NOTPLAYING;
      		   	      if (type == MARKX)
		      	            {
                           picturestatus = YOUWON;
		   	               }
   							else
   	   		            {
                           picturestatus = YOULOST;
	      		            }
                        }
                     return type;
            		   }
      		   }
		      }
      return 0;
		}

	boolean
	yourMove(int x, int y)
		{
		if (x < 1 || x > 30 || y < 1 || y > 30)
		   return false;
		if (Board[x][y][0] != EMPTY)
		   return false;
		MakeMark(x, y, MARKX);
		return true;
	   }

      int
      S(int x, int y)
			{
			if (x < 0) return EDGE;
			if (y < 0) return EDGE;
			if (x > 31) return EDGE;
			if (y > 31) return EDGE;
			return (Board[x][y][0]);
			}

		int
		Analyze(char type, float multiplier)
		{
		/*
		# = EMPTY
		_ = CURRENT SQUARE
		X = OWN MARKS
		O = OPP MARKS
		* == X or #
		*/

		int x, y, mx[] = { 1, -1, 0, 0, 1, -1, 1, -1 }, my[] = { 0, 0, 1, -1, 1, 1, -1, -1 }, i;
		int points = 0;
		int blockmult[][] = new int[32][32];
		for (x = 0; x < 32; x++)
			for (y = 0; y < 32; y++)
		      blockmult[x][y] = 1;

		for (x = startx - 4; x < endx + 4; x++)
			for (y = starty - 4; y < endy + 4; y++)
				{
	   	   if (S(x, y) == EMPTY)
		      for (i = 0; i < 8; i++)
		      	{
					if (S(x + 1 * mx[i], y + 1 * my[i]) == type)
   		      	{
	      			if (S(x + 2 * mx[i], y + 2 * my[i]) == type)
		               {
   				   	if (S(x + 3 * mx[i], y + 3 * my[i]) == type)
								{
		   			   	if (S(x + 4 * mx[i], y + 4 * my[i]) == type)  // _XXXX	XXXX_
									{
									points += FIVE;
		                     PointBoard[x][y] += FIVE * multiplier;
   			               continue;
                           }
		                  if (S(x + 4 * mx[i], y + 4 * my[i]) == EMPTY)
      		            	{
            		         if (S(x - 1 * mx[i], y - 1 * my[i]) == type) // X_XXX#    #XXX_X
                  		   	{
										points += FIVE;
   			                  PointBoard[x][y] += FIVE * multiplier;
            		            continue;
                  		      }
		                     if (S(x - 1 * mx[i], y - 1 * my[i]) == EMPTY) // #_XXX#   #XXX_#
      		               	{
										points += FOUR;
   	            		      PointBoard[x][y] += FOUR * multiplier;
		                        continue;
      		                  }
            		         // O_XXX#   #XXX_O
									points += FOURBLOCK;
		  	                  PointBoard[x][y] += FOURBLOCK * multiplier * blockmult[x][y];
									blockmult[x][y]++;
	         		         continue;
                  		   }
	      		         // S(x + 4 * mx[i], y + 4 * my[i]) = fi || edge
			               if (S(x - 1 * mx[i], y - 1 * my[i]) == type) // X_XXXO   OXXX_X
		      		          	{
										points += FIVE;
	            		         PointBoard[x][y] += FIVE * multiplier;
   	   		               continue;
			                     }
      		            if (S(x - 1 * mx[i], y - 1 * my[i]) == EMPTY) // #_XXXO   OXXX_#
		                   	{
									points += FOURBLOCK;
	   		               PointBoard[x][y] += FOURBLOCK * multiplier * blockmult[x][y];
									blockmult[x][y]++;
		                     continue;
		                     }
		                  // O_XXXO     OXXX_O
								continue;
      		            }
		// ---------------------------- S(x + 3 * mx[i], y + 3 * my[i]) != type
							if (S(x + 3 * mx[i], y + 3 * my[i]) == EMPTY)
		               	{
		                  if (S(x - 1 * mx[i], y - 1 * my[i]) == EMPTY) // #_XX#    #XX_#
		                  	{
									points += THREE;
		  	                  PointBoard[x][y] += THREE * multiplier;
		     	               continue;
		                     }
   		               if (S(x - 1 * mx[i], y - 1 * my[i]) == type)
	      	            	{
		                     if (S(x - 2 * mx[i], y - 2 * my[i]) == EMPTY) // #X_XX#   #XX_X#
	     		               	{
										points += FOUR;
	  			                  PointBoard[x][y] += FOUR * multiplier;
		                        continue;
      		                  }
		                     if (S(x - 2 * mx[i], y - 2 * my[i]) == type) // XX_XX#    #XX_XX   Dual
      		               	{
										points += FIVE / 2;
   			                  PointBoard[x][y] += FIVE * multiplier / 2;
		                        continue;
      		                  }
		                     // OX_XX#    #XX_XO
									points += FOURBLOCK;
  	   		               PointBoard[x][y] += FOURBLOCK * multiplier * blockmult[x][y];
									blockmult[x][y]++;
      		               continue;
		                     }
	   	               // S(x - 1 * mx[i], y - 1 * my[i]) == fi || edge
		                  if (S(x + 4 * mx[i], y + 4 * my[i]) == EMPTY) // O_XX##    ##XX_O
            		      	{
									points += THREEBLOCK;
		  	                  PointBoard[x][y] += THREEBLOCK * multiplier;
                  		   continue;
            		         }
      		            if (S(x + 4 * mx[i], y + 4 * my[i]) == type) // O_XX#X   X#XX_O
		                  	{
									points += FOURBLOCKHOLE;
  	   		               PointBoard[x][y] += FOURBLOCKHOLE * multiplier * blockmult[x][y];
									blockmult[x][y]++;
		                     continue;
      		               }
		                  // O_XX#O   O#XX_O
		                  continue;
      		            }

							// S(x + 3 * mx[i], y + 3 * my[i]) == fi || edge
		               if (S(x - 1 * mx[i], y - 1 * my[i]) == EMPTY)
               			{
            		      if (S(x - 2 * mx[i], y - 2 * my[i]) == EMPTY) // ##_XXO    OXX_##
      		            	{
									points += THREEBLOCK;
  	               		   PointBoard[x][y] += THREEBLOCK * multiplier;
            		         continue;
      		               }
		                  if (S(x - 2 * mx[i], y - 2 * my[i]) == type) // X#_XXO  OXX_#X
      		            	{
									points += FOURBLOCKHOLE;
  	               		   PointBoard[x][y] += FOURBLOCKHOLE * multiplier * blockmult[x][y];
									blockmult[x][y]++;
      		               continue;
		                     }
                  		// O#_XXO    OXX_#O
            		      continue;
      		            }
		               if (S(x - 1 * mx[i], y - 1 * my[i]) == type) // X_XXO   OXX_X
            		   	{
      		            if (S(x - 2 * mx[i], y - 2 * my[i]) == EMPTY) // #X_XXO  OXX_X#
		                  	{
									points += FOURBLOCK;
		  	                  PointBoard[x][y] += FOURBLOCK * multiplier * blockmult[x][y];
									blockmult[x][y]++;
            		         continue;
      		               }
		                  if (S(x - 2 * mx[i], y - 2 * my[i]) == type) // XX_XXO  OXX_XX   Dual
               		   	{
									points += FIVE / 2;
  			                  PointBoard[x][y] += FIVE * multiplier / 2;
	                 		   continue;
            		         }
      		            // OX_XXO    OXX_XO
		                  continue;
      		            }
		               // O_XXO    OXX_O
      		         continue;
		               }
		// --------------------- S(x + 2 * mx[i], y + 2 * my[i]) != type
						if (S(x + 2 * mx[i], y + 2 * my[i]) == EMPTY) // _X#
            		  	{
      		         if (S(x - 1 * mx[i], y - 1 * my[i]) == EMPTY) // #_X#
		                	{
                  		if (S(x - 2 * mx[i], y - 2 * my[i]) == type) // X#_X#
            		      	{
      		               if (S(x - 3 * mx[i], y - 3 * my[i]) == EMPTY) // #X#_X#
		                     	{
										points += THREEHOLE;
  		      		            PointBoard[x][y] += THREEHOLE * multiplier;
      		                  continue;
		                        }
                  		   if (S(x - 3 * mx[i], y - 3 * my[i]) == type) // XX#_X#
            		         	{
										points += FOURBLOCKHOLE;
		  		                  PointBoard[x][y] += FOURBLOCKHOLE * multiplier * blockmult[x][y];
										blockmult[x][y]++;
            		            continue;
      		                  }
									points += THREEBLOCK;
		              		   PointBoard[x][y] += THREEBLOCK * multiplier;
            		         // OX#_X#
      		               continue;
		                     }
		                  if (S(x - 2 * mx[i], y - 2 * my[i]) == EMPTY) // ##_X#
               		   	{
         		            if (S(x + 3 * mx[i], y + 3 * my[i]) == EMPTY) // ##_X##
   		                  	{
										points += TWO;
  		            		      PointBoard[x][y] += TWO * multiplier;
            		            continue;
      		                  }
		                     if (S(x + 3 * mx[i], y + 3 * my[i]) == type) // ##_X#X
                     			{
                  		      if (S(x + 4 * mx[i], y + 4 * my[i]) == EMPTY) // ##_X#X#
            		            	{
											points += THREEHOLE;
		  		   	               PointBoard[x][y] += THREEHOLE * multiplier;
                        		   continue;
                  		         }
            		            if (S(x + 4 * mx[i], y + 4 * my[i]) == type) // ##_X#XX
      		                  	{
											points += FOURBLOCKHOLE;
  		   	      		         PointBoard[x][y] += FOURBLOCKHOLE * multiplier * blockmult[x][y];
											blockmult[x][y]++;
      		                     continue;
		                           }
                     		   // ##_X#XO
										points += THREEBLOCK;
  					               PointBoard[x][y] += THREEBLOCK * multiplier;
		                        continue;
                  		      }
									// ##_X#O
									points += TWO;
			                  PointBoard[x][y] += TWO * multiplier;
	               		   continue;
         	   	         }
								// O#_X#
		                  if (S(x + 3 * mx[i], y + 3 * my[i]) == EMPTY) // O#_X##
                  			{
									points += TWO;
	   		               PointBoard[x][y] += TWO * multiplier;
		 		               continue;
               		      }
      			         if (S(x + 3 * mx[i], y + 3 * my[i]) == type)
		                  	{
                  		   if (S(x + 4 * mx[i], y + 4 * my[i]) == EMPTY) // O#_X#X#
            		         	{
										points += THREEHOLE;
		  		                  PointBoard[x][y] += THREEHOLE * multiplier;
                        		continue;
                  		      }
            		         if (S(x + 4 * mx[i], y + 4 * my[i]) == type) // O#_X#XX
      		               	{
										points += FOURBLOCKHOLE;
  		               	   	PointBoard[x][y] += FOURBLOCKHOLE * multiplier * blockmult[x][y];							blockmult[x][y]++;
										blockmult[x][y]++;
            		            continue;
      		                  }
		                     // O#_X#XO
									points += THREEBLOCK;
  	         		         PointBoard[x][y] += THREEBLOCK * multiplier;
 	   		              	continue;
		                     }
								// O#_X#O
		                  continue;
		                  }
         	      if (S(x - 1 * mx[i], y - 1 * my[i]) == type)
			              	{
		                  if (S(x - 2 * mx[i], y - 2 * my[i]) == type) // XX_X#
		                  	continue; // Already processed
		                  if (S(x - 2 * mx[i], y - 2 * my[i]) == EMPTY) // #X_X# // Dual
		                  	{
									points += THREE / 2;
		  	                  PointBoard[x][y] += THREE * multiplier / 2;
		                     continue;
		                     }
      		            if (S(x + 3 * mx[i], y + 3 * my[i]) == EMPTY) // OX_X##
		                  	{
									points += THREEBLOCK;
		  	                  PointBoard[x][y] += THREEBLOCK * multiplier;
		                     continue;
		                     }
		                  if (S(x + 3 * mx[i], y + 3 * my[i]) == type) // OX_X#X
		                  	{
									points += FOURBLOCKHOLE;
		  	                  PointBoard[x][y] += FOURBLOCKHOLE * multiplier;
		                     continue;
		                     }
								// OX_X#O
		                  continue;
		                  }
		               if (S(x + 3 * mx[i], y + 3 * my[i]) == EMPTY)
		               	{
				            if (S(x + 4 * mx[i], y + 4 * my[i]) == EMPTY) // O_X###
		                  	{
									points += TWOBLOCK;
		  		               PointBoard[x][y] += TWOBLOCK * multiplier;
      		               continue;
		                     }
				            if (S(x + 4 * mx[i], y + 4 * my[i]) == type) // O_X##X
		                  	{
									points += TWOBLOCK;
		  		               PointBoard[x][y] += TWOBLOCK * multiplier;
		                     continue;
		                     }
								// O_X##O
	      	            continue;
		                  }
		               if (S(x + 3 * mx[i], y + 3 * my[i]) == type)
		               	{
				            if (S(x + 4 * mx[i], y + 4 * my[i]) == EMPTY) // O_X#X#
		                  	{
									points += THREEBLOCK;
		  	                  PointBoard[x][y] += THREEBLOCK * multiplier;
		                     continue;
		                     }
				            if (S(x + 4 * mx[i], y + 4 * my[i]) == type) // O_X#XX
   		               	{
									points += FOURBLOCKHOLE;
  	   		               PointBoard[x][y] += FOURBLOCKHOLE * multiplier * blockmult[x][y];
									blockmult[x][y]++;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费看少妇高潮| 日韩欧美一区在线| 精品国产伦一区二区三区观看体验| 亚洲高清视频中文字幕| 欧美色大人视频| 国产综合一区二区| 亚洲精品中文字幕在线观看| 欧美高清视频一二三区| 国产成a人亚洲精| 午夜精品免费在线观看| 国产精品久久网站| 精品国产凹凸成av人网站| 99精品久久只有精品| 美女视频免费一区| 亚洲福利一区二区| 夜夜嗨av一区二区三区| 丝袜脚交一区二区| 久久精品网站免费观看| 欧美日韩aaaaa| 欧美在线一二三| 久久成人麻豆午夜电影| 国产真实乱子伦精品视频| 亚洲一区二区三区免费视频| 久久久久国产精品免费免费搜索| 日韩视频在线你懂得| 7777精品伊人久久久大香线蕉经典版下载 | 国产欧美一区视频| 欧美成人精品福利| 欧美欧美欧美欧美首页| 色综合一个色综合亚洲| 欧美最新大片在线看| 91精品免费在线观看| 91精品国产综合久久久久久| 欧美高清hd18日本| 精品日韩99亚洲| 欧美韩日一区二区三区| 国产精品午夜在线| 亚洲综合色自拍一区| 男女性色大片免费观看一区二区 | 一区二区三区中文字幕电影| 亚洲欧美电影院| 亚洲午夜久久久久| 久久av资源网| 日本高清无吗v一区| 91一区二区三区在线观看| 欧美日韩精品一区二区| 欧美激情一区不卡| 亚洲一级在线观看| 国产福利视频一区二区三区| 色呦呦一区二区三区| www国产成人免费观看视频 深夜成人网 | 亚洲成人一区二区在线观看| 精品一区二区三区视频在线观看 | 北岛玲一区二区三区四区| 欧美一区永久视频免费观看| 国产精品美女一区二区在线观看| 亚洲国产欧美在线人成| 成人一区二区在线观看| 69堂国产成人免费视频| 久久精品综合网| 欧美人与禽zozo性伦| 欧美一级xxx| 亚洲午夜一二三区视频| 国产盗摄视频一区二区三区| 欧美曰成人黄网| 亚洲已满18点击进入久久| 高清在线不卡av| 国产性做久久久久久| 国产精品系列在线播放| 久久久久一区二区三区四区| 奇米精品一区二区三区在线观看一| 不卡一卡二卡三乱码免费网站| 国产日韩欧美激情| 91在线免费看| 视频一区二区中文字幕| 欧美日韩国产综合视频在线观看| 亚洲黄色录像片| 色偷偷一区二区三区| 日韩在线一二三区| 久久久精品国产免大香伊| 蜜乳av一区二区| 日本一区二区三区四区在线视频| 五月天一区二区三区| 91精品国模一区二区三区| 国产麻豆精品在线| 精品卡一卡二卡三卡四在线| 亚洲二区视频在线| 国产精品国产三级国产| 欧美成人女星排名| 91免费小视频| 国产欧美一区二区精品忘忧草| 91影院在线观看| 精品一区二区在线免费观看| 国产精品久久久久三级| 欧美日韩在线免费视频| 国产精品亚洲一区二区三区妖精 | 国产真实精品久久二三区| 亚洲成人免费电影| 亚洲久草在线视频| 国产精品国产a级| 国产精品美女久久久久久久| 91精品国产综合久久久久| 欧美揉bbbbb揉bbbbb| 欧美视频在线播放| 色www精品视频在线观看| 成人av网站大全| 国产成+人+日韩+欧美+亚洲| 免费成人深夜小野草| 蜜臀精品久久久久久蜜臀| 亚洲成av人在线观看| 天天影视涩香欲综合网| 亚洲天天做日日做天天谢日日欢 | 国产精品天干天干在线综合| 国产三级欧美三级日产三级99| 久久九九久精品国产免费直播| 久久综合狠狠综合久久激情| 久久久午夜精品| 最新国产成人在线观看| 色88888久久久久久影院按摩| 欧美性猛片aaaaaaa做受| 91国产成人在线| 欧美成人video| 国产精品天干天干在线综合| 亚洲男人的天堂av| 人人狠狠综合久久亚洲| 国产激情一区二区三区| 在线观看av一区| 久久久电影一区二区三区| 亚洲女人的天堂| 狠狠色丁香婷婷综合| 91麻豆精品国产91久久久久| 精品第一国产综合精品aⅴ| 最新日韩av在线| 国产精品99久久久久久似苏梦涵| 色哟哟精品一区| 国产精品区一区二区三区 | 夜夜精品视频一区二区| 国产成a人亚洲精| 精品盗摄一区二区三区| 爽好久久久欧美精品| eeuss国产一区二区三区| 精品精品国产高清一毛片一天堂| 中文字幕亚洲区| 国产成人免费视频| 精品免费国产一区二区三区四区| 丁香婷婷综合网| 亚洲欧美综合色| 亚洲一区二区欧美日韩| 粉嫩高潮美女一区二区三区| 久久亚洲影视婷婷| 亚洲精品乱码久久久久久久久 | 日韩一级片在线观看| 亚洲一区二区三区精品在线| 9l国产精品久久久久麻豆| 精品国产免费一区二区三区四区| 偷拍亚洲欧洲综合| 91精品麻豆日日躁夜夜躁| 婷婷成人综合网| 91精品国产综合久久久久久久 | 午夜欧美在线一二页| 欧美一区三区二区| 久久99精品久久久久久| 久久综合色鬼综合色| 成人国产精品免费观看视频| 亚洲视频在线一区| 3atv一区二区三区| 国产福利精品导航| 亚洲欧美另类图片小说| 日本久久一区二区| 日韩经典一区二区| 国产午夜精品福利| 色综合久久88色综合天天6| 亚洲综合区在线| 国产午夜精品一区二区三区嫩草| 在线欧美日韩国产| 国产黄色精品视频| 日韩精品国产欧美| 综合网在线视频| 国产亚洲精久久久久久| 日韩 欧美一区二区三区| 国产欧美日本一区二区三区| 欧美日韩一区成人| 91国产丝袜在线播放| 成人免费高清视频在线观看| 五月婷婷激情综合| 视频一区免费在线观看| 首页国产欧美久久| 亚洲一级二级三级在线免费观看| www精品美女久久久tv| 欧美一区二区三区视频免费 | 国产一区二区精品久久99| 七七婷婷婷婷精品国产| 亚洲v日本v欧美v久久精品| 亚洲色图另类专区| 中文字幕在线一区| 一区二区三区四区视频精品免费| 中文字幕一区二区三区在线播放| 亚洲欧洲另类国产综合| 亚洲日本在线视频观看| 亚洲一区在线观看视频|