求大佬帮忙把程序改成推箱子
  • 板块灌水区
  • 楼主L2007
  • 当前回复6
  • 已保存回复6
  • 发布时间2021/2/20 16:33
  • 上次更新2023/11/5 02:59:15
查看原帖
求大佬帮忙把程序改成推箱子
244362
L2007楼主2021/2/20 16:33
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<stdio.h>
using namespace std;
int x=1,y=1,z,n,m;
void gotoxy(int x, int y) //定位到第y行的第x列
{
    int xx=0x0b;
    HANDLE hOutput;
    COORD loc;
    loc.X = x;
    loc.Y=y;
    hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOutput, loc);
    return;
}
int main(){
	SMALL_RECT winPon={25,25,155,75};
	HANDLE con=GetStdHandle(STD_OUTPUT_HANDLE);
	COORD buf={131,51};
	SetConsoleWindowInfo(con,1,&winPon);
	SetConsoleScreenBufferSize(con,buf);
	n=20,m=40;
	for(int i=1;i<=n+2;i++){
		if(i==1||i==n+2)
			for(int j=1;j<=m+2;j++)
				printf("o");
		else for(int j=1;j<=m+2;j++){
			if(j==1||j==m+2)printf("o");
			else if(i==j&&i==2)printf("@");
			else printf(" ");
		}
		printf("\n");
	}
	while(1){
		if(_kbhit()){
			z=_getch();
			if(z==65||z==97){
				if(x==1)continue;
				x=x-1;
				gotoxy(x,y);
				printf("@ ");
				for(int i=1;i<n;i++)printf("\n");
			}
			if(z==87||z==119){
				if(y==1)continue;
				y=y-1;
				gotoxy(x,y);
				printf("@\n");
				for(int i=0;i<=x;i++){
					if(i==0)printf("o");
					else printf(" ");
				}
				for(int i=1;i<n;i++)printf("\n");
			}
			if(z==68||z==100){
				if(x==m)continue;
				gotoxy(x,y);
				printf(" @");
				for(int i=1;i<n;i++)printf("\n");
				x=x+1;
			}
			if(z==83||z==115){
				if(y==n)continue;
				gotoxy(x,y);
				printf(" \n");
				for(int i=0;i<x;i++){
					if(i==0)printf("o");
					else printf(" ");
				}
				printf("@");
				for(int i=1;i<n;i++)printf("\n");
				y=y+1;
			}
		}
	}
}
2021/2/20 16:33
加载中...