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

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

?? main.cpp

?? 生態系統模擬
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*************************************************************
*	生態系統模擬,草原、羊、狼
*		Copyright@Arthur
*			2008-12-24
**************************************************************/
#include <stdio.h>
#include <iostream>
#include <vector>

using namespace std;

#define MaxNM 500		
#define MaxR 5000		//羊的最大數量
#define MaxW 100		//狼的最大數量

//羊的結構
typedef struct SRam
{
	int x,y;	//位置坐標
	double hunger;
	int childDays;
	bool female;
	bool death;	//是否死亡
}SRam;

//狼的結構
typedef struct SWolf
{
	int x,y;	//位置坐標
	double hunger;
	int childDays;
	bool female;
	bool death;	//是否死亡
}SWolf;

//草原的單元結構
typedef struct SGrassUnit
{
	int ramIndex[10],wolfIndex[10];		//羊和狼的序號
	double ramNum,wolfNum;				//此處狼羊的數量,可以為小數
	double belongTo;
	double ate;
	double grass;	//草的狀態 0-1
}SGrassUnit;

//模擬系統
class CEcosystem
{
public:
	CEcosystem();
	~CEcosystem();

	int Run();

protected:
	int Init();
	int Simulating();
	int Release();

	void Usage();
	void PrintInfor(int day = 0);

protected:
	int m_days;				//模擬的總天數

	int m_grassM,m_grassN;	//草原的大小
	double m_grassRate;		//草的增長率

	//模擬生物數據
	SGrassUnit	**m_grass;
	SRam		*m_rams;
	SWolf		*m_wolves;
	int m_nRam;				//羊的數量
	int m_nWolf;			//狼的數量

	bool m_ready;
};

int main()
{
	CEcosystem ecosystemS;

	ecosystemS.Run();

	return 0;
}

CEcosystem::CEcosystem()
{
	m_grass = NULL;
	m_rams = NULL;
	m_wolves = NULL;
}

CEcosystem::~CEcosystem()
{
}

int CEcosystem::Init()
{
	char y;

	m_ready = false;

	//打印應用
	Usage();

	cout<<"開始模擬?y/n?\n";
	cin>>y;
	if (y != 'y')
	{
		//退出系統
		cout<<"按任意鍵退出模擬程序……";
		getchar();
		getchar();

		return 1;
	}

	//讀入數據
	cout<<"輸入草原的大小(10..500) n m\n";
	cin>>m_grassN>>m_grassM;
	if (m_grassN < 9 || m_grassN > 501 && m_grassM < 9 || m_grassM > 500)
	{
		cout<<"錯誤輸入!";
		return -1;
	}
	cout<<"輸入草的增長率(0..1) rate\n";
	cin>>m_grassRate;
	if (m_grassRate <= 0 || m_grassRate > 1 )
	{
		cout<<"錯誤輸入!";
		return -1;
	}
	cout<<"輸入羊(0..1000)狼(0..50)的初始量 n m\n";
	cin>>m_nRam>>m_nWolf;
	if (m_nWolf < 0 || m_nWolf > 50 || m_nRam < 0 || m_nRam > 1000)
	{
		cout<<"錯誤輸入!";
		return -1;
	}
	cout<<"輸入模擬的天數(1..1000) rate\n";
	cin>>m_days;
	if (m_days <= 0 || m_days > 1000 )
	{
		cout<<"錯誤輸入!";
		return -1;
	}

	//數據的初始化
	m_grass = new SGrassUnit* [m_grassN];
	for (int i = 0 ; i < m_grassN ; i++)
	{
		m_grass[i] = new SGrassUnit[m_grassM];
	}

	for (int i = 0 ; i < m_grassN ; i++)
	{
		for (int j = 0 ; j < m_grassM ; j++)
		{
			m_grass[i][j].ate = 0;
			m_grass[i][j].belongTo = 1;
			m_grass[i][j].grass = 0;
			m_grass[i][j].ramNum = 0;
			m_grass[i][j].wolfNum = 0;
			for (int k = 0 ; k < 10 ; k++)
			{
				m_grass[i][j].ramIndex[k] = m_grass[i][j].wolfIndex[k] = -1;
			}
		}
	}

	m_rams = new SRam[MaxR];
	m_wolves = new SWolf[MaxW];

	for (int i = 0 ; i < MaxR ; i++)
	{
		m_rams[i].childDays = 101;	//成年羊
		m_rams[i].death = true;
		m_rams[i].female = i % 2 == 1;
		m_rams[i].hunger = 0;
		m_rams[i].x = 0;
		m_rams[i].y = 0;
	}
	for (int i = 0 ; i < MaxW ; i++)
	{
		m_wolves[i].childDays = 0;	//表示不帶孩子的狼
		m_wolves[i].death = true;
		m_wolves[i].female = i % 2 == 1;
		m_wolves[i].hunger = 0;
		m_wolves[i].x = 0;
		m_wolves[i].y = 0;
	}

	for (int i = 0 ; i < m_nRam  ; i++)
	{
		m_rams[i].death = false;
		m_rams[i].x = (int)((double)rand() / ((double)RAND_MAX + 1) * m_grassN);
		m_rams[i].y = (int)((double)rand() / ((double)RAND_MAX + 1) * m_grassM);
		m_grass[m_rams[i].x][m_rams[i].y].ramNum++;
		for (int j = 0 ; j < 10 ; j++)
		{
			if (m_grass[m_rams[i].x][m_rams[i].y].ramIndex[j] < 0)
			{
				m_grass[m_rams[i].x][m_rams[i].y].ramIndex[j] = i;
				break;
			}
		}
	}
	for (int i = 0 ; i < m_nWolf  ; i++)
	{
		m_wolves[i].death = false;
		m_wolves[i].x = (int)((double)rand() / ((double)RAND_MAX + 1) * m_grassN);
		m_wolves[i].y = (int)((double)rand() / ((double)RAND_MAX + 1) * m_grassM);
		m_grass[m_wolves[i].x][m_wolves[i].y].wolfNum++;
		for (int j = 0 ; j < 10 ; j++)
		{
			if (m_grass[m_wolves[i].x][m_wolves[i].y].wolfIndex[j] < 0)
			{
				m_grass[m_wolves[i].x][m_wolves[i].y].wolfIndex[j] = i;
				break;
			}
		}
	}

	m_ready = true;

	return 0;
}

