求大佬改正本蒟蒻吧Mc代码(ZS)
  • 板块灌水区
  • 楼主hzy_2012
  • 当前回复6
  • 已保存回复6
  • 发布时间2025/2/6 22:37
  • 上次更新2025/2/7 09:42:05
查看原帖
求大佬改正本蒟蒻吧Mc代码(ZS)
1430140
hzy_2012楼主2025/2/6 22:37

求大佬改正本蒟蒻吧Mc代码

#include<bits/stdc++.h>
#include<windows.h>

#define key_down(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;

struct item {
	int Mining_level;      // 挖掘等级
	bool should_it_be_placed; // 是否放置
	int d;                 // 底
	int top;               // 顶(修正重复的d)
	int col;
	int hurt;              // 伤害
	int _buff;
	int bh;                // 方块ID
};

item it[1000];
item mp[200000][256];
int h = 64; // 基础高度
int buff[10];
int direction;            // 方向
int mp_pointer_x=100000;
int mp_pointer_y ;
int r_x=10000,r_y;
int MyWorld_Seeds;
int jd;                   // 加载进度
bool  shift,t,ESC,F_3,kg,ww,ss;
void col(int BackC,int ForgC) {//渲染
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
int Keyboard_pointer_1() {
	if(key_down(16)) shift=1;//shift
	if(key_down(84)) t=1;//t
	if(key_down(27)) ESC=1;//ESC
	if(key_down(114))F_3=1;//F3
	return 0;
}
int  Keyboard_pointer_2() {
	if(key_down(49)) return 1;//1
	if(key_down(50)) return 2;//2
	if(key_down(51)) return 3;//3
	if(key_down(52)) return 4;//4
	if(key_down(53)) return 5;//5
	if(key_down(54)) return 6;//6
	if(key_down(55)) return 7;//7
	if(key_down(56)) return 8;//8
	if(key_down(57)) return 9;//9
	return 0;
}
int Keyboard_pointer_3() {
	if(key_down(VK_LBUTTON)) return 5;//左键
	if(key_down(VK_RBUTTON)) return 6;//右键
}
int Keyboard_pointer_4() {
	if(key_down(32)) kg=1;//空格
	if(key_down(87)) ww=1;//w
	if(key_down(83)) ss=1;//s
}
void command(string s) {
	vector<string> cmd;
	int j;
	for(int i=1; i<s.size(); i++) {
		if(s[i]==' ') {
			cmd.push_back("");
			j++;
		} else {
			cmd[j]+=s[i];
		}
	}
}

void Worldloadingmodel_Mainworld() {
	int cnt=0;
	for(int i=0; i<200000; i++) {
		int dx = h + rand()%10 - 2; // 随机地形起伏
		h+=rand()%10 - 2;
		int ran=rand()%3;
		for(int j=0; j<256; j++) {
			if(j > dx + 3) {
				mp[i][j].bh = 0;       // 空气
			} else if(j == dx) {
				mp[i][j].bh = 3;       // 草方块
			} else if(j > dx -ran ) {
				mp[i][j].bh = 2;       // 泥土
			} else {
				mp[i][j].bh = 1;       // 石头
			}
		}
		if(i%2000 == 0) {
			cnt++;
			system("cls");
			cout << "Loading... " <<cnt<< "%" << endl;
		}
		while(mp[100000][r_y].bh !=0) {
			r_y--;
		}
		mp_pointer_y=r_y-11;
		mp_pointer_x=r_x-21;
	}
}

void print() {
	system("cls");
	for(int i=mp_pointer_x; i<mp_pointer_y+22; i++) {
		for(int j=mp_pointer_y; j<mp_pointer_y+51; j++) {
			if(i==mp_pointer_x+11 && j==mp_pointer_y+21) cout<<'[';
			else if(i==mp_pointer_x+11 && j==mp_pointer_y+22)cout<<']';
			else switch(mp[i][j].bh) {
					case 0:
						cout << " ";
						break;
					case 1:  // 石头
						col(0, 8);
						cout << "#";
						break;
					case 2:  // 泥土
						col(0, 6);
						cout << "%";
						break;
					case 3:  // 草方块
						col(0, 2);
						cout << "@";
						break;
				}
			col(0, 7); // 重置颜色
		}
		cout << endl;
	}
}

int main() {
	system("mode con cols=51 lines=22");
	srand(time(0));
	Worldloadingmodel_Mainworld();
	print();
	return 0;
}

以上为我的我的世界C++代码(不完整),求大佬改正其中的错误,并且为print函数修改为双缓冲
我的代码疑似有问题……

2025/2/6 22:37
加载中...