30/09/2018, 19:24

Nhờ sửa bài C giúp mình

Mình viết 1 bài C game flappy bird, nhưng khi chạy thì nó bị lỗi như hình dưới:

Còn đây là đoạn code của mình:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

//khai bao function
void taomap();
void hienthimap();
void batdau();
void trongluc();
void ktra();
void chimbay();
void banphim(char button);
void taocot();
void dichuyencot();
void chinhmap();

//khai bao bien
int map[30][20]={0};
int x=15; // vi tri con chim = map[x][3]
int song=1;
int demcot=1;

void chinhmap() {
	
}

void dichuyencot() {
	int i=0, j=0;
	// xac dinh vi tri co cot cu~
	for (i=0;i<21;i++) {
		if (map[28][i]==-2) {
			//xoa vi tri cot cu~ & tao cot moi
			for (j=0;j<29;j++) {
				if (map[j][i] != 1) {
					map[j][i-1]=map[j][i];
					map[j][i]=0;
				}
			}
		}
	}
	// xoa cot khi cot chay het man hinh
	if (map[28][0]==-2) {
		for (i=0;i<29;i++) {
			map[i][0]=0;
		}
	}
}

void chimbay() {
	x=x-4;
}

void taocot() {
	//lay vi tri cho~ trong'
	int meptren=0, mepduoi=0;
	meptren = rand() % 23;
	mepduoi = meptren + 6;
	//thay doi gia tri tren map de tao cot
	int i=0;
	for (i=0;i<meptren+1;i++) {
		map[i][19]=-2;
	}
	for (i=mepduoi+1;i<29;i++) {
		map[i][19]=-2;
	}
}

void banphim(char button) {
	switch (button) {
		case 'q':
			getch();
			break;
		default:
			chimbay();
			break;
	}
}

void ktra() {
	if (map[x][3]==-1 || map[x][3]==-2) {
		song=0;
	}
}

void taomap() {
	int i=0, j=0;
	//tao troi`
	for (j=0;j<31;j++) {
		for (i=0;i<21;i++){
			map[j][i]=0;
		}
	}
	//tao nen` dat'
	for (i=0;i<21;i++) {
		map[29][i]=-1;
		map[30][i]=-1;
	}
	//taochim
	map[x][3]=1;
}

void trongluc(){
	int i=28;
	//xoa' con chim cu~
	for (i=0;i<29;i++) {
		if (map[i][3]==1) {
			map[i][3]=0;
		}
	}
	//xac dinh vi tri moi cua con chim
	x++;
	ktra();
	map[x][3]=1;
}

void hienthimap() {
	int i=0, j=0;
	for (j=0;j<31;j++) {
		for (i=0;i<21;i++){
			switch (map[j][i]) {
				case 1:
					printf("O"); // con chim
				case 0:
					printf(" "); // troi`
					break;
				case -1:
					printf("="); // dat'
					break;
				case -2:
					printf("+"); // cot 
			}
		}
		printf("
");
	}
}

void batdau() {
	song=1; // give a life
	taomap(); // create a new map
	hienthimap(); // draw the map 
	getch();
	// run the game
	while (song==1){
		if (kbhit()) {
			banphim(getch()); //chim bay len o cho~ nay`
		}
		system("cls");
		dichuyencot();
		demcot++;
		if (demcot % 9 == 0) {
			taocot();
		}
		trongluc(); // co kiemtra o cho nay
		chinhmap();
		hienthimap();
		_sleep(500);
	}
}

//
void main() {
	batdau();
}

P/s: ai chỉ mình cách post code lên đây với

Interns viết 21:31 ngày 30/09/2018

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

Cách post code

Lê Tuấn Anh viết 21:33 ngày 30/09/2018

Trong hàm vẽ ra man hình phần switch thiếu break tùm lum kìa

Chung viết 21:28 ngày 30/09/2018

Em cám ơn
Vậy mà cứ ko hiểu sao nó lỗi hoài
Có phần mềm gì giúp tự sửa mấy cái lỗi kiểu này ko nhỉ?

Bài liên quan
0