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

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

?? gobangroom.cpp

?? 五子棋的其中一個代碼 是里面用戶登陸的
?? CPP
字號:
//begin  <:
 


#include"GoBangRoom.h"

CGoBangRoom::CGoBangRoom()
{
	num_user=0;
	succ=false;
	user_black=user_white=nextplayer_id=winner_id=0;
	for(int i=0;i<15;i++)
		for(int j=0;j<15;j++)
			board[i][j]=0;
}
bool CGoBangRoom::success(int row,int column)
{
	int consist=1;
	char value=board[row][column];

	////////to compare in the same row
	for(int left=1;left<5;left++)
	{
		if((column-left)>=0)
		{
			if(board[row][column-left]==value)
           		consist++;
			else break;
		}
		else break;
	}
	
	for(int right=1;right<5;right++)
	{
		if((column+right)<=14)
		{
			if(board[row][column+right]==value)
			{
				consist++;
				if(consist==5)
					return(true);
			}
			else break;
		}
		else break;
	}
	if(consist==5)
		return(true);
	
/////////to compare in the same column
	consist=1;
    for(int up=1;up<5;up++)
	{
		if((row-up)>=0)
		{
			if(board[row-up][column]==value)
           		consist++;
			else break;
		}
		else break;
	}
	
	for(int down=1;down<5;down++)
	{
		if((row+down)<=14)
		{
			if(board[row+down][column]==value)
			{
				consist++;
				if(consist==5)
					return(true);
			}
			else break;
		}
		else break;
	}
	if(consist==5)
		return(true);
 ////////////在反斜對角線上比較 
    consist=1;
    for(up=1,left=1;up<5;up++,left++)
	{
		if( row-up>=0 && column-left>=0)
		{
			if(board[row-up][column-left]==value)
           		consist++;
			else break;
		}
		else break;
	}
	
	for(down=1,right=1;down<5;down++,right++)
	{
		if(row+down<=14 && column+right<=14)
		{
			if(board[row+down][column+right]==value)
			{
				consist++;
				if(consist==5)
					return(true);
			}
			else break;
		}
		else break;
	}
	if(consist==5)
		return(true);
////////////在順斜對角線上比較
    consist=1;
    for(up=1,right=1;up<5;up++,right++)
	{
		if(row-up>=0 && column+right<=14)
		{
			if(board[row-up][column+right]==value)
           		consist++;
			else break;
		}
		else break;
	}
	for(down=1,left=1;down<5;down++,left++)
	{
		if(row+down<=14 && column-left>=0)
		{
			if(board[row+down][column-left]==value)
			{
				consist++;
				if(consist==5)
					return(true);
			}
			else break;
		}
		else break;
	}
	if(consist==5)
		return(true);


	//if the situation is not successful
	return(false);
}

unsigned int CGoBangRoom::GetCoplayerID(unsigned int UserID)
{
	if(user_black==UserID)
		return(user_white);
	else 
		return(user_black);
}
bool CGoBangRoom::AddUser(unsigned int UserID)  //to add a user 
{
	if(num_user>=2)
		return(false);
	for(int i=0;i<15;i++)
		for(int j=0;j<15;j++)
			board[i][j]=0;
	switch(++num_user)
	{
	case 1:
		{
			user_black=UserID;
			user_white=0;
			nextplayer_id=0;
            return(true);
		}
	case 2:
		{
			if(user_black==0)
				user_black=user_white;
			user_white=UserID;
			nextplayer_id=user_black;
			return(true);
		}
	default: 
		return(false);
    }
	
}
bool CGoBangRoom::DeleteUser(unsigned int UserID) //to delete a user
{
	switch(num_user)
	{
	case 2:
		{
			num_user--;
			nextplayer_id=winner_id=0;
			if(user_black==UserID)
			{
				user_black=0;
				return(true);
			}
			if(user_white==UserID)
			{
				user_white=0;
				return(true);
			}
			return(false);
		}
	case 1:
		{
			num_user--;
			user_black=user_white=0;
			nextplayer_id=winner_id=0;
			return(true);
		}
	default: return(false);  // there is no user in the room
	}

}
 
