⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 junqi_client.cpp

📁 linux下开发的四国军旗源代码,包括客户端和服务器端
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			break;		case RUN_FLAG_INIT_QI:			if(x_index>=BUTTON_EXIT_XINDEX && x_index<=BUTTON_EXIT_XINDEX+1 && y_index>=BUTTON_EXIT_YINDEX && y_index<=BUTTON_EXIT_YINDEX+1){				//Send leave qiju to svr.				Send_leave_qiju_to_svr(TCP_sockFD,self_userID,self_qiju_id,self_player_side);				run_flag = RUN_FLAG_SELECT_QIJU;				qi_selected_flag = 0;				glb_user_list[self_userID].user_state=USER_INFO_STATE_NO_QI_JU;				glb_user_list[self_userID].qi_ju_index = 0;				glb_qiju_list[self_qiju_id].user_flag[self_player_side-1]=0;				glb_qiju_list[self_qiju_id].user_index[self_player_side-1]=0;				glb_qiju_list[self_qiju_id].user_num--;				join_qiju_re_drawall();			}			break;		case RUN_FLAG_PLAY_QI:			if(x_index>=BUTTON_EXIT_XINDEX && x_index<=BUTTON_EXIT_XINDEX+1 && y_index>=BUTTON_EXIT_YINDEX && y_index<=BUTTON_EXIT_YINDEX+1){				//Send leave qiju to svr.				Send_leave_qiju_to_svr(TCP_sockFD,self_userID,self_qiju_id,self_player_side);				run_flag = RUN_FLAG_SELECT_QIJU;				qi_selected_flag = 0;				glb_user_list[self_userID].user_state=USER_INFO_STATE_NO_QI_JU;				glb_user_list[self_userID].qi_ju_index = 0;				glb_qiju_list[self_qiju_id].user_flag[self_player_side-1]=0;				glb_qiju_list[self_qiju_id].user_index[self_player_side-1]=0;				glb_qiju_list[self_qiju_id].user_num--;				join_qiju_re_drawall();			}			break;		case RUN_FLAG_RUN_QI:			if(x_index>=BUTTON_EXIT_XINDEX && x_index<=BUTTON_EXIT_XINDEX+1 && y_index>=BUTTON_EXIT_YINDEX && y_index<=BUTTON_EXIT_YINDEX+1){				//Send leave qiju to svr.				Send_leave_qiju_to_svr(TCP_sockFD,self_userID,self_qiju_id,self_player_side);				run_flag = RUN_FLAG_SELECT_QIJU;				qi_selected_flag = 0;				glb_user_list[self_userID].user_state=USER_INFO_STATE_NO_QI_JU;				glb_user_list[self_userID].qi_ju_index = 0;				glb_qiju_list[self_qiju_id].user_flag[self_player_side-1]=0;				glb_qiju_list[self_qiju_id].user_index[self_player_side-1]=0;				glb_qiju_list[self_qiju_id].user_num--;				join_qiju_re_drawall();			}			break;		default:			break;		}	}	else{		switch(run_flag){		case RUN_FLAG_CONNECT_SVR:			deal_connect_svr_button_event(event);			break;		case RUN_FLAG_SELECT_QIJU:			deal_select_qiju_button_event(event);			break;		case RUN_FLAG_INIT_QI:			deal_init_qi_button_event(event);			break;		case RUN_FLAG_PLAY_QI:			break;		case RUN_FLAG_RUN_QI:			deal_run_qi_button_event(event);			break;		default:			break;		}	}	return 0;}int deal_motion_notify(XMotionEvent event){	return 0;}int deal_connect_svr_button_event(XButtonEvent event){	int x,y;	if(event.button!=1){		return 0;	}	x=event.x;	y=event.y;	if(x>=320 && y>=230 && x<=480 && y<=260){		//button1;Send Login to the svr.		int itmp_rtn=InitTCPSocket();		if(itmp_rtn<0){			printf("InitTCPSocket error\n");		}		else{			//Send login to svr;			Send_login_to_svr(TCP_sockFD,user_name_str,user_passwd_str);		}		printf("The TCP_sockFD=%d,itmp_rtn=%d\n",TCP_sockFD,itmp_rtn);	}	else if(x>=320 && y>=270 && x<=480 && y<=300){		//button2;Exit program.		glb_prg_Exit = 1;	}	return 0;}int deal_select_qiju_button_event(XButtonEvent event){	int x,y;	int x_index,y_index;	int table_index;	if(event.button!=1){		return 0;	}	x=event.x;	y=event.y;	x_index=x/30;	y_index=y/30;	table_index=(y_index/3)*5+(x_index)/3+1;	if(x_index>=15 || y_index>=15 || table_index>MAX_QI_JU_NUM){		;//not in select qiju;	}	else{		if(join_qiju_map_flag[y_index][x_index]!=' ' && join_qiju_map_flag[y_index][x_index]!='T'){			//at the chair ;			//Send the join qiju to server;C_JoinQiJu tid userID table_index playerID;			switch(join_qiju_map_flag[y_index][x_index]){			case 'A':				join_qiju_draw_join_qiju(self_userID,table_index,PLAYER_SIDE_A);				Send_join_qiju_to_svr(TCP_sockFD,self_userID,table_index,0);				break;			case 'B':				join_qiju_draw_join_qiju(self_userID,table_index,PLAYER_SIDE_B);				Send_join_qiju_to_svr(TCP_sockFD,self_userID,table_index,1);				break;			case 'C':				join_qiju_draw_join_qiju(self_userID,table_index,PLAYER_SIDE_C);				Send_join_qiju_to_svr(TCP_sockFD,self_userID,table_index,2);				break;			case 'D':				join_qiju_draw_join_qiju(self_userID,table_index,PLAYER_SIDE_D);				Send_join_qiju_to_svr(TCP_sockFD,self_userID,table_index,3);				break;			default:				break;			}		}	}	return 0;}int deal_init_qi_button_event(XButtonEvent event){	int x,y;	int x_index,y_index;	if(event.button!=1){		return 0;	}	x=event.x;	y=event.y;	x_index=x/35;	y_index=y/35;	if(map_run[x_index][y_index]==BUTTON_CMD_INIT_SRART_GAME){		if(qi_selected_flag!=0){			qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			qi_selected_flag = 0;		}		run_flag=RUN_FLAG_PLAY_QI;		qiju_draw_init_cmd_button(BUTTON_SHOW_FLAG_HIDE);		//Send C_StartGame to svr		Send_start_game_to_svr(TCP_sockFD,self_userID,self_qiju_id,self_player_side-1);		//run_flag=RUN_FLAG_RUN_QI;		//qiju_draw_left_qi_map_play_init();		//qiju_draw_right_qi_map_play_init();		//qiju_draw_up_qi_map_play_init();		//qiju_draw_run_qi_cmd_button(BUTTON_SHOW_FLAG_SHOWED);	}	else if(qi_selected_flag==0){		if(map_run[x_index][y_index]>0 && map_run[x_index][y_index]/100==self_player_side){			select_qi_xindex=x_index;			select_qi_yindex=y_index;			qi_selected_flag = 1;			qiju_draw_qi(map_run[x_index][y_index]%100,18+35*x_index-15,18-10+35*y_index,self_player_side,1);		}	}	else{		if(select_qi_xindex != x_index || select_qi_yindex != y_index){			if((map_flag[x_index][y_index]!='#' && map_flag[x_index][y_index]!='&') 					|| x_index<6 || x_index>10 || y_index<11 || y_index>16){				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			}			else if(map_run[x_index][y_index]%100==QI_DILEI_SYMBOL && select_qi_yindex<15){				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			}			else if(map_run[select_qi_xindex][select_qi_yindex]%100==QI_DILEI_SYMBOL && y_index<15){				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			}			else if(map_run[x_index][y_index]%100==QI_JUNQI_SYMBOL && map_flag[select_qi_xindex][select_qi_yindex] != '&'){				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			}			else if(map_run[select_qi_xindex][select_qi_yindex]%100==QI_JUNQI_SYMBOL && map_flag[x_index][y_index] != '&'){				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			}			else if(map_run[x_index][y_index]%100==QI_ZHADAN_SYMBOL && select_qi_yindex==11){				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			}			else if(map_run[select_qi_xindex][select_qi_yindex]%100==QI_ZHADAN_SYMBOL && y_index==11){				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);			}			else{				qiju_draw_qi(map_run[x_index][y_index]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);				qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*x_index-15,18-10+35*y_index,self_player_side,0);				int tmp;				tmp = map_run[x_index][y_index];				map_run[x_index][y_index]=map_run[select_qi_xindex][select_qi_yindex];				map_run[select_qi_xindex][select_qi_yindex]=tmp;			}			qi_selected_flag = 0;		}		else{			qi_selected_flag = 0;			qiju_draw_qi(map_run[x_index][y_index]%100,18+35*x_index-15,18-10+35*y_index,self_player_side,0);		}	}	return 0;}int deal_run_qi_button_event(XButtonEvent event){	int x,y;	int x_index,y_index;	if(event.button!=1){		return 0;	}	x=event.x;	y=event.y;	x_index=x/35;	y_index=y/35;	switch(map_run[x_index][y_index]){	case BUTTON_CMD_RUN_QI_PEACE:		//Send peace to server:		Send_peace_to_svr(TCP_sockFD);		break;	case BUTTON_CMD_RUN_QI_GIVEUP:		//Send give_up to server:		Send_give_up_to_svr(TCP_sockFD);		break;	default:		if(qi_selected_flag==0){			if(map_run[x_index][y_index]>0 && map_run[x_index][y_index]/100==self_player_side && map_flag[x_index][y_index]!='&' && map_run[x_index][y_index]%100!= QI_DILEI_SYMBOL){				select_qi_xindex=x_index;				select_qi_yindex=y_index;				qi_selected_flag = 1;				qiju_draw_qi(map_run[x_index][y_index]%100,18+35*x_index-15,18-10+35*y_index,self_player_side,1);			}		}		else{			if(select_qi_xindex != x_index || select_qi_yindex != y_index){				if(map_flag[x_index][y_index]==' ' 						|| (map_flag[x_index][y_index]=='@' && map_run[x_index][y_index]>0 && map_run[x_index][y_index]/100!=self_player_side)						|| ((map_run[x_index][y_index]/100-self_player_side==2 || map_run[x_index][y_index]/100-self_player_side==-2)&& (map_run[x_index][y_index]/100!=0))){					printf("!!!!!!!!!!!!!!!!could not move\n");					printf("map_flag[%d][%d]=[%c]\n",x_index,y_index,map_flag[x_index][y_index]);					printf("map_run[%d][%d]=%d\n",x_index,y_index,map_run[x_index][y_index]);					;//could not move there				}				else if(map_run[x_index][y_index]/100==self_player_side && map_flag[x_index][y_index]!='&' && map_run[x_index][y_index]%100 != QI_DILEI_SYMBOL){//change selected;					qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,0);					select_qi_xindex = x_index;					select_qi_yindex = y_index;					qiju_draw_qi(map_run[select_qi_xindex][select_qi_yindex]%100,18+35*select_qi_xindex-15,18-10+35*select_qi_yindex,self_player_side,1);				}				else if(map_run[x_index][y_index]%100== QI_DILEI_SYMBOL || (map_run[x_index][y_index]/100==self_player_side && map_flag[x_index][y_index]=='&')){					;				}				else{					if(select_qi_xindex==x_index 							&& (map_run[select_qi_xindex][select_qi_yindex]%100 != QI_GONGBING_SYMBOL)){						if(abs(select_qi_yindex-y_index)!=1){							int stop_point;							stop_point = 0;							stop_point = is_x_reachable(select_qi_xindex,select_qi_yindex,y_index);							if(stop_point == 0){								//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;								Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);								//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);								;							}						}						else{							//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;							Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);							//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);							;						}					}					else if(select_qi_yindex==y_index 							&& (map_run[select_qi_xindex][select_qi_yindex]%100 != QI_GONGBING_SYMBOL)){						if(abs(select_qi_xindex-x_index!=1)){							int stop_point;							stop_point = 0;							stop_point = is_y_reachable(select_qi_yindex,select_qi_xindex,x_index);							if(stop_point == 0){								//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;								Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);								//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);								;							}						}						else{							//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;							Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);							//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);							;						}					}					else if(map_run[select_qi_xindex][select_qi_yindex]%100 != QI_GONGBING_SYMBOL){						if(abs(select_qi_xindex-x_index)==1 && abs(select_qi_yindex-y_index)==1){							if(map_flag[select_qi_xindex][select_qi_yindex]=='@' 									|| map_flag[x_index][y_index]=='@'									||(map_road_flag[select_qi_xindex][select_qi_yindex]=='3' && map_road_flag[x_index][y_index]=='3')){								//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;								Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);								//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);							}							else{								;//could not move ;							}						}						else{							int tmp_xindex,tmp_yindex;							tmp_xindex=select_qi_xindex;							tmp_yindex=y_index;							int tmp_flag;							tmp_flag = 0;							if(map_road_flag[tmp_xindex][tmp_yindex]=='4'){								tmp_flag = 1;							}							else{								tmp_xindex=x_index;								tmp_yindex=select_qi_yindex;								if(map_road_flag[tmp_xindex][tmp_yindex]=='4'){									tmp_flag = 1;								}							}							if(tmp_flag==1){								if(tmp_xindex==select_qi_xindex){									int stop_point;									stop_point = 0;									stop_point += is_x_reachable(select_qi_xindex,select_qi_yindex,tmp_yindex);									stop_point += is_y_reachable(tmp_yindex,tmp_xindex,x_index);									if(stop_point==0){										if(tmp_yindex>select_qi_yindex){											if(map_road_flag[tmp_xindex][tmp_yindex-1]=='3'){												if(tmp_xindex>x_index){													if(map_road_flag[tmp_xindex-1][tmp_yindex]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}												else{													if(map_road_flag[tmp_xindex+1][tmp_yindex]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}											}										}										else if(tmp_yindex<select_qi_yindex){											if(map_road_flag[tmp_xindex][tmp_yindex+1]=='3'){												if(tmp_xindex>x_index){													if(map_road_flag[tmp_xindex-1][tmp_yindex]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}												else{													if(map_road_flag[tmp_xindex+1][tmp_yindex]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}											}										}									}								}								else{									int stop_point;									stop_point = 0;									stop_point += is_y_reachable(select_qi_yindex,select_qi_xindex,tmp_xindex);									stop_point += is_x_reachable(tmp_xindex,tmp_yindex,y_index);									if(stop_point==0){										if(tmp_xindex>select_qi_xindex){											if(map_road_flag[tmp_xindex-1][tmp_yindex]=='3'){												if(tmp_yindex>y_index){													if(map_road_flag[tmp_xindex][tmp_yindex-1]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}												else{													if(map_road_flag[tmp_xindex][tmp_yindex+1]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}											}										}										else{											if(map_road_flag[tmp_xindex+1][tmp_yindex]=='3'){												if(tmp_yindex>y_index){													if(map_road_flag[tmp_xindex][tmp_yindex-1]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}												else{													if(map_road_flag[tmp_xindex][tmp_yindex+1]=='3'){														//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;														Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);														//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);													}												}											}										}									}								}							}							else{								;//could not move;							}						}					}					else{						//GongBing move judge						if(map_road_flag[select_qi_xindex][select_qi_yindex]=='1' || map_road_flag[x_index][y_index]=='1'){							if(((select_qi_xindex-x_index)*(select_qi_yindex-y_index)==0) && (abs(select_qi_xindex-x_index)==1 || abs(select_qi_yindex-y_index)==1)){								//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;								Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);								//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);							}							else if(abs((select_qi_xindex-x_index)*(select_qi_yindex-y_index))==1									&& ((map_flag[select_qi_xindex][select_qi_yindex]=='@')										|| (map_flag[x_index][y_index]=='@'))){								//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;								Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);								//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);							}						}						else{							if(is_find_fly_way(select_qi_xindex,select_qi_yindex,x_index,y_index)>0){								//Send move (from select_qi_xindex,select_qi_yindex to x_index,y_index) to server;								Send_move_qi_to_svr(TCP_sockFD,select_qi_xindex,select_qi_yindex,x_index,y_index);								//qiju_draw_move_qi(select_qi_xindex,select_qi_yindex,x_index,y_index);							}						}					}				}			}			else{				qi_selected_flag = 0;				qiju_draw_qi(map_run[x_index][y_index]%100,18+35*x_index-15,18-10+35*y_index,self_player_side,0);			}		}		break;	}	return 0;}int deal_inputkey(int ikey){	switch(ikey){	case XK_Left:		break;	case XK_Right:		break;	case XK_Up:		break;	case XK_Down:		break;	case XK_Escape:		break;	case XK_Delete:		break;	case XK_BackSpace:		break;	case XK_Tab:		break;	case XK_Return:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -