devc++运行通过,含注释
#include
#include
#include
#include
using namespace std;
void gotoxy(int x,int y) {
COORD pos = {x,y};
HANDLE hOut =GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut,pos);
}//将光标移动到x,y点上
int mp[16][16]= {0},x1=0,x2=0;//地图,用来搜索五子连成的
void print(int x) {
gotoxy(x,1);
cout<<"┬";
for(int i=2; i<=14; i++) {
gotoxy(x,i);
cout<<"┼";
}
gotoxy(x,15);
cout<<"┴";
}//输出棋盘的中间部分
void gotoc() {
system("cls");
gotoxy(55,10);
cout<<"五 子 棋";
gotoxy(56,20);
cout<<"加载中...";
gotoxy(55,21);
cout<<"作者:北辰";
for(int j=0; j<100; j++) {
Sleep(17);
gotoxy(j+3,15);
cout<<" "< gotoxy(j,15); cout<<"■"; } system("cls"); for(int i=0; i<100; i++) { for(int j=0; j<40; j++) { gotoxy(i,j); cout<<"■"; //SetColor(rand()%10); } } system("cls"); }//加载界面函数 int main() { gotoc();//加载 for(int i=2; i<=30; i+=2) { gotoxy(i,0); cout<
}//横坐标 for(int i=1; i<=15; i++) { gotoxy(0,i); cout<
}//纵坐标 gotoxy(2,1); cout<<"┌"; for(int i=2; i<=14; i++) { gotoxy(2,i); cout<<"├"; } gotoxy(2,15); cout<<"└";//输出棋盘左侧 for(int i=4; i<=28; i+=2) { print(i); }//用一个循环来输出棋盘中间部分 gotoxy(30,1); cout<<"┐"; for(int i=2; i<=14; i++) { gotoxy(30,i); cout<<"┤"; } gotoxy(30,15); cout<<"┘";//输出棋盘右侧 bool l=0;//没什么用的flag long long m=2;//这个很重要,用来判断是该白棋走还是黑棋走,每次走完++,每次判断是偶数,该白棋,是奇数,该黑棋(一般用flag判断,这是我个人喜好) gotoxy(0,17); cout<<"游戏说明:白棋先走,落子请输入坐标,其他的不用我说了吧";//说明,一定要看 while(l=1) { gotoxy(32,16); int x,y; cin>>x>>y;//读入xy坐标 gotoxy(32,16); cout<<" "; if(mp[x][y]!=0) { gotoxy(32,16); cout<<"此位置已有落子!"; Sleep(1000); gotoxy(32,16); cout<<" "; continue; }//很重要,用来判断此位置有没有落子 if(x>15&&y<=15) { gotoxy(32,16); cout<<"x坐标超出棋盘范围!"; Sleep(1000); gotoxy(32,16); cout<<" "; continue; } if(y>15&&x<=15) { gotoxy(32,16); cout<<"y坐标超出棋盘范围!"; Sleep(1000); gotoxy(32,16); cout<<" "; continue; } if(y>15&&x>15) { gotoxy(32,16); cout<<"x和y坐标均超出棋盘范围!"; Sleep(1000); gotoxy(32,16); cout<<" "; continue; }//以上三个if用来判断有没有超出棋盘大小 gotoxy(x*2,y); if(m%2==0) {//是偶数,该白棋 cout<<"●";//输出棋子 mp[x][y]=1; //横坐标搜索有没有连成五个 if(mp[x+1][y]==1&&mp[x+2][y]==1&&mp[x+3][y]==1&&mp[x+4][y]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-1][y]==1&&mp[x+1][y]==1&&mp[x+2][y]==1&&mp[x+3][y]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-2][y]==1&&mp[x-1][y]==1&&mp[x+1][y]==1&&mp[x+2][y]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-3][y]==1&&mp[x-2][y]==1&&mp[x-1][y]==1&&mp[x+1][y]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-4][y]==1&&mp[x-3][y]==1&&mp[x-2][y]==1&&mp[x-1][y]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } //竖 if(mp[x][y+1]==1&&mp[x][y+2]==1&&mp[x][y+3]==1&&mp[x][y+4]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x][y-1]==1&&mp[x][y+1]==1&&mp[x][y+2]==1&&mp[x][y+3]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x][y-2]==1&&mp[x][y-1]==1&&mp[x][y+1]==1&&mp[x][y+2]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x][y-3]==1&&mp[x][y-2]==1&&mp[x][y-1]==1&&mp[x][y+1]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x][y-4]==1&&mp[x][y-3]==1&&mp[x][y-2]==1&&mp[x][y-1]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } //斜'\' if(mp[x+1][y+1]==1&&mp[x+2][y+2]==1&&mp[x+3][y+3]==1&&mp[x+4][y+4]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-1][y-1]==1&&mp[x+1][y+1]==1&&mp[x+2][y+2]==1&&mp[x+3][y+3]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-2][y-2]==1&&mp[x-1][y-1]==1&&mp[x+1][y+1]==1&&mp[x+2][y+2]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-3][y-3]==1&&mp[x-2][y-2]==1&&mp[x-1][y-1]==1&&mp[x+1][y+1]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x-4][y-4]==1&&mp[x-3][y-3]==1&&mp[x-2][y-2]==1&&mp[x-1][y-1]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } //斜'/' if(mp[x-1][y+1]==1&&mp[x-2][y+2]==1&&mp[x-3][y+3]==1&&mp[x-4][y+4]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x+1][y-1]==1&&mp[x-1][y+1]==1&&mp[x-2][y+2]==1&&mp[x-3][y+3]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x+2][y-2]==1&&mp[x+1][y-1]==1&&mp[x-1][y+1]==1&&mp[x-2][y+2]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x+3][y-3]==1&&mp[x+2][y-2]==1&&mp[x+1][y-1]==1&&mp[x-1][y+1]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } if(mp[x+4][y-4]==1&&mp[x+3][y-3]==1&&mp[x+2][y-2]==1&&mp[x+1][y-1]==1) { gotoxy(32,16); cout<<"白棋获胜!"; return 0; } } else if(m%2==1) {//为奇数,该黑棋 cout<<"○"; mp[x][y]=2; //横 if(mp[x+1][y]==2&&mp[x+2][y]==2&&mp[x+3][y]==2&&mp[x+4][y]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-1][y]==2&&mp[x+1][y]==2&&mp[x+2][y]==2&&mp[x+3][y]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-2][y]==2&&mp[x-1][y]==2&&mp[x+1][y]==2&&mp[x+2][y]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-3][y]==2&&mp[x-2][y]==2&&mp[x-1][y]==2&&mp[x+1][y]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-4][y]==2&&mp[x-3][y]==2&&mp[x-2][y]==2&&mp[x-1][y]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } //竖 if(mp[x][y+1]==2&&mp[x][y+2]==2&&mp[x][y+3]==2&&mp[x][y+4]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x][y-1]==2&&mp[x][y+1]==2&&mp[x][y+2]==2&&mp[x][y+3]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x][y-2]==2&&mp[x][y-1]==2&&mp[x][y+1]==2&&mp[x][y+2]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x][y-3]==2&&mp[x][y-2]==2&&mp[x][y-1]==2&&mp[x][y+1]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x][y-4]==2&&mp[x][y-3]==2&&mp[x][y-2]==2&&mp[x][y-1]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } //斜'\' if(mp[x+1][y+1]==2&&mp[x+2][y+2]==2&&mp[x+3][y+3]==2&&mp[x+4][y+4]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-1][y-1]==2&&mp[x+1][y+1]==2&&mp[x+2][y+2]==2&&mp[x+3][y+3]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-2][y-2]==2&&mp[x-1][y-1]==2&&mp[x+1][y+1]==2&&mp[x+2][y+2]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-3][y-3]==2&&mp[x-2][y-2]==2&&mp[x-1][y-1]==2&&mp[x+1][y+1]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x-4][y-4]==2&&mp[x-3][y-3]==2&&mp[x-2][y-2]==2&&mp[x-1][y-1]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } //斜'/' if(mp[x-1][y+1]==2&&mp[x-2][y+2]==2&&mp[x-3][y+3]==2&&mp[x-4][y+4]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x+1][y-1]==2&&mp[x-1][y+1]==2&&mp[x-2][y+2]==2&&mp[x-3][y+3]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x+2][y-2]==2&&mp[x+1][y-1]==2&&mp[x-1][y+1]==2&&mp[x-2][y+2]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x+3][y-3]==2&&mp[x+2][y-2]==2&&mp[x+1][y-1]==2&&mp[x-1][y+1]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } if(mp[x+4][y-4]==2&&mp[x+3][y-3]==2&&mp[x+2][y-2]==2&&mp[x+1][y-1]==2) { gotoxy(32,16); cout<<"黑棋获胜!"; return 0; } } m++;//不要忘记++m } return 0;//这个没什么用了,不过比赛时不要忘记加哦,否则判0分 }
#include "iostream"
#include
using namespace std;
const int M=20;
const int N=20;
int main()
{
char weizhi[M][N];
int k,i,j,x,y,flag=0;
cout<<"欢迎使用简易双人对战五子棋游戏"<
cout<
{
cout<
{
weizhi[i][j]='-';
cout<
cout<
while(flag==0)
{
//红方落子
cout<<"请红方输入落子位置:"<
cout<<"请输入落子的行数:";
cin>>x;
cout<<"请输入落子的列数:";
cin>>y;
if(weizhi[x][y]=='-')
{
weizhi[x][y]='*';
for(k=0;k<=N;k++)
cout<
{
cout<
cout<
}
else
{
cout<<"你不能在这落子,请重新选择落子位置:"<
}
//判断胜利
for(i=1;i<=M-4;i++)
{
for(j=1;j<=N-4;j++)
{
if(weizhi[i][j]=='*' && weizhi[i][j+1]=='*' && weizhi[i][j+2]=='*' && weizhi[i][j+3]=='*' && weizhi[i][j+4]=='*')
{
cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<
break;
}
if(weizhi[i][j]=='*' && weizhi[i+1][j]=='*' && weizhi[i+2][j]=='*' && weizhi[i+3][j]=='*' && weizhi[i+4][j]=='*')
{
cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<
break;
}
if(weizhi[i][j]=='*' && weizhi[i+1][j+1]=='*' && weizhi[i+2][j+2]=='*' && weizhi[i+3][j+3]=='*' && weizhi[i+4][j+4]=='*')
{
cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<
break;
}
if(flag==1)
break;
}
}
//蓝方落子
cout<<"请蓝方输入落子位置:"<
cout<<"请输入落子的行数:";
cin>>x;
cout<<"请输入落子的列数:";
cin>>y;
if(weizhi[x][y]=='-')
{
weizhi[x][y]='#';
for(k=0;k<=N;k++)
cout<
{
cout<
cout<
}
else
{
cout<<"你不能在这落子,请重新选择落子位置:";
goto loop2;
}
//判断胜利
for(i=1;i<=M-4;i++)
{
for(j=1;j<=N-4;j++)
{
if(weizhi[i][j]=='#' && weizhi[i][j+1]=='#' && weizhi[i][j+2]=='#' && weizhi[i][j+3]=='#' && weizhi[i][j+4]=='#')
{
cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<
break;
}
if(weizhi[i][j]=='#' && weizhi[i+1][j]=='#' && weizhi[i+2][j]=='#' && weizhi[i+3][j]=='#' && weizhi[i+4][j]=='#')
{
cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<
break;
}
if(weizhi[i][j]=='#' && weizhi[i+1][j+1]=='#' && weizhi[i+2][j+2]=='#' && weizhi[i+3][j+3]=='#' && weizhi[i+4][j+4]=='#')
{
cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<
break;
}
if(flag==1)
break;
}
}
}
return 0;
}
我运行过,没有错误.
网上下载一个,再改改