bool CGoBangRoom::IsReady( )      // if it is can start the game
{

	if(num_user==2)
	{
		// to initial the board of the game 
	//	for(int i=0;i<15;i++)
	//		for(int j=0;j<15;j++)
	//			board[i][j]|=0x00;  
    //  0x00 stands for the empty space.
    //  when it has begun,0x01 for the black gobang,
    //	0x02 for the white gobang.
		return(true);
	}
    //finish
	else return(false);
}
bool CGoBangRoom::Restart()         //  to restart the game
{
	// to initial the board of the game 
	for(int i=0;i<15;i++)
		for(int j=0;j<15;j++)
			board[i][j]=0;  
    //  0x00 stands for the empty space.
    //  when it has begun,0x01 for the black gobang,
    //	0x02 for the white gobang.
    unsigned int temp;
	temp=user_black;
	user_black=user_white;
	user_white=temp;
	nextplayer_id=user_black;
	winner_id=0;
	return(true);
}
bool CGoBangRoom::IsUserIn(unsigned int UserID)  //this user is in the game
{
	if((user_black==UserID)||(user_white==UserID))
		return(true);
	else 
		return(false);
  
}
GAMERESULT CGoBangRoom::UserPlay(ACTION  action)
{   
	char row_info,column_info; 
	int row,column;
	GAMERESULT result;
	switch(action.Action)
	{
//  one user plays a piece of his gabang.
	case PLAY:
		{
			column_info=(action.ActionInfo>>8)&0xff;   //x 
            row_info=action.ActionInfo&0xff;           //y
		    column=column_info;
            row=row_info;
			if(board[row][column]!=0)
			{
				result.GameEnd=false;
				result.NextPlayerID=nextplayer_id;
				return(result);
			}
			if(nextplayer_id!=action.UserID)
			{
				result.GameEnd=false;
				result.NextPlayerID=nextplayer_id;
				return(result);
			}
			if(nextplayer_id==user_black)
				nextplayer_id=user_white;
			else 
				nextplayer_id=user_black;
		
			if(action.UserID==user_black)	
			{
				board[row][column]=0x01;
			}
			else
			{
				board[row][column]=0x02;
			}
			if(success(row,column))
			{
				succ=true;
				winner_id=action.UserID;
				result.GameEnd=true;
			}
			else 
			{
				result.GameEnd=false;
			}
			result.NextPlayerID=nextplayer_id;
			return result;
		}

//to restart the game;it will exchange the colors of users' gabang. 
	case RESTART:
		{
			Restart();
			nextplayer_id=user_black;
			result.GameEnd=false;
			result.NextPlayerID=user_black;
			return result;
		}
// to exit the GameRoom
/*********************************************************
		it need to modify    : if there is no user ,the room will vanish
		and then I shuold use the function Delete(),what is the return,and 
		*/
	case EXIT:
		{
			
		   switch(num_user)
		   {
		   case 2:
			   {
				   num_user--;
				   if(user_black==action.UserID)
				  	   user_black=user_white;
				   result.GameEnd=true;
				   result.NextPlayerID=user_black;
			   }
		   case 1:
			   {
				   num_user--;
				   result.GameEnd=true;
				   result.NextPlayerID=0;
			   }
		   } 
		   
          return result;
		}
	default:
		{
			result.GameEnd=false;
			result.NextPlayerID=action.UserID;
			return result;
		}
	}
    
}                
const char* CGoBangRoom::GetGameInfo()
{
	return(&board[0][0]);
}
unsigned int CGoBangRoom::GetWinnerID()
{
	if(succ==true)
		return(winner_id);
	else 
		return(0);
}
unsigned int CGoBangRoom::GetNextPlayerID()
{
	return(nextplayer_id);
}

