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

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

?? eval.c

?? 一遺傳算法的例子源程序
?? C
字號:
#include <string.h>
#include "lithos.h"

#define boardSize 19
#define squares (boardSize * boardSize)

#define DISPUTED 3

static char board[boardSize][boardSize];
#define boardv (board[0])

static char oldBoard[boardSize][boardSize];
static char mark[boardSize][boardSize];

static int score0, score1;
static int pass;
static int prisoners;

static int liberty2(int i, int j)
{
	int color;
	if (mark[i][j])
		return 0;
	mark[i][j] = 1;
	color = board[i][j];
	if (i > 0)
	{
		int color1 = board[i - 1][j];
		if (!color1)
			return 1;
		if (color1 == color && liberty2(i - 1, j))
			return 1;
	}
	if (i < boardSize - 1)
	{
		int color1 = board[i + 1][j];
		if (!color1)
			return 1;
		if (color1 == color && liberty2(i + 1, j))
			return 1;
	}
	if (j > 0)
	{
		int color1 = board[i][j - 1];
		if (!color1)
			return 1;
		if (color1 == color && liberty2(i, j - 1))
			return 1;
	}
	if (j < boardSize - 1)
	{
		int color1 = board[i][j + 1];
		if (!color1)
			return 1;
		if (color1 == color && liberty2(i, j + 1))
			return 1;
	}
	return 0;
}

static int liberty(int i, int j)
{
	if (!board[i][j])
		return 1;
	memset(mark, 0, sizeof mark);
	return liberty2(i, j);
}

static void removeGroup(int i, int j)
{
	int color = board[i][j];
	board[i][j] = 0;
	prisoners++;
	if (i > 0 && board[i - 1][j] == color)
		removeGroup(i - 1, j);
	if (i < boardSize - 1 && board[i + 1][j] == color)
		removeGroup(i + 1, j);
	if (j > 0 && board[i][j - 1] == color)
		removeGroup(i, j - 1);
	if (j < boardSize - 1 && board[i][j + 1] == color)
		removeGroup(i, j + 1);
}

static void capture2(int i, int j)
{
	if (!liberty(i, j))
		removeGroup(i, j);
}

static void capture(int i, int j)
{
	prisoners = 0;
	if (i > 0)
		capture2(i - 1, j);
	if (i < boardSize - 1)
		capture2(i + 1, j);
	if (j > 0)
		capture2(i, j - 1);
	if (j < boardSize - 1)
		capture2(i, j + 1);
}

static int move(Instruction *code, int size, int *memory, int color)
{
	int i, j;
	if (color > 0)
	{
		for (i = 0; i < squares; i++)
			memory[i] = boardv[i];
		memory[squares] = score0;
		memory[squares + 1] = -score1;
	}
	else
	{
		for (i = 0; i < squares; i++)
			memory[i] = -boardv[i];
		memory[squares] = score1;
		memory[squares + 1] = -score0;
	}
	exec(code, size, memory);
	j = pop();
	i = pop();
	if (i < 0 || i >= boardSize ||
		j < 0 || j >= boardSize ||
		board[i][j])
	{
		if (pass)
			return 0;
		pass = 1;
		return 1;
	}
	board[i][j] = color;
	capture(i, j);
	if (!prisoners && !liberty(i, j))
	{
		board[i][j] = 0;
		if (pass)
			return 0;
		pass = 1;
		return 1;
	}
	pass = 0;
	return 1;
}

static void play(int size0, int size1)
{
	int i;
	memset(board, 0, sizeof board);
	memset(memory0, 0, maxMemory * sizeof(int));
	memset(memory1, 0, maxMemory * sizeof(int));
	score0 = 0;
	score1 = 0;
	pass = 0;
	for (i = 0; i < maxMoves; i++)
	{
		if (!move(code0, size0, memory0, 1))
			break;
		score0 += prisoners;
		if (!move(code1, size1, memory1, -1))
			break;
		score1 += prisoners;
	}
}

static int disputes(int i, int j, int color)
{
	int color1 = board[i][j];
	if (color1 == DISPUTED)
		return 1;
	if (color1 < 0 && color > 0 ||
		color1 > 0 && color < 0)
		return 1;
	return 0;
}

static int sign(int x)
{
	if (x < 0)
		return -1;
	if (x > 0)
		return 1;
	return 0;
}

