-
个人简介
坚持到昨天,叫立足;坚持到今天,叫进取;坚持到明天,叫成功!
该用户不懒,但这里什么也没写以下是中国象棋和五子棋代码(纯手搓)(建议用dev-c++进行游玩)
玩法都是输入坐标,每个数字之间用空格隔开, 先输入第几行在输入第几列 其中,象棋先输入目标棋子坐标,在输入要到达的位置的坐标:
象棋代码:
```cpp #include<bits/stdc++.h> using namespace std; vector<vector<string>> qp(11,vector<string>(10,"*")); bool RH=0,BH=0,now=1; void XQ(int x,int y,int x2,int y2){ if(qp[x2][y2]=="H"){ BH=true; } if(qp[x2][y2]=="h"){ RH=true; } if(x==5||x==6){ qp[x2][y2]=qp[x][y]; qp[x][y]="="; return; } if(x==4||x==7){ if(y%2==1){ qp[x2][y2]=qp[x][y]; qp[x][y]="+"; return; } } if(x==3||x==8){ if(y==2||y==8){ qp[x2][y2]=qp[x][y]; qp[x][y]="+"; return; } } qp[x2][y2]=qp[x][y]; qp[x][y]="*"; } //判断超界 bool chaojie(int x2,int y2,int x,int y) { if(x2>10||y2>9||x2<1||y2<1) { //如果超界 return true; } if(qp[x][y]=="H"||qp[x][y]=="S") {//如果黑方??/??超界 if(x2>3||y2<4||y2>6) { return true; } } if(qp[x][y]=="h"||qp[x][y]=="s") {//如果红方??/??超界 if(x2<8||y2<4||y2>6) { return true; } } if(qp[x][y]=="X"){ if(x2>5){ return true; } } return false;//否则 } void C_qp(){ system("cls"); for(int i=0;i<=10;++i){ for(int j=0;j<=9;++j){ if(i==0){ if(j==0){ cout<<" "<<0; continue; } cout<<j<<" "; continue; } if(j==0){ if(i<=9){ cout<<" "; } cout<<i; continue; } cout<<qp[i][j]; if(i!=5&&i!=6){ cout<<" "; }else{ if(j!=9) cout<<"="; } } cout<<endl; } } //判断??否是黑??? bool pdbj(int x,int y){ if(qp[x][y][0]-'A'>=0&&qp[x][y][0]-'A'<=25){ return 1; }else{ return 0; } } //判断??不是红??? bool pdrj(int x,int y){ if(qp[x][y][0]-'a'>=0&&qp[x][y][0]-'a'<=25){ return 1; }else{ return 0; } } //判断???? bool pd_h(int x,int y,int x2,int y2,int c){ if(y<y2){ int ans=0; for(int i=y+1;i<y2;++i){ if(pdbj(x,i)||pdrj(x,i)){ ans++; } } if(ans==c){ return true; }else{ return false; } }else if(y>y2){ int ans=0; for(int i=y-1;i>y2;--i){ if(pdbj(x,i)||pdrj(x,i)){ ans++; } } if(ans==c){ return true; }else{ return false; } } return false; } //判断纵向 bool pdz(int x,int y,int x2,int y2,int c){ if(x<x2){//如果??纵向 int ans=0; for(int i=x+1;i<x2;++i){ if(pdbj(i,y)||pdrj(i,y)){ ans++; } } if(ans==c){ return true; }else{ return false; } }else if(x>x2){ int ans=0; for(int i=x-1;i>x2;--i){ if(pdbj(i,y)||pdrj(i,y)){ ans++; } } if(ans==c){ return true; }else{ return false; } } return false; } bool pd(int x,int y,int x2,int y2){ if(now!=pdrj(x,y)){ return false; } if(qp[x2][y2]!="*"&&qp[x2][y2]!="+"&&qp[x2][y2]!="="){ if((now && !pdbj(x2,y2)) || (!now && pdbj(x2,y2))) { return false; // 自相残杀 } } //炮 if(qp[x][y]=="q"||qp[x][y]=="P"){ //横竖 if(x!=x2&&y!=y2){ return false; } //如果目标是敌方 if(pdbj(x2,y2)||pdrj(x2,y2)){ //如果是横向? if(x==x2){ if(pd_h(x,y,x2,y2,1)){ return true; }else{ return false; } }else if(y==y2){ //如果是纵向 if(pdz(x,y,x2,y2,1)){ return true; }else{ return false; } } }else{ //单纯移动 //如果是横向? if(x==x2){ if(pd_h(x,y,x2,y2,0)){ return true; }else{ return false; } }else{ //如果是纵向 if(pdz(x,y,x2,y2,0)){ return true; }else{ return false; } } } } //车 if(qp[x][y]=="j"||qp[x][y]=="J"){ //横竖 if(x!=x2&&y!=y2){ return false; } //如果目标是敌人 if(pdbj(x2,y2)||pdrj(x2,y2)){ //如果是横向? if(x==x2){ if(pd_h(x,y,x2,y2,1)){ return true; }else{ return false; } }else{ //如果是纵向 if(pdz(x,y,x2,y2,0)){ return true; }else{ return false; } } }else{ //单纯移动 if(y==y2){ if(pdz(x,y,x2,y2,0)){ return true; }else{ return false; } }else if(x==x2){ if(pd_h(x,y,x2,y2,0)){ return true; }else{ return false; } } } } //兵 if(qp[x][y]=="b") { if(x-x2==1&&y2==y){//如果向上走一格,合法 return true; } if(x2==x&&abs(y2-y)==1&&x<=5){//如果左右走一格,并且过了河,合法 return true; } }else if(qp[x][y]=="B"){ if(x2-x==1&&y2==y){//如果向下走一格,合法 return true; } if(x2==x&&abs(y2-y)==1&&x>=6){//如果左右走一格,并且过了河,合法 return true; } } //马 if(qp[x][y]=="m"||qp[x][y]=="M"){ if(y>y2){ if(y-y2>2){ return false; } if(x-x2==2&&y-y2==1&&!(pdbj(x-1,y)||pdrj(x-1,y))){ return true; } if(x-x2==1&&y-y2==2&&!(pdbj(x,y-1)||pdrj(x,y-1))){ return true; } if(x2-x==1&&y-y2==2&&!(pdbj(x,y-1)||pdrj(x,y-1))){ return true; } if(x2-x==2&&y-y2==1&&!(pdbj(x+1,y)||pdrj(x+1,y))){ return true; } }else if(y2>y){ if(y2-y==1&&x-x2==2&&!(pdbj(x-1,y)||pdrj(x-1,y))){ return true; } if(y2-y==2&&x-x2==1&&!(pdbj(x,y+1)||pdrj(x,y+1))){ return true; } if(x2-x==1&&y2-y==2&&!(pdbj(x,y+1)||pdrj(x,y+1))){ return true; } if(y2-y==1&&x2-x==2&&!(pdbj(x+1,y)||pdrj(x+1,y))){ return true; } } } //像 if(qp[x][y]=="x"||qp[x][y]=="X"){ if(y2>y){ if(y2-y==2&&x-x2==2&&!(pdbj(x-1,y+1)||pdrj(x-1,y+1))){ return true; } if(y2-y==2&&x2-x==2&&!(pdbj(x+1,y+1)||pdrj(x+1,y+1))){ return true; } }else if(y>y2){ if(x-x2==2&&y-y2==2&&!(pdbj(x-1,y-1)||pdrj(x-1,y-1))){ return true; } if(x2-x==2&&y-y2==2&&!(pdbj(x+1,y-1)||pdrj(x+1,y-1))){ return true; } } } //士 if(qp[x][y]=="s"||qp[x][y]=="S"){ if(y>y2){ if(y-y2==1&&x-x2==1){ return true; } if(y-y2==1&&x2-x==1){ return true; } }else{ if(y2-y==1&&x-x2==1){ return true; } if(y2-y==1&&x2-x==1){ return true; } } } //帅 if(qp[x][y]=="h"||qp[x][y]=="H") { if(abs(x2-x)==1&&y2==y){//如果直走一步,合法 return true; } if(abs(y2-y)==1&&x2==x){//如果直走一步,合法 return true; } } return false; } void R_z(); void H_z(){ if(BH){ system("cls"); cout<<"红方胜利!"; return; } now=0; cout<<"黑方行棋:"; int x,y,x2,y2; cin>>x>>y>>x2>>y2; if( (!(qp[x][y][0]-'A'<=25&&qp[x][y][0]-'A'>=0)) || (chaojie(x2,y2,x,y)) || (!pd(x,y,x2,y2)) ){ cout<<"行棋错误!"; sleep(1); C_qp(); cout<<"黑方行棋:"; cin>>x>>y; while( (!(qp[x][y][0]-'A'<=25&&qp[x][y][0]-'A'>=0)) || (chaojie(x2,y2,x,y)) || (!pd(x,y,x2,y2)) ){ cout<<"行棋错误!"; sleep(1); C_qp(); cout<<"黑方行棋:"; cin>>x>>y>>x2>>y2; } } XQ(x,y,x2,y2); if(RH){ system("cls"); cout<<"黑方胜利!"; return; } C_qp(); R_z(); } void R_z(){ if(RH){ system("cls"); cout<<"黑方胜利!"; return; } now=true; cout<<"红方行棋:"; int x,y,x2,y2; cin>>x>>y>>x2>>y2; if(!(qp[x][y][0]-'a'<=25&&qp[x][y][0]-'a'>=0)||(chaojie(x2,y2,x,y))||(!pd(x,y,x2,y2))){ cout<<"行棋错误!"; sleep(1); C_qp(); cout<<"红方行棋:"; cin>>x>>y>>x2>>y2; while(!(qp[x][y][0]-'a'<=25&&qp[x][y][0]-'a'>=0)||(chaojie(x2,y2,x,y))||(!pd(x,y,x2,y2))){ cout<<"行棋错误!"; sleep(1); C_qp(); cout<<"红方行棋:"; cin>>x>>y>>x2>>y2; } } XQ(x,y,x2,y2); if(BH){ system("cls"); cout<<"红方胜利!"; return; } C_qp(); H_z(); } void CSH(){ for(int i=1;i<=10;++i){ for(int j=1;j<=9;++j){ if(i==3||i==8){ if(j==2||j==8){ qp[i][j]="+"; continue; } } if(i==4||i==7){ if(j%2==1){ qp[i][j]="+"; continue; } } if(i==5||i==6){ qp[i][j]="="; continue; } } } qp[4]={"","B","*","B","*","B","*","B","*","B"},qp[7]={"","b","*","b","*","b","*","b","*","b"}; qp[1]={"","J","M","X","S","H","S","X","M","J"},qp[3][8]="P",qp[3][2]="P",qp[10]={"","j","m","x","s","h","s","x","m","j"},qp[8][8]=qp[8][2]="q"; C_qp(); } int main(){ CSH(); C_qp(); H_z(); }五子棋代码:
```cpp #include<bits/stdc++.h> using namespace std; vector<vector<char>> qp(20,vector<char>(20,'+')); int cot=0; bool pd_qp(){ if(cot==(19*19)){ system("cls"); cout<<"没有位置啦,平局!"; return true; }else{ return false; } } bool pd_H(){ long long H=0,Hm=0,H2=0,H2m=0,H3=0,H3m=0,H4=0,H4m=0; for(int i=1;i<=19;++i){ for(int j=1;j<=19;++j){ if(qp[i][j]=='@'){ H++; }else{ Hm=max(Hm,H); H=0; } if(qp[j][i]=='@'){ H2++; }else{ H2m=max(H2m,H2); H2=0; } int x,y; if(i>=j){ y=1; x=i-j+1; }else{ x=1; y=j-i+1; } for(;x<=19&&y<=19;++x,++y){ if(qp[x][y]=='@'){ H3++; }else{ H3m=max(H3m,H3); H3=0; } } if(i-1<=19-j){ x=1; y=j+(i-1); }else{ y=19; x=i-(19-j); } for(;x<=19&&y>=1;++x,--y){ if(qp[x][y]=='@'){ H4++; }else{ H4m=max(H4m,H4); H4=0; } } } } // cout<<Hm<<" "<<H2m<<" "<<H3m<<" "<<H4<<endl; if(Hm>=5||H2m>=5||H3m>=5||H4m>=5){ return true; } return false; } bool pd_B(){ long long H=0,H2=0,H3=0,H4=0; for(int i=1;i<=19;++i){ for(int j=1;j<=19;++j){ if(qp[i][j]=='O'){ H++; if(H==5){ return true; } }else{ H=0; } if(qp[j][i]=='O'){ H2++; if(H2==5){ return true; } }else{ H2=0; } int x,y; if(i>=j){ y=1; x=i-j+1; }else{ x=1; y=j-i+1; } for(;x<=19&&y<=19;++x,++y){ if(qp[x][y]=='O'){ H3++; if(H3==5){ return true; } }else{ H3=0; } } if(i-1<=19-j){ x=1; y=j+(i-1); }else{ y=19; x=i-(19-j); } for(;x<=19&&y>=1;++x,--y){ if(qp[x][y]=='O'){ H4++; if(H4==5){ return true; } }else{ H4=0; } } } } return false; } void C_qp(){ system("cls"); for(int i=0;i<=19;++i){ for(int j=0;j<=19;++j){ if(j==0){ if(i<=9){ cout<<' '; } if(i==0){ continue; } cout<<i; continue; } if(i==0){ if(j<=9){ cout<<' '; } cout<<j; continue; } cout<<qp[i][j]<<" "; } cout<<"\n"; } } void B_z(); void H_z(){ cout<<"黑棋落子:"; long long x,y; cin>>x>>y; if(qp[x][y]=='+'){ qp[x][y]='@'; cot++; C_qp(); }else{ cout<<"\n("<<x<<","<<y<<")已有棋!"; sleep(1); C_qp(); cout<<"黑棋落子:"; cin>>x>>y; while(qp[x][y]!='+'){ cout<<"\n("<<x<<","<<y<<")已有棋!"; sleep(1); C_qp(); cout<<"黑棋落子:"; cin>>x>>y; } qp[x][y]='@'; C_qp(); } if(pd_H()){ system("cls"); cout<<"黑棋胜利!"; return; }else{ if(pd_qp()){ return; } B_z(); } } void B_z(){ cout<<"白棋落子:"; long long x,y; cin>>x>>y; if(qp[x][y]=='+'){ cot++; qp[x][y]='O'; C_qp(); }else{ cout<<"\n("<<x<<","<<y<<")已有棋!"; sleep(1); C_qp(); cout<<"白棋落子:"; cin>>x>>y; while(qp[x][y]!='+'){ cout<<"\n("<<x<<","<<y<<")已有棋!"; sleep(1); C_qp(); cout<<"白棋落子:"; cin>>x>>y; } qp[x][y]='O'; C_qp(); } if(pd_B()){ system("cls"); cout<<"白棋胜利!"; return; }else{ if(pd_qp()){ return; } H_z(); } } int main(){ C_qp(); H_z(); } -
最近活动
- 2025OiClass入门组周赛计划#04 OI
- 2025OiClass入门组周赛计划#03 OI
- 2025oiClass入门组周赛计划#02 OI
- 2025oiClass入门组周赛计划#01 OI
- 2025 CSP-J1初赛模拟测试10 OI
- 2025 CSP-J1初赛模拟测试7 OI
- 2025 CSP-J1初赛模拟测试6 OI
- 2025 CSP-J1初赛模拟测试4 OI
- 2025 CSP-J1初赛模拟测试3 OI
- 2025 CSP-J1初赛模拟测试2 OI
- 2025 CSP-J1初赛模拟测试1 OI
- 第六届oiclass信息学夏令营---巩固练习3 IOI(严格)
- 第六届oiclass信息学夏令营---巩固练习2 IOI(严格)
- 第六届oiclass信息学夏令营---巩固练习1 IOI(严格)
- 第六届oiclass信息学夏令营-正式线上选拔赛3 OI
- 第六届oiclass信息学夏令营-正式线上选拔赛2 OI
- 第六届oiclass信息学夏令营-正式线上选拔赛1 IOI(严格)
- 第六届oiclass信息学夏令营-模拟测试2 IOI(严格)
- 第六届oiclass信息学夏令营-模拟测试1(订题) 作业
- 第六届oiclass信息学夏令营Class10-一维数组进阶 作业
- 第六届oiclass信息学夏令营Class9-一维数组的定义和基础应用 作业
- 第六届oiclass信息学夏令营Class8-循环嵌套 作业
- 第六届oiclass信息学夏令营Class7-循环结构-while语句 作业
- 第六届oiclass信息学夏令营Class6-循环结构-for语句进阶 作业
- 第六届oiclass信息学夏令营Class5-循环结构-for语句基础 作业
- 第六届oiclass信息学夏令营Class4作业-多分支结构-if语句 作业
- 第六届oiclass信息学夏令营Class3作业-if语句 作业
- 第六届oiclass信息学夏令营Class2作业-表达式 作业
- 【oiClass公益赛】2025CSP-J模拟赛#17 OI
- 【oiClass公益赛】2025CSP-J模拟赛#16 OI
- 【oiClass公益赛】2025CSP-J模拟赛#15 OI
- 【oiClass公益赛】2025CSP-J模拟赛#14 OI
- 【oiClass公益赛】2025CSP-J模拟赛#13 OI
- 【oiClass公益赛】2025CSP-J模拟赛#12 OI
- 【oiClass公益赛】2025CSP-J模拟赛#11 OI
- 【oiClass公益赛】2025CSP-J模拟赛#10 OI
- 【oiClass公益赛】2025CSP-J模拟赛#09 OI
- 【oiClass公益赛】2025CSP-J模拟赛#08 OI
- 【oiClass公益赛】2025CSP-J模拟赛#07 OI
- 【oiClass公益赛】2025CSP-J模拟赛#06 OI
- 【oiClass公益赛】2025CSP-J模拟赛#05 OI
- 【oiClass公益赛】2025CSP-J模拟赛#04 OI
- 【oiClass公益赛】2025CSP-J模拟赛#03 OI
- 【oiClass公益赛】2025CSP-J模拟赛#02 OI
- 【oiClass公益赛】2025CSP-J模拟赛#01 OI
- 2024oiClass入门组周赛计划#18 IOI
- 2024oiClass入门组周赛计划#17 IOI
- 2024oiClass入门组周赛计划#16 IOI
- 2024oiClass入门组周赛计划#15 IOI
- 2024oiClass入门组周赛计划#14 IOI
- 2024oiClass入门组周赛计划#13 IOI
- 2024oiClass入门组周赛计划#12 IOI
- 2024oiClass入门组周赛计划#11 IOI
- 2024oiClass入门组周赛计划#10 IOI
- 2024oiClass入门组周赛计划#09 IOI
- 2024oiClass入门组周赛计划#08 IOI
- 2024oiClass入门组周赛计划#07 IOI
- 2024oiClass入门组周赛计划#06 IOI
- 2024oiClass入门组周赛计划#05 IOI
- 2024oiClass入门组周赛计划#04 IOI
- 2024oiClass入门组周赛计划#03 IOI
- 2024oiClass入门组周赛计划#02 IOI
- 2024oiClass入门组周赛计划#01 IOI
- 第五届oiClass信息学夏令营线上正式邀请赛3 OI
- 第五届oiClass信息学夏令营线上正式邀请赛2 OI
- 第五届oiClass信息学夏令营线上正式邀请赛1 OI
- 第五届oiClass信息学夏令营线上模拟测试1 OI
- 2025铁一集团新苗复习-for循环专题练习2 作业
- 第五届oiClass信息学夏令营day7作业-for循环专题练习1 作业
- 第五届oiClass信息学夏令营线上模拟测试4 OI
- 第五届oiClass信息学夏令营day21作业-二维数组和二维字符数组 作业
- 第五届oiClass信息学夏令营day20作业-二维数组基础 作业
- 第五届oiClass信息学夏令营day19作业-数组与递推算法 作业
- 第五届oiClass信息学夏令营day18作业-普通排序和桶排序 作业
- 第五届oiClass信息学夏令营day17作业-数组标记的应用 作业
- 第五届oiClass信息学夏令营线上模拟测试3 OI
- 第五届oiClass信息学夏令营day15作业-字符、字符数组和字符串 作业
- 第五届oiClass信息学夏令营day14作业-一维数组基础 作业
- 第五届oiClass信息学夏令营day13作业-循环专题练习 作业
- 第五届oiClass信息学夏令营day12作业-多重循环 作业
- 第五届oiClass信息学夏令营day11作业-while2 作业
- 第五届oiClass信息学夏令营day10作业-while1 作业
- 第五届oiClass信息学夏令营线上模拟测试2 OI
- 第五届oiClass信息学夏令营day5作业-for语句2 作业
- 第五届oiClass信息学夏令营day4作业-for语句1 作业
- 第五届oiClass信息学夏令营day3作业-if语句 作业
- 第五届oiClass信息学夏令营day2作业-表达式 作业
- 第五届oiClass信息学夏令营day1作业-C++程序结构 作业
- 第五届oiClass信息学夏令营day22作业-结构体和函数 作业
- 夏令营模拟测试-04 OI
- 夏令营模拟测试-03 OI
- 新初一夏令营day12作业-一维数组3 作业
- 新初一夏令营day11作业-一维数组2 作业
- 新初一夏令营day10作业-一维数组1 作业
- 夏令营day18作业-一维数组3 作业
- 2023年第四届oiClass夏令营线上选拔赛 OI
- 夏令营day17作业-一维数组2 作业
- 新初一夏令营day9作业-多重循环 作业
- 夏令营day16作业-一维数组1 作业
- 新初一夏令营day6作业-for语句3 作业
- 夏令营第二周模拟测试 OI
- 新初一夏令营day5作业-for语句2 作业
- 夏令营day12作业-多重循环 作业
- 夏令营day9作业-for语句综合练习 作业
- 第五届oiClass信息学夏令营day6作业-for语句3 作业
- 夏令营第一周模拟测试 OI
- 夏令营day5作业-for语句2 作业
- 夏令营day4作业-for语句1 作业
- 夏令营day3作业-if语句 作业
- 夏令营day2作业-表达式 作业
- 夏令营day1作业-C++程序结构 作业
- 2022TYSC线下选拔赛 IOI
- 2022TYSC线上选拔赛 OI
- 2022TYSC模拟测试04 OI
- 2022TYSC模拟测试03 OI
- 2022TYSC模拟测试02 IOI
- 2022TYSC模拟测试01 IOI
- 爆踩 ckj 信心赛 OI
-
Stat
-
Rating