求大佬改正本蒟蒻吧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函数修改为双缓冲
我的代码疑似有问题……宣