static void markTerritory()
{
	int i, j;
	int changed;
	for (i = 0; i < squares; i++)
		boardv[i] *= 2;

	do
	{
		changed = 0;
		for (i = 0; i < boardSize; i++)
			for (j = 0; j < boardSize; j++)
			{
				int color = board[i][j];
				if (color < -1 || color > 1)
					continue;

				if (i > 0 && disputes(i - 1, j, color) ||
					i < boardSize - 1 && disputes(i + 1, j, color) ||
					j > 0 && disputes(i, j - 1, color) ||
					j < boardSize - 1 && disputes(i, j + 1, color))
				{
					board[i][j] = DISPUTED;
					changed = 1;
					continue;
				}

				if (color)
					continue;

				if (i > 0)
				{
					int color1 = board[i - 1][j];
					if (color1)
					{
						board[i][j] = sign(color1);
						changed = 1;
						continue;
					}
				}
				if (i < boardSize - 1)
				{
					int color1 = board[i + 1][j];
					if (color1)
					{
						board[i][j] = sign(color1);
						changed = 1;
						continue;
					}
				}
				if (j > 0)
				{
					int color1 = board[i][j - 1];
					if (color1)
					{
						board[i][j] = sign(color1);
						changed = 1;
						continue;
					}
				}
				if (j < boardSize - 1)
				{
					int color1 = board[i][j + 1];
					if (color1)
					{
						board[i][j] = sign(color1);
						changed = 1;
						continue;
					}
				}
			}
	}
	while (changed);

	for (i = 0; i < squares; i++)
		if (boardv[i] == DISPUTED)
			boardv[i] = 0;
		else
			boardv[i] = sign(boardv[i]);
}

static void printBoard()
{
	int i, j;
	for (i = 0; i < boardSize; i++)
	{
		for (j = 0; j < boardSize; j++)
			switch (oldBoard[i][j])
			{
			case -1:
				putchar('O');
				break;
			case 0:
				putchar('.');
				break;
			case 1:
				putchar('*');
				break;
			}
		putchar(' ');
		for (j = 0; j < boardSize; j++)
			switch (board[i][j])
			{
			case -1:
				putchar('O');
				break;
			case 0:
				putchar('.');
				break;
			case 1:
				putchar('*');
				break;
			}
		putchar('\n');
	}
}