//end  :>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产馆精品极品| 3atv在线一区二区三区| 国产亚洲一本大道中文在线| 中文字幕在线不卡| 国产乱理伦片在线观看夜一区| 风间由美中文字幕在线看视频国产欧美| 欧美一区二区三区四区五区| 肉肉av福利一精品导航| 欧美精品一二三区| 婷婷一区二区三区| 欧美一区二区视频观看视频| 久久国内精品自在自线400部| 3751色影院一区二区三区| 极品销魂美女一区二区三区| 久久理论电影网| 成人性视频免费网站| 久久久久久久久伊人| 国产一区二区三区| 中文成人av在线| 色婷婷综合久色| 亚洲国产日韩精品| 日韩限制级电影在线观看| 国产精品亚洲专一区二区三区| 欧美激情综合五月色丁香| 欧美吻胸吃奶大尺度电影| 日产欧产美韩系列久久99| 日韩精品在线一区二区| 成人小视频在线| 亚洲伦理在线精品| 日韩免费看网站| 97se亚洲国产综合自在线| 亚洲国产精品影院| 欧美xxx久久| 91在线观看美女| 日产国产欧美视频一区精品| 国产日韩精品久久久| 色综合中文字幕国产 | 精品国产sm最大网站免费看| 国产一区在线观看麻豆| 日韩理论在线观看| 欧美一区二区三区免费视频| 91免费在线看| 激情综合色综合久久| 亚洲人妖av一区二区| 日韩视频国产视频| 国产不卡在线播放| 人人狠狠综合久久亚洲| 国产拍欧美日韩视频二区| 欧美精品一卡二卡| 成人福利电影精品一区二区在线观看| 欧美aaaaaa午夜精品| 一区二区视频在线| 久久九九影视网| 欧美酷刑日本凌虐凌虐| 国产一区美女在线| 免费观看在线色综合| 日韩毛片高清在线播放| 久久久久久久久久久黄色| 色天使色偷偷av一区二区| 成人sese在线| 国产剧情一区二区三区| 性感美女久久精品| 一区二区三区久久久| 中文字幕佐山爱一区二区免费| 亚洲精品在线电影| 欧美一级高清片在线观看| 一本色道亚洲精品aⅴ| 懂色一区二区三区免费观看| 麻豆精品精品国产自在97香蕉| 亚洲欧美日韩一区二区| 中文字幕+乱码+中文字幕一区| 欧美videos中文字幕| 在线播放欧美女士性生活| 在线观看欧美日本| 国产91丝袜在线观看| 成人一区二区三区| 国产东北露脸精品视频| 久久97超碰色| 久久国产精品色婷婷| 狠狠色狠狠色综合日日91app| 亚洲国产视频a| 亚洲国产日产av| 悠悠色在线精品| 一区二区三区91| 亚洲自拍偷拍九九九| 亚洲制服丝袜av| 亚洲最色的网站| 亚洲成a天堂v人片| 美日韩黄色大片| 国产精品一区二区男女羞羞无遮挡| 国产精品自在在线| 成人av免费网站| 在线观看免费亚洲| 欧美一级二级在线观看| 久久综合九色综合97_久久久| 亚洲精品一区二区三区在线观看| 国产丝袜美腿一区二区三区| 国产精品久久精品日日| 亚洲一区二区三区四区在线观看 | 天堂久久久久va久久久久| 蜜臀av一级做a爰片久久| 国产成人在线色| 91福利在线看| 日韩欧美第一区| 国产精品白丝在线| 五月天亚洲婷婷| 国产精品亚洲午夜一区二区三区| 91麻豆产精品久久久久久 | 日韩av中文字幕一区二区三区| 久久精品99国产精品日本| 成人一级视频在线观看| 欧美日韩亚洲高清一区二区| 久久免费国产精品| 一区二区三区高清不卡| 久久se这里有精品| 99国产精品久久久久久久久久| 欧美精品免费视频| 国产精品免费看片| 麻豆高清免费国产一区| 99re热这里只有精品视频| 日韩欧美在线一区二区三区| 国产精品狼人久久影院观看方式| 水野朝阳av一区二区三区| 不卡一区二区在线| 欧美va亚洲va| 亚洲国产视频一区| 不卡一区在线观看| 精品日韩在线观看| 午夜精品久久久久久久蜜桃app| 成人中文字幕在线| 欧美一区二区二区| 亚洲一区二区美女| 99视频有精品| 亚洲精品在线免费播放| 亚洲成人1区2区| 色老综合老女人久久久| 国产清纯白嫩初高生在线观看91 | 久久激情五月婷婷| 91黄色免费网站| 日本一区二区三区免费乱视频| 日韩电影免费在线看| 91看片淫黄大片一级在线观看| www日韩大片| 免费在线欧美视频| 欧美日韩在线播放一区| 国产精品国产自产拍在线| 国产乱一区二区| 欧美成人精品高清在线播放| 午夜成人免费电影| 欧美探花视频资源| 樱花影视一区二区| 91亚洲精品乱码久久久久久蜜桃 | 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲一区二区三区视频在线播放 | 成人亚洲精品久久久久软件| 精品对白一区国产伦| 久久99蜜桃精品| 欧美岛国在线观看| 美女脱光内衣内裤视频久久网站 | 国产呦萝稀缺另类资源| 精品国产乱码久久久久久牛牛| 奇米亚洲午夜久久精品| 欧美日韩高清影院| 亚洲成av人影院| 欧美丰满少妇xxxbbb| 亚洲成人av一区二区三区| 欧美性高清videossexo| 亚洲成人一区二区| 欧美精品自拍偷拍| 日韩精品午夜视频| 欧美大度的电影原声| 精品一区二区三区在线视频| 日韩精品中文字幕一区| 国产一区视频在线看| 久久久久久久久久电影| 国产成人在线色| 国产精品不卡视频| 欧美色图第一页| 日本亚洲天堂网| 26uuu久久天堂性欧美| 国产一区二区三区免费观看| 久久精品一区二区三区av| 懂色av一区二区三区免费看| 最新成人av在线| 欧美日韩在线三级| 毛片基地黄久久久久久天堂| 久久免费精品国产久精品久久久久| 国产精品18久久久久久久久久久久 | 日本免费在线视频不卡一不卡二| 日韩欧美在线网站| 国产69精品久久99不卡| 亚洲欧美一区二区三区久本道91| 欧美日韩精品欧美日韩精品一| 免费的成人av| 中文字幕免费不卡| 欧美日产在线观看| 国产成人免费在线| 亚洲chinese男男1069| 国产视频一区在线观看| 97精品国产97久久久久久久久久久久|