自学内容网 自学内容网

又是自编Game

Game人生历程:
【2025.7.4 17:42】代码写成
【2025.7.4 19:26】第一次修改
【2025.7.4 20:50】增加注释,再次修改
【2025.7.4 20:54】修改漏洞
【2025.7.4 21:24】修改了磁铁不能吸引的问题
【2025.7.4 21:28】修改了破坏房屋生成铁矿石的问题

/*
O 人物
W 树,可拾取,k键砍伐变为w
w 木材,可拾取
X 炸弹,可拾取,可破坏W,S和H,但会炸掉U,X和w,八个木材和一个铁合成
U 磁铁,可拾取
H 房屋,炸弹破坏后散落w,X或U
S 铁矿石,需要用镐子挖掘,挖掘后掉落s
s 铁矿
镐子 消耗三个铁矿和两个木材合成
*/
#include<bits/stdc++.h>
#include<conio.h>
//#define int long long
#define psp putchar(' ')
#define endl putchar('\n')
using namespace std;
const int N=1e6+5;
const int M=1e3+5;
int read(){
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+c-'0',c=getchar();
return x*f;
}
void print(int x){
if(x<0)putchar('-'),x=-x;
if(x<10){putchar(x+'0');return;}
print(x/10);
putchar(x%10+'0');
}
int n,m,k;
int T;
//  0
//3 + 1
//  2
int way;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
char a[M][M];
int Wood[M][M];
int Boom[M][M];
int U[M][M];
int House[M][M];
int Steel[M][M];
char reward[6]={'U','X','s','w','w','w'};
int wood;
int boom;
int u;
int s;
int x,y;
int sizes=5;
int Boomnum=50;
int Unum=40;
int Housenum=20;
bool havepick=0;
void move(int way){//移动
int xx=x+dx[way];
int yy=y+dy[way];
if(xx-sizes<1||yy-sizes<1||xx+sizes>n||yy+sizes>n||a[xx][yy]=='W'||a[xx][yy]=='H'||a[xx][yy]=='S')return;
if(a[xx][yy]=='X')boom++;
if(a[xx][yy]=='w')wood++;
if(a[xx][yy]=='U')u++;
if(a[xx][yy]=='s')s++;
a[x][y]='.';
x=xx,y=yy;
a[x][y]='O';
}
void BreakHouse(int xx,int yy){//炸弹破坏房子
for(int i=xx-2;i<=xx+2;i++){
for(int j=yy-2;j<=yy+2;j++){
if(a[i][j]=='.'){
int p=rand()%6;
a[i][j]=reward[p];
}
}
}
a[xx][yy]='.';
}
void XBoom(){//使用炸弹
boom--;
for(int i=x-3;i<=x+3;i++){
for(int j=y-3;j<=y+3;j++){
if(a[i][j]=='w'||a[i][j]=='X'||a[i][j]=='U')a[i][j]='.';
if(a[i][j]=='W')a[i][j]='w';
if(a[i][j]=='H')BreakHouse(i,j);
if(a[i][j]=='s')a[i][j]='.';
if(a[i][j]=='S')a[i][j]='s';
}
}
}
void Uattract(){//使用磁铁
u--;
for(int i=x-3;i<=x+3;i++){
for(int j=y-3;j<=y+3;j++){
if(a[i][j]=='w')a[i][j]='.',wood++;
if(a[i][j]=='s')a[i][j]='.',s++;
if(a[i][j]=='U')a[i][j]='.',u++;
if(a[i][j]=='X')a[i][j]='.',boom++;
}
}
}
void Synthesis(){//合成
cout<<"What do yo want to synthesis?\n1.X\n2.Pickaxe\n";
int choice;
cin>>choice;
if(choice==1){
if(wood>=8&&s){
wood-=8;
s--;
boom++;
}
}
else if(choice==2){
if(wood>=2&&s>=3&&!havepick){
wood-=2;
s-=3;
havepick=1;
}
}
}
signed main(){
srand(time(0));
n=500;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[i][j]='.';
}
}
x=(rand()-1)%n+1;
y=(rand()-1)%n+1;
for(int i=1;i<=3*n;i++){//初始化树
while(Wood[x][y]||(x==n/2&&y==n/2)){
x=(rand()-1)%n+1;
y=(rand()-1)%n+1;
}
Wood[x][y]=1;
a[x][y]='W';
}
for(int i=1;i<=2*n;i++){//初始化铁
while(Wood[x][y]||Steel[x][y]||(x==n/2&&y==n/2)){
x=(rand()-1)%n+1;
y=(rand()-1)%n+1;
}
Steel[x][y]=1;
a[x][y]='S';
}
for(int i=1;i<=Boomnum;i++){//初始化炸弹
while(Steel[x][y]||Wood[x][y]||Boom[x][y]||(x==n/2&&y==n/2)){
x=(rand()-1)%n+1;
y=(rand()-1)%n+1;
}
Boom[x][y]=1;
a[x][y]='X';
}
for(int i=1;i<=Unum;i++){//初始化磁铁
while(Steel[x][y]||U[x][y]||Boom[x][y]||(x==n/2&&y==n/2)){
x=(rand()-1)%n+1;
y=(rand()-1)%n+1;
}
U[x][y]=1;
a[x][y]='U';
}
for(int i=1;i<=Housenum;i++){//初始化房子
while(Steel[x][y]||House[x][y]||U[x][y]||Boom[x][y]||(x==n/2&&y==n/2)){
x=(rand()-1)%n+1;
y=(rand()-1)%n+1;
}
House[x][y]=1;
a[x][y]='H';
}
x=n/2,y=n/2;
a[x][y]='O';
while(1){
system("cls");
cout<<"Wood:  "<<wood<<"    Boom:  "<<boom<<"    U:  "<<u<<"    Steel:  "<<s<<'\n';
string haveornot=havepick?"have pickaxe":"don't have pickaxe";
cout<<haveornot<<'\n';
cout<<"x: "<<x<<"  y: "<<y<<'\n';
for(int i=x-sizes;i<=x+sizes;i++){
for(int j=y-sizes;j<=y+sizes;j++){
cout<<a[i][j];
}
cout<<'\n';
}
char op;
op=getch();
if(op=='w'){
way=0;
move(way);
}
else if(op=='d'){
way=1;
move(way);
}
else if(op=='s'){
way=2;
move(way);
}
else if(op=='a'){
way=3;
move(way);
}
else if(op=='k'){
int xx=x+dx[way];
int yy=y+dy[way];
if(a[xx][yy]=='W')a[xx][yy]='w';
if(a[xx][yy]=='S'&&havepick)a[xx][yy]='s';
}
else if(op=='x'){
if(!boom)continue;
XBoom();
}
else if(op=='u'){
if(!u)continue;
Uattract();
}
else if(op=='S'){
Synthesis();
}
}
}


原文地址:https://blog.csdn.net/STY_fish_2012/article/details/149122093

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!