admin_shuimu 發表於 2019-2-27 09:37:06

资源共享-网络技术-C++五子棋源码

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include "stdio.h"
#include "windows.h"
using namespace std;
char stage;
int x;
char y;
int J_end=0;
int player=1;//player1:xplayer2:y
bool qizi;//初始值为false,表示没有棋子

int judge(int index){
      char aaa;
      if(index==1) aaa='x' ;
      if(index==2) aaa='o';
      //return 1,plyer1 获胜;return 2,player2 获胜。
      for(int i=1;i<=15;i++){
                for(int k=1;k<=15;k++){
                        if(stage==aaa){
                              int line=1;
                              //横向判断
                              for(int m=k+1;m<=k+4;m++){
                                        if(stage==aaa) line++;
                              }
                              if(line==5) return index;
                              //纵向判断
                              line=1;
                              for(int n=i+1;n<=i+4;n++){
                                        if(stage==aaa) line++;
                              }
                              if(line==5) return index;
                              //正对角判断
                              line=1;
                              for(int shu=1,ii=i,kk=k;shu<=4;shu++){
                                        if(stage==aaa) line++;
                              }
                              if(line==5) return index;
                              //次对角判断
                              if((y-96)>=5) {
                                        line=1;
                                        for(int shu=1,ii=i,kk=k;shu<=4;shu++){
                                                if(stage==aaa) line++;
                                        }
                                        if(line==5) return index;
                              }
                        }
                }
      }
      return 0;
}

int draw(){
      SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
      cout<<"   "<<"a"<<" "<<"b"<<" "<<"c"<<" "<<"d"<<" "<<"e"<<" "<<"f"<<" "<<"g"<<" "
      <<"h"<<" "<<"i"<<" "<<"j"<<" "<<"k"<<" "<<"l"<<" "<<"m"<<" "<<"n"<<" "<<"o"
      //<<" "<<"p"<<" "<<"q"<<" "<<"r"<<" "<<"s"<<" "<<"t"<<" "<<"u"<<" "<<"v"<<" "<<"w"<<" "<<"x"<<" "<<"y"<<" "<<"z"
      <<endl<<"1"<<"";
      for(int i=1;i<=15;i++){
      
                if(stage=='x'){
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
                        cout<<stage<<" ";
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                }
                else if(stage=='o'){
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
                        cout<<stage<<" ";
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                }
                else      cout<<stage<<" ";
      }
      for(int temp_flag=2;temp_flag<=9;temp_flag++){
                cout<<endl<<temp_flag<<"";
                for(int k=1;k<=15;k++){
               
                        if(stage=='x'){
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
                              cout<<stage<<" ";
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                        }
                        else if(stage=='o'){
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
                              cout<<stage<<" ";
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                        }
                        else      cout<<stage<<" ";
                }
      }
      for(int temp_flag=10;temp_flag<=15;temp_flag++){
                cout<<endl<<temp_flag<<" ";
                for(int k=1;k<=15;k++){
               
                        if(stage=='x'){
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
                              cout<<stage<<" ";
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                        }
                        else if(stage=='o'){
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
                              cout<<stage<<" ";
                              SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                        }
                        else      cout<<stage<<" ";
                }      
      }
      cout<<endl;
}

int main(){
      //初始化数组
      for(int i=1;i<=15;i++){
                for(int k=1;k<=15;k++)
                        stage='.';
      }
      while(J_end!=1&&J_end!=2){
                //绘制棋盘
                draw();      
                cout<<"======================================"<<endl;
                if(player==1){
                        p1:cout<<"玩家一的回合:"<<"    ";
                        qizi=true;
                        J_end=judge(1);
                        cin>>x>>y;
                        if(qizi){
                              cout<<endl<<"    Error!这里已经有棋子了。"<<endl<<"请重新输入:";
                              goto p1;
                        }
                        if(y>111||y<97||x<1||x>15){
                              cout<<endl<<"    Error!超出棋盘范围。"<<endl<<"请重新输入:";
                              goto p1;
                        }
                        stage='x';
                        player=2;
                }
                else if(player==2){
                        p2:cout<<"玩家二的回合:"<<"    ";
                        cin>>x>>y;
                        if(qizi){
                              cout<<endl<<"    Error!这里已经有棋子了。"<<endl<<"请重新输入:";
                              goto p2;
                        }
                        if(y>111||y<97||x<1||x>15){
                              cout<<endl<<"    Error!超出棋盘范围。"<<endl<<"请重新输入:";
                              goto p2;
                        }
                        stage='o';
                        qizi=true;
                        J_end=judge(2);
                        player=1;
                }
                if(J_end!=1&&J_end!=2)
                        system("cls");
      }
      cout<<endl<<"======================================"<<endl;
      if(J_end==1) cout<<"恭喜玩家一获胜";
      else cout<<"恭喜玩家二获胜";
}

木叶 發表於 2021-10-9 23:02:25

2021考古:lol

kericnnoe1964 發表於 2022-11-29 03:52:07

無論你是想賺錢、想認識妹子交女友魔龍傳奇遊戲都是可以幫你實現的
頁: [1]
查看完整版本: 资源共享-网络技术-C++五子棋源码

一粒米 | 中興米 | 論壇美工 | 設計 抗ddos | 天堂私服 | ddos | ddos | 防ddos | 防禦ddos | 防ddos主機 | 天堂美工 | 設計 防ddos主機 | 抗ddos主機 | 抗ddos | 抗ddos主機 | 抗攻擊論壇 | 天堂自動贊助 | 免費論壇 | 天堂私服 | 天堂123 | 台南清潔 | 天堂 | 天堂私服 | 免費論壇申請 | 抗ddos | 虛擬主機 | 實體主機 | vps | 網域註冊 | 抗攻擊遊戲主機 | ddos |