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
Bài liên quan
Cách post code
Trong hàm vẽ ra man hình phần switch thiếu break tùm lum kìa
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ỉ?