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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? simulation.cpp

?? 一個(gè)AI游戲的代碼
?? CPP
字號(hào):
/***************************************************************
 * Implementation of the Simulation Class
 *************************************************************/

#include "Simulation.h"
#include <stdlib.h>
#include "WorldGrid.h"
#include <iostream.h>

Simulation::Simulation( int x, int y )
{
	for( int i = 0; i < 3; i++ )
	{
		Grids[ i ] = new WorldGrid( x, y );
	}
}

Simulation::Simulation()
{
	for( int i = 0; i < 3; i++ )
	{
		Grids[ i ] = new WorldGrid();
	}
}

/****************************************************************
 * Test case construction
 ****************************************************************/

// We'll test each troll against three different test cases, each
// of which has a unique combination of sheep population, number
// of prowling knights, etc.

void Simulation::BuildTestCases()
{
	int i;
	int x, y;

	// Let's start with a sheep-heavy case
	Entity::AttachGrid( *Grids[ 0 ] );
	for( i = 0; i < 60; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 0 ][ i ] = new Sheep( x, y, i );
	}
	for( i = 60; i < 75; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 0 ][ i ] = new Knight( x, y, i );
	}
	for( i = 75; i < 90; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 0 ][ i ] = new Haven( x, y, i );
	}
	for( i = 90; i < 95; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 0 ][ i ] = new Trap( x, y, i );
	}
	for( i = 95; i < MAX_ENTITIES; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 0 ][ i ] = new Tower( x, y, i );
	}

	// Now, a knight-heavy one
	Entity::AttachGrid( *Grids[ 1 ] );
	for( i = 0; i < 30; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 1 ][ i ] = new Sheep( x, y, i );
	}
	for( i = 30; i < 75; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 1 ][ i ] = new Knight( x, y, i );
	}
	for( i = 75; i < 90; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 1 ][ i ] = new Haven( x, y, i );
	}
	for( i = 90; i < 95; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 1 ][ i ] = new Trap( x, y, i );
	}
	for( i = 95; i < MAX_ENTITIES; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 1 ][ i ] = new Tower( x, y, i );
	}
	
	// And a relatively sparsely populated one to finish
	Entity::AttachGrid( *Grids[ 2 ] );
	for( i = 0; i < 20; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 2 ][ i ] = new Sheep( x, y, i );
	}
	for( i = 20; i < 35; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 2 ][ i ] = new Knight( x, y, i );
	}
	for( i = 35; i < 45; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 2 ][ i ] = new Trap( x, y, i );
	}
	for( i = 45; i < 50; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 2 ][ i ] = new Tower( x, y, i );
	}
	for( i = 50; i < 55; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 2 ][ i ] = new Tower( x, y, i );
	}	
	for( i = 55; i < MAX_ENTITIES; i++ )
	{
		x = rand() % WORLD_GRID_SIZE;
		y = rand() % WORLD_GRID_SIZE;
		EntityTable[ 2 ][ i ] = new Haven( x, y, i );
	}
}


/****************************************************************
 * Testing a Troll
 ***************************************************************/