void evaluate()
{
	int i, j;
	Program *p = &programs[evaluated];
	unpack(p, code0);
	p->fitness -= p->size;

	for (i = 0; i < population; i++)
	{
		if (i == evaluated)
			continue;

		unpack(&programs[i], code1);
		play(p->size, programs[i].size);

		if (evaluated == 0 && i == 1)
			memcpy(oldBoard, board, sizeof board);

		markTerritory();
		for (j = 0; j < squares; j++)
			switch (boardv[j])
			{
			case -1:
				score1++;
				break;
			case 1:
				score0++;
				break;
			}

		if (score0 > score1)
			p->fitness += maxSize + 1;
		else
			programs[i].fitness += maxSize + 1;

		if (evaluated == 0 && i == 1)
		{
			score = score0;
			printBoard();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久众筹精品私拍模特| 欧美高清精品3d| 国产精品99精品久久免费| 午夜视频在线观看一区二区| 中文字幕一区二区三区蜜月 | 99v久久综合狠狠综合久久| 国产成人鲁色资源国产91色综| 韩国三级中文字幕hd久久精品| 蜜臀av亚洲一区中文字幕| 毛片一区二区三区| 国产在线播放一区| 成人精品视频网站| 91成人免费在线视频| 欧美日韩黄色影视| 久久久久久久综合| 亚洲视频一二区| 午夜免费欧美电影| 久久99九九99精品| 不卡的电视剧免费网站有什么| 波多野结衣中文一区| 91视频一区二区| 欧美乱妇15p| 久久色在线视频| 自拍偷拍国产亚洲| 日韩黄色片在线观看| 国产精品自在在线| 欧洲色大大久久| 精品国产91乱码一区二区三区 | 国产精品一区二区久久不卡| 99在线精品视频| 678五月天丁香亚洲综合网| 精品久久久久久久久久久久包黑料| 国产日产欧美一区| 亚洲国产aⅴ天堂久久| 国产精品一级在线| 欧美日韩中文字幕精品| 国产无一区二区| 日韩av一区二| 99国产精品99久久久久久| 日韩女优av电影| 亚洲一区在线视频| 成人免费毛片高清视频| 日韩视频一区二区三区在线播放| 国产精品久久久久久久岛一牛影视| 亚洲午夜一二三区视频| 国产成人综合视频| 91精品国产综合久久久久久| 日本一区二区三区四区| 美女一区二区久久| 欧美性生活大片视频| 国产欧美精品区一区二区三区| 性做久久久久久久免费看| 不卡一区二区三区四区| 久久夜色精品国产噜噜av| 日韩精彩视频在线观看| 欧美在线高清视频| 亚洲人成网站色在线观看| 国产专区综合网| 日韩欧美在线不卡| 婷婷综合在线观看| 欧美视频三区在线播放| 亚洲美女电影在线| 91在线观看高清| 国产精品女主播av| 成人永久aaa| 国产免费观看久久| 成人一区二区三区视频| 国产视频一区在线观看| 久久成人综合网| 精品国产1区2区3区| 老汉av免费一区二区三区| 欧美一级欧美一级在线播放| 日本最新不卡在线| 日韩一区和二区| 久久99日本精品| 欧美精品一区二区在线播放| 久久精品噜噜噜成人88aⅴ | 久久99国产精品成人| 欧美裸体bbwbbwbbw| 日韩高清在线一区| 欧美一区二区免费视频| 首页国产欧美久久| 日韩视频一区二区三区在线播放| 久久精品国产精品亚洲红杏| 欧美成人vps| 国产美女娇喘av呻吟久久| xfplay精品久久| 国产91精品一区二区麻豆亚洲| 国产欧美一区二区精品性色| av不卡一区二区三区| 一区二区视频免费在线观看| 欧美美女黄视频| 国产一区二区美女诱惑| 亚洲天堂精品视频| 欧美日韩成人综合在线一区二区| 免费欧美高清视频| 国产精品亲子乱子伦xxxx裸| 在线观看日韩电影| 久久电影国产免费久久电影| 国产精品久久久久久久浪潮网站 | 亚洲宅男天堂在线观看无病毒| 欧美三日本三级三级在线播放| 免费观看成人av| 国产精品女同一区二区三区| 欧美精品成人一区二区三区四区| 黄页视频在线91| 亚洲精品视频在线观看免费| 欧美丰满高潮xxxx喷水动漫| 成人一级片在线观看| 日韩精品电影在线观看| 国产精品国产三级国产专播品爱网 | 91精品免费在线| 成人av网站免费| 亚洲国产日日夜夜| 国产精品免费视频网站| 91麻豆精品国产| 91麻豆免费看片| 精品无人码麻豆乱码1区2区| 亚洲精品ww久久久久久p站| 精品久久久久久久久久久久久久久 | 亚洲一区二区三区免费视频| 久久综合九色综合久久久精品综合| av中文字幕一区| 国产麻豆精品在线观看| 天天av天天翘天天综合网色鬼国产| 久久精品人人做人人综合| 欧美日韩国产区一| 91啦中文在线观看| 国产成人一区二区精品非洲| 欧美aⅴ一区二区三区视频| 亚洲制服欧美中文字幕中文字幕| 中文字幕欧美三区| 精品国产乱子伦一区| 欧美顶级少妇做爰| 色妞www精品视频| 成人激情免费电影网址| 国产麻豆9l精品三级站| 免费在线观看一区| 日本伊人精品一区二区三区观看方式| 自拍偷自拍亚洲精品播放| 中文字幕第一区| 国产日韩欧美高清| 亚洲精品在线免费观看视频| 69久久夜色精品国产69蝌蚪网| 91成人网在线| 欧美日韩黄色影视| 欧美久久久一区| 欧美丰满少妇xxxbbb| 欧美美女激情18p| 欧美疯狂做受xxxx富婆| 91麻豆精品国产91久久久久| 欧美综合在线视频| 欧美日韩一区二区三区免费看| 色综合一个色综合亚洲| 色吧成人激情小说| 欧美亚洲图片小说| 欧美伦理视频网站| 欧美电影免费观看高清完整版在线 | 美女视频黄 久久| 中文字幕欧美一| 国产精品久久久久7777按摩| 国产精品日韩成人| 综合色天天鬼久久鬼色| 亚洲男人的天堂网| 亚洲一区二区三区四区不卡| 亚洲一区二区三区四区在线观看| 亚洲精品videosex极品| 亚洲亚洲精品在线观看| 亚洲成人av电影在线| 视频在线观看一区| 国内成人自拍视频| 国产a级毛片一区| 97精品国产97久久久久久久久久久久| 99国产精品视频免费观看| 欧美性极品少妇| 精品国产99国产精品| 国产精品看片你懂得| 亚洲精品乱码久久久久久| 五月天激情综合网| 亚洲一二三四在线观看| 久久久另类综合| 国产视频在线观看一区二区三区| 成人欧美一区二区三区1314| 亚洲chinese男男1069| 久久国产精品第一页| 97久久精品人人做人人爽50路| 欧美主播一区二区三区| 久久先锋影音av鲁色资源网| 日韩一区在线看| 美女一区二区三区| 日本道免费精品一区二区三区| 日韩欧美一区在线| 日本一区二区三区电影| 亚洲国产精品一区二区久久| 国产精品自产自拍| 欧美日韩亚洲国产综合| 欧美国产成人精品| 美美哒免费高清在线观看视频一区二区| 国产麻豆精品在线| 日本久久电影网|