int CEcosystem::Release()
{
	if (m_grass)
	{
		for (int i = 0 ; i < m_grassN ; i++)
			delete [](m_grass[i]);
		delete []m_grass;
	}
	if (m_rams)
		delete []m_rams;
	if (m_wolves)
		delete []m_wolves;

	return 0;
}

int CEcosystem::Run()
{
	int flag ;
	while (1)
	{
		//初始化數據
		flag = Init();
		if (flag == -1)
		{
			continue;
		}else if (flag == 1)
		{
			break;
		}
		//模擬過程
		if (Simulating() == -1)
		{
			cout<<"模擬過程中錯誤!\n";
			getchar();
			getchar();
			continue;
		}

		//模擬結束打印最后結果,并釋放空間
		PrintInfor();
		Release();
	}

	return 0;
}

int CEcosystem::Simulating()
{
	int currDay = 0;
	int i,j,x,y,index;
	//double food;
	//int count;

	if (!m_ready)
	{
		return 1;
	}

	while (currDay < m_days)
	{
		//每天增加
		currDay++;
		//每隔10天輸出當前狀態
		if (currDay % 10 == 0)
			PrintInfor(currDay);

		//草生長
		for (i = 0 ; i < m_grassN ; i++)
		{
			for (j = 0 ; j < m_grassM ; j++)
			{
				m_grass[i][j].grass -= m_grass[i][j].ate;
				m_grass[i][j].ate = 0;
				if (m_grass[i][j].grass < 1)
				{
					m_grass[i][j].grass += m_grassRate;
				}
			}
		}

		//羊捕食
		for (index = 0 ; index < MaxR ; index++)
		{
			if (!m_rams[index].death )
			{
				//沒有死亡的羊
				if (m_rams[index].childDays <= 100)
				{
					m_rams[index].childDays++;
				}
				x = m_rams[index].x;
				y = m_rams[index].y;

				m_rams[index].hunger += 10;
				
				for (int i = x - 5 ; i < x + 5 ; i++)
				{
					for (int j = y - 5 ; j < y + 5 ; j++)
					{
						if (i >= 0 && j >= 0 && i < m_grassN && j < m_grassM )
						{
							m_rams[index].hunger -= m_grass[i][j].grass/m_grass[i][j].belongTo;
							m_grass[i][j].ate = m_grass[i][j].grass/m_grass[i][j].belongTo;
							if (m_rams[index].hunger < 0 )
							{
								break;
							}
						}
					}
					if (m_rams[index].hunger < 0 )
					{
						break;
					}
				}
				//餓死死亡
				if (m_rams[index].hunger > 10 * 4)
				{
					m_rams[index].death = true;
					//對草原的信息進行更新
					m_grass[m_rams[index].x][m_rams[index].y].ramNum--;
					for (j = 0 ; j < 10 ; j++)
					{
						if (m_grass[x][x].ramIndex[j] == index)
						{
							m_grass[x][y].ramIndex[j] = -1;
							break;
						}
					}
				}
				
			}
		}

		//狼捕食
		for (index = 0 ; index < MaxW ; index++)
		{
			if (!m_wolves[index].death)
			{
				if (m_wolves[index].childDays > 0 && m_wolves[index].childDays < 100)
				{
					m_wolves[index].childDays++;
				}
				x = m_wolves[index].x;
				y = m_wolves[index].y;

				if (m_wolves[index].hunger < 0)
				{
					//五天不用捕食
					m_wolves[index].hunger++;
					continue;
				}

				m_wolves[index].hunger += 0.5;
				if (m_wolves[index].childDays > 0)
				{
					m_wolves[index].hunger += 0.5;
				}
				for (int i = x - 20 ; i < x + 20 ; i++)
				{
					if (i < 0 || i > m_grassN )
						continue;
					for (int j = y - 20 ; j < y + 20 ; j++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品对白交换视频| 国产精品资源在线看| 美女网站一区二区| 懂色av一区二区在线播放| 欧美性淫爽ww久久久久无| 欧美精品一区二区久久婷婷| 亚洲午夜电影在线| 99久久精品国产导航| 精品久久久久久综合日本欧美| 一区二区三区色| 国产精品1024| 精品久久久久久最新网址| 日韩精品亚洲专区| 色综合久久久久网| 国产精品嫩草久久久久| 国内精品伊人久久久久av影院 | 久久久青草青青国产亚洲免观| 亚洲欧美视频在线观看视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美伊人久久大香线蕉综合69 | 一区二区三区蜜桃| 99久久亚洲一区二区三区青草 | 国产精品原创巨作av| 日韩美女在线视频 | 亚洲一区二区黄色| 99免费精品视频| 国产人成亚洲第一网站在线播放 | 亚洲国产精品v| 国产一区高清在线| 久久综合色鬼综合色| 裸体在线国模精品偷拍| 精品美女被调教视频大全网站| 日韩精品一二三| 欧美成人一区二区三区在线观看| 日韩av中文在线观看| 91精品国模一区二区三区| 日韩中文字幕一区二区三区| 欧美浪妇xxxx高跟鞋交| 五月激情丁香一区二区三区| 欧美一区二区三区的| 美腿丝袜一区二区三区| 久久婷婷国产综合精品青草| 国产精品自拍一区| 国产精品久久久久久久久免费相片| 成人av在线资源| 亚洲一区在线观看视频| 欧美丰满少妇xxxxx高潮对白| 日韩高清一区二区| 精品国产免费一区二区三区四区 | 国产精品嫩草影院com| 91免费在线看| 图片区日韩欧美亚洲| 日韩欧美123| 成人看片黄a免费看在线| 亚洲免费观看视频| 欧美剧在线免费观看网站| 美女爽到高潮91| 国产日产欧美一区二区视频| 91在线无精精品入口| 亚洲一区二区三区爽爽爽爽爽| 制服丝袜中文字幕一区| 国产一区二区三区观看| 一区二区三区欧美久久| 日韩欧美的一区二区| 成人va在线观看| 午夜伦欧美伦电影理论片| 精品国产免费视频| 丁香一区二区三区| 亚洲1区2区3区4区| 国产欧美一区二区精品秋霞影院 | 亚洲bdsm女犯bdsm网站| 2023国产精品| 91国在线观看| 福利一区二区在线| 日韩精品欧美精品| 亚洲人成网站影音先锋播放| 91精品国产黑色紧身裤美女| 95精品视频在线| 蜜臀av一区二区| 亚洲综合视频在线| 亚洲国产精品成人综合色在线婷婷| 欧美三片在线视频观看| 成a人片亚洲日本久久| 日本不卡在线视频| 亚洲精品中文在线| 国产欧美精品一区| 日韩一级视频免费观看在线| 在线观看视频一区二区| 国产成人免费视频网站高清观看视频 | 欧美视频一区二区三区四区| 粉嫩绯色av一区二区在线观看| 奇米色一区二区三区四区| 亚洲免费观看在线观看| 国产精品伦理在线| 久久综合九色综合欧美亚洲| 欧美日韩视频在线观看一区二区三区| 成人黄色小视频| 国产一区二区电影| 免费av成人在线| 日产国产高清一区二区三区| 亚洲第一二三四区| 亚洲色图欧美激情| 中文字幕在线免费不卡| 久久精品亚洲一区二区三区浴池| 日韩欧美一级在线播放| 欧美人狂配大交3d怪物一区| 在线观看日韩av先锋影音电影院| jlzzjlzz国产精品久久| 丁香啪啪综合成人亚洲小说| 国产高清不卡一区二区| 国产一区在线不卡| 国内精品伊人久久久久av一坑 | 欧美三级视频在线| 欧美色爱综合网| 欧美日韩dvd在线观看| 欧美日韩国产免费| 欧美日韩一级视频| 欧美老女人第四色| 这里只有精品99re| 精品国产一区二区三区久久久蜜月| 日韩三级精品电影久久久| 欧美一区二区三区日韩| 在线观看91精品国产麻豆| 欧美一二三区精品| 精品国产电影一区二区| 国产肉丝袜一区二区| 中文av一区特黄| 亚洲人成精品久久久久| 亚洲最新视频在线播放| 亚洲一区二区不卡免费| 日韩电影一区二区三区| 久久精品免费看| 成人小视频免费在线观看| 91麻豆6部合集magnet| 欧美日高清视频| 337p粉嫩大胆色噜噜噜噜亚洲| 久久久精品欧美丰满| 中文字幕中文乱码欧美一区二区| 亚洲综合丁香婷婷六月香| 婷婷综合五月天| 国产一区二区在线观看视频| www.日韩精品| 欧美精品粉嫩高潮一区二区| 久久免费偷拍视频| 亚洲男人天堂av| 青草国产精品久久久久久| 国产成人免费视频一区| 欧洲一区二区av| 26uuu亚洲| 亚洲最大色网站| 国产精品亚洲一区二区三区在线| 99re热这里只有精品免费视频| 欧美日韩和欧美的一区二区| 欧美精品一区二区三区在线| 亚洲男帅同性gay1069| 久久精品国产亚洲5555| 一本一道波多野结衣一区二区 | 精品一区二区国语对白| 91亚洲男人天堂| 精品区一区二区| 亚洲国产色一区| jvid福利写真一区二区三区| 欧美不卡视频一区| 亚洲色欲色欲www| 国产精品2024| 欧美一区午夜视频在线观看| 国产精品理论片| 久久国产麻豆精品| 欧美日本国产视频| 亚洲欧美色综合| 国产成人免费网站| 精品国产一区二区三区久久影院 | 日韩午夜激情电影| 一区二区三区日本| 成人国产在线观看| 欧美tickling网站挠脚心| 亚洲一区二区三区视频在线| 成人高清在线视频| 26uuu精品一区二区三区四区在线| 亚洲一区二区三区自拍| 99国产精品久久久久久久久久 | 日韩一二三区不卡| 一区二区成人在线观看| av亚洲精华国产精华精华| 久久久一区二区三区| 美女诱惑一区二区| 欧美军同video69gay| 亚洲国产成人高清精品| 91在线观看成人| 中文字幕中文字幕在线一区| 成人午夜又粗又硬又大| 国产欧美精品一区| 成人小视频免费在线观看| 国产女人18水真多18精品一级做| 久久99国产精品免费| 欧美成人女星排名| 久久99国产精品久久99果冻传媒| 精品欧美一区二区在线观看| 日韩精品一级二级 | 欧美色爱综合网|