double Simulation::RunSim( Troll & troll )
{
	double results[ 3 ];

	// Run the three test cases...
	for( int i = 0; i < 3; i++ )
	{
		// Start each test by making a working copy of the world data
		troll.Reset();
		WorkingGrid.Copy( Grids[ i ] );
		for( int j = 0; j < MAX_ENTITIES; j++ )
		{
		  if( EntityTable[ i ][ j ] != NULL )
				WorkingTable[ j ] = EntityTable[ i ][ j ]->Clone();
			else
				WorkingTable[ j ] = NULL;
		}

		Entity::AttachGrid( WorkingGrid );
		Entity::AttachTroll( troll );

		// Run the simulation until the troll dies or time runs out
		int time = 0;
		while( time < 500 )
		{
			// Let each entity (troll included) perform its turn
			for( j = 0; j < MAX_ENTITIES; j++ )
			{
				if ( WorkingTable[ j ] != NULL )
					WorkingTable[ j ]->Update();
			}
			troll.Update();

			// Short-circuit the sim if the troll dies
			if( troll.Dead() )
				break;

			time++;
		}


		// Obtain the results
		results[ i ] = troll.GetEvaluation();

		// And clean up
		for( j = 0; j < MAX_ENTITIES; j++ )
		{
		  if( WorkingTable[ j ] != NULL )
				delete( WorkingTable[ j ] );
		}
	}

	// And report the results...
	return( ( results[ 0 ] + results[ 1 ] + results[ 2 ] ) / 3.0 );
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱子伦视频一区二区三区| 久久精品视频在线免费观看| 亚洲三级理论片| 91性感美女视频| 亚洲自拍偷拍av| 欧美福利视频一区| 狠狠色丁香九九婷婷综合五月| 精品欧美乱码久久久久久 | 亚洲国产欧美在线人成| 欧美视频日韩视频在线观看| 日本人妖一区二区| 久久尤物电影视频在线观看| 成人h动漫精品| 亚洲一区二三区| 久久这里只有精品6| 97久久久精品综合88久久| 亚洲国产成人av| 精品国产污污免费网站入口 | 99re这里都是精品| 亚洲国产sm捆绑调教视频| 日韩限制级电影在线观看| 国产精品自拍av| 亚洲综合图片区| 欧美zozo另类异族| 91社区在线播放| 日本不卡一二三| 国产精品久久久久久久久免费丝袜 | 综合色天天鬼久久鬼色| 日韩一区二区三区在线视频| 国产成人午夜精品影院观看视频 | 日韩一区二区精品在线观看| 成人免费视频视频| 天堂蜜桃91精品| 欧美激情一区二区三区四区| 欧美男女性生活在线直播观看| 国产乱码精品一区二区三区av | 国产尤物一区二区| 一区二区三区免费看视频| 久久夜色精品国产噜噜av | 91精品国产综合久久久久| 粉嫩av一区二区三区| 日韩一区欧美一区| 精品成人一区二区三区四区| 欧美三片在线视频观看| 成人黄动漫网站免费app| 日本成人在线不卡视频| 最好看的中文字幕久久| 久久久亚洲精品石原莉奈| 91精品一区二区三区在线观看| 北条麻妃国产九九精品视频| 经典三级在线一区| 偷拍与自拍一区| 亚洲欧美日韩小说| 亚洲国产激情av| 日韩女优电影在线观看| 欧美日韩一二三区| 色综合久久综合中文综合网| 国产sm精品调教视频网站| 久久国内精品视频| 午夜精品国产更新| 亚洲午夜电影在线| 亚洲另类一区二区| 亚洲欧洲美洲综合色网| 亚洲国产精品黑人久久久| 精品福利视频一区二区三区| 日韩一区二区在线看| 91麻豆精品国产综合久久久久久| 日本高清不卡视频| 91浏览器打开| 92国产精品观看| 99热在这里有精品免费| av日韩在线网站| www.亚洲精品| 成人av影视在线观看| 东方aⅴ免费观看久久av| 国产乱一区二区| 丁香婷婷综合网| 成人av片在线观看| 97精品国产97久久久久久久久久久久| 成人av午夜电影| 93久久精品日日躁夜夜躁欧美| 91色乱码一区二区三区| 91污在线观看| 91久久精品一区二区二区| 欧美在线观看禁18| 欧美精品精品一区| 精品理论电影在线观看 | 中文字幕不卡三区| 亚洲欧洲日韩在线| 亚洲一区二区三区中文字幕| 一区二区三区四区不卡视频| 亚洲图片自拍偷拍| 蜜桃久久精品一区二区| 国产乱一区二区| 色综合久久99| 欧美日韩亚州综合| 日韩精品一区二区三区视频在线观看 | 日日摸夜夜添夜夜添精品视频| 日韩精品一级二级| 国内外成人在线视频| 国产a级毛片一区| 色猫猫国产区一区二在线视频| 欧美这里有精品| 日韩免费高清av| 国产精品传媒在线| 午夜精品在线视频一区| 国产呦萝稀缺另类资源| 色综合久久久久久久久| 欧美日本免费一区二区三区| 精品剧情v国产在线观看在线| 日本一区二区三级电影在线观看| 亚洲精品一二三| 精品亚洲国内自在自线福利| 成人美女视频在线观看| 欧美男人的天堂一二区| 国产区在线观看成人精品| 亚洲综合偷拍欧美一区色| 国内精品写真在线观看| 91网站最新网址| 欧美成人国产一区二区| 亚洲人成网站色在线观看| 美女一区二区三区| 色综合天天综合色综合av| 日韩精品一区二区在线| 一个色妞综合视频在线观看| 精品一区二区av| 欧美日韩精品系列| 国产精品电影一区二区| 久久精品国产网站| 欧美伊人久久久久久午夜久久久久| 精品国产91洋老外米糕| 亚洲小少妇裸体bbw| 欧美亚洲动漫制服丝袜| 欧美韩国日本不卡| 精品一区免费av| 欧美精品在线视频| 亚洲欧美日韩电影| 国产精品一区在线观看你懂的| 欧美电影一区二区| 亚洲三级免费电影| 成人福利电影精品一区二区在线观看| 欧美精品乱码久久久久久按摩 | 欧美日韩mp4| 伊人婷婷欧美激情| 成人蜜臀av电影| 国产丝袜美腿一区二区三区| 日本不卡在线视频| 欧美亚洲动漫另类| 一区二区三区中文字幕| caoporen国产精品视频| 亚洲国产精品二十页| 狠狠色综合日日| 日韩免费观看高清完整版| 日韩精品成人一区二区三区| 欧美日韩综合不卡| 亚洲精品成人精品456| 成人av在线资源网站| 国产欧美日韩综合| 国产精品一区专区| 日本一区二区动态图| 国产福利精品一区二区| 国产色综合久久| 国产寡妇亲子伦一区二区| 久久综合久久综合久久综合| 国产综合久久久久影院| 久久久久久久久久久99999| 极品少妇xxxx精品少妇偷拍| 精品99久久久久久| 国产乱一区二区| 亚洲国产成人私人影院tom| 成人自拍视频在线观看| 国产精品久久精品日日| 91天堂素人约啪| 亚洲精品国久久99热| 欧美性受xxxx黑人xyx性爽| 午夜免费久久看| 精品久久人人做人人爰| 国产精品一卡二| 国产精品久久久久久久午夜片| av激情成人网| 亚洲国产日韩精品| 欧美一区二区三区在线| 精品一区二区影视| 国产视频视频一区| 色综合视频在线观看| 亚洲自拍另类综合| 日韩欧美综合在线| 国产91精品精华液一区二区三区| 中文在线一区二区| 日本精品一级二级| 免费成人深夜小野草| xnxx国产精品| 91丨porny丨国产入口| 亚洲成人7777| 国产亚洲综合色| 色综合夜色一区| 九一九一国产精品| 亚洲免费观看高清完整版在线观看熊| 欧美日韩不卡一区二区| 国产福利一区二区三区视频 |