代码不知道怎么打了,帮我看看吧
(一个纯游戏的,不喜划走)
/*
图例
#——土地
^——sea
.——沙漠
O——首都
R——城市
$——金矿
*/
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
char mp[120][60];
int bh;
int zl[120][60];
int sdx[5][2],sdy[5][2];
int my[5];
bool ch[10];
string p;
int n;
int r;
void mapdownload(int x){
if(x<1||x>3){
cout<<"这不是正确的地图编号!"<<endl;
int r;
cin>>r;
mapdownload(r);
}
if(x==1){
for(int i=1;i<=23;i++){
for(int j=1;j<=46;j++){
mp[i][j]='^';
}
}
for(int i=2;i<=5;i++){
for(int j=3;j<=8;j++){
mp[i][j]='#';
}
}
for(int i=3;i<=17;i++){
for(int j=4;j<=10;j++){
mp[i][j]='#';
}
}
for(int i=20;i<=23;i++){
for(int j=4;j<=7;j++){
mp[i][j]='#';
}
}
for(int i=3;i<=9;i++){
for(int j=3;j<=20;j++){
mp[i][j]='#';
}
}
for(int i=3;i<=9;i++){
for(int j=23;j<=40;j++){
mp[i][j]='#';
}
}
for(int i=17;i<=23;i++){
for(int j=34;j<=46;j++){
mp[i][j]='#';
}
}
for(int i=1;i<=9;i++){
for(int j=2;j<=14;j++){
mp[i][j]='#';
}
}
mp[5][17]='$';
mp[3][19]='$';
mp[6][23]='$';
mp[3][41]='$';
mp[19][32]='$';
mp[24][18]='$';
mp[13][23]='$';
mp[14][38]='$';
mp[4][9]='$';
mp[38][0x0a]='$';
mp[3][15]='$';
mp[4][1]='$';
mp[2][12]='$';
mp[5][1]='$';
mp[2][9]='$';
mp[23][12]='$';
mp[12][23]='$';
mp[4][9]='$';
mp[3][14]='$';
mp[8][0x0a]='$';
}
if(x==2){
for(int i=1;i<=23;i++){
for(int j=1;j<=46;j++){
mp[i][j]='.';
}
}
mp[15][17]='$';
mp[13][19]='$';
mp[2*6][2*3]='$';
mp[3][21]='$';
mp[19][3*2]='$';
mp[2+4][1+8]='$';
mp[1*3][3+4]='$';
mp[45][8]='$';
mp[14][29]='$';
mp[8][10]='$';
mp[13][15]='$';
mp[14][41]='$';
mp[32][2]='$';
mp[15][16]='$';
mp[23][39]='$';
mp[23][2]='$';
mp[12][23]='$';
mp[20][9]='$';
mp[3][4]='$';
mp[8][0x0a]='$';
}
if(x==3){
for(int i=1;i<=23;i++){
for(int j=1;j<=46;j++){
mp[i][j]='#';
}
}
for(int i=5;i<=17;i++){
for(int j=1;j<=46;j++){
mp[i][j]='^';
}
}
mp[15][17]='$';
mp[13][19]='$';
mp[2*6][2*3]='$';
mp[3][21]='$';
mp[19][3*2]='$';
mp[2+4][1+8]='$';
mp[1*3][3+4]='$';
mp[45][8]='$';
mp[14][29]='$';
mp[8][10]='$';
mp[13][15]='$';
mp[14][41]='$';
mp[32][2]='$';
mp[15][16]='$';
mp[23][39]='$';
mp[23][2]='$';
mp[12][23]='$';
mp[20][9]='$';
mp[3][4]='$';
mp[8][0x0a]='$';
}
}
void check(int x,int y,int s){
bool r=false;
for(int i=x-2;i<=x+2;i++){
for(int j=y-2;j<=y+2;j++){
if(zl[i][j]==s){
r=true;
}
}
}
if(r){
cout<<"操作成功!!!"<<endl;
for(int i=x-1;i<=x+1;i++){
for(int j=y-1;j<=y+1;j++){
zl[i][j]=s;
}
}
}else{
cout<<"操作不合法,请再试一遍"<<endl;
int h,l;
cin>>h>>l;
check(h,l,s);
}
}
int main(){
srand(0);
cout<<"载入中……"<<endl;
for(int i=0;i<=15;i++){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),i);
cout<<i<<" ";
}
cout<<endl;
// SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x04);
cout<<"欢迎来到《领土游戏》!请输入参战国人数(1-4):"<<endl;
cin>>n;
cout<<"请输入地图类型:"<<endl;
cout<<"1、大海岛屿"<<endl;
cout<<"2、沙漠地带"<<endl;
cout<<"3、 巨大海峡(适合单挑)"<<endl;
cout<<"请输入地图编号……"<<endl;
cin>>bh;
mapdownload(bh);
/*cout<<"地图载入中……"<<endl ;
int c=1;
if(c==1){
int x1=rand()%22+1;
;
Sleep(500);
int x2=rand()%22+x1;
;
int y1=rand()%45+1;
;
Sleep(500);
int y2=rand()%45+y1;
;
for(int i=x1;i<=x2;i++){
for(int j=y1;j<=y2;j++){
mp[i][j]='^';
}
}//海洋
x1=rand()%22+1;
;
x2=rand()%22+x1;
;
y1=rand()%45+1;
;
y2=rand()%45+y1;
for(int i=x1;i<=x2;i++){
for(int j=y1;j<=y2;j++){
mp[i][j]='.';
}
}//沙漠
for(int i=1;i<=5;i++){
x1=rand()%22+1;
;
y1=rand()%45+1;
;
mp[x1][y1]='$';
}//金矿
for(int i=1;i<=20;i++){
x1=rand()%22+1;
;
y1=rand()%45+1;
;
mp[x1][y1]='%';
}//铁矿
/*for(int i=1;i<=200+1;i++){
x1=rand()%22+1;
;
y1=rand()%45+1;
;
if(mp[x1][y1]!='^') mp[x1][y1]='&';
}//城市
} */
for(int i=1;i<=23;i++){
cout<<" ";
for(int j=1;j<=46;j++){
cout<<mp[i][j];
}
cout<<endl;
}
cout<<"请各国选择首都(输入x,y坐标):"<<endl;
int i=1;
while(i!=n+1){
cout<<i<<":";
cin>>sdx[i][1]>>sdy[i][1];
mp[sdx[i][1]][sdy[i][1]]='O';
zl[sdx[i][1]][sdy[i][1]]=i;
cout<<endl;
ch[i]=true;
i++;
}
cout<<"基础局势打印中……"<<endl;
for(int i=1;i<=23;i++){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout<<" ";
for(int j=1;j<=46;j++){
if(zl[i][j]){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2*zl[i][j]+1);
}
cout<<mp[i][j];
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
}
cout<<endl;
}
cout<<"按任意键+enter继续"<<endl;
string eruuuwreurwio;
cin>>eruuuwreurwio;
int r=n;
while(r>0){
cout<<"时局:"<<endl;
for(int i=1;i<=23;i++){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout<<" ";
for(int j=1;j<=46;j++){
if(!zl[i][j]){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
}else{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2*zl[i][j]+1);
}
cout<<mp[i][j];
}
cout<<endl;
}
for(int i=1;i<=n;i++){
if(!ch[i]){
continue;
}
int cho;
cout<<"请玩家"<<i<<"进行操作:"<<endl;
cout<<"1、扩张"<<endl;
cout<<"2、建设"<<endl;
cout<<"3、割地"<<endl;
cin>>cho;
if(cho==1){
int x,y;
cout<<"请输入扩张区域的x,y边界:"<<endl;
cin>>x>>y;
check(x,y,i);
}
}
}
}