static void mainloop(int s, board_t board) { int endgame; board_t tmpbrd; play_func_t play_func[2]; play_func[chc_my] = myplay; play_func[chc_my ^ 1] = hisplay; for(chc_turn = 1, endgame = 0; !endgame; chc_turn ^= 1) { chc_firststep = 0; chc_drawline(board, TURN_ROW); if(chc_ischeck(board, chc_turn)) { strcpy(chc_warnmsg, "\033[1;31m將軍!\033[m"); bell(); } else chc_warnmsg[0] = 0; chc_drawline(board, WARN_ROW); endgame = play_func[chc_turn](s, board, tmpbrd); } if(endgame == 1) { strcpy(chc_warnmsg, "對方認輸了!"); my.chc_win++; chc_hislose++; } else if(endgame == 2) { strcpy(chc_warnmsg, "你認輸了!"); my.chc_lose++; chc_hiswin++; } else { strcpy(chc_warnmsg, "和棋"); my.chc_tie++; chc_histie++; } chc_save(cuser.userid,1); chc_save(uin->userid,2); chc_drawline(board, WARN_ROW); bell(); oflush(); }
static void mainloop(int s, board_t board) { int endgame; board_t tmpbrd; play_func_t play_func[2]; play_func[chc_my] = myplay; play_func[chc_my ^ 1] = hisplay; for(chc_turn = 1, endgame = 0; !endgame; chc_turn ^= 1) { chc_firststep = 0; chc_drawline(board, TURN_ROW); if(chc_ischeck(board, chc_turn)) { strcpy(chc_warnmsg, "\033[1;31m將軍!\033[m"); bell(); } else chc_warnmsg[0] = 0; chc_drawline(board, WARN_ROW); endgame = play_func[chc_turn](s, board, tmpbrd); } if(endgame == 1) { strcpy(chc_warnmsg, "對方認輸了!"); cuser.chc_win++; } else if(endgame == 2) { strcpy(chc_warnmsg, "你認輸了!"); cuser.chc_lose++; } else { strcpy(chc_warnmsg, "和棋"); cuser.chc_tie++; } cuser.chc_lose--; reload_money(); passwd_update(usernum, &cuser); chc_drawline(board, WARN_ROW); bell(); oflush(); }