📄 junqi_client.cpp
字号:
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 + -