level 11
写程序佳我😄
楼主
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define H 18
#define W 51
int i, j, l = 3, g = 1, f =
2, x1, y1,x[(W - 2) * (H - 2)], y[(W - 2) * (H - 2)];
char kz, map[W][H];
void start();
void draw();
void move();
void control();
void getfood();
void over();
int main() {
LOOP:
start();
while (g == 1) {
usleep(180000);
clrscr();
control();
move();
draw();
} printf("游戏结束!按任意键再来一次!\n");
kz = getch();
goto LOOP;
return 0;
}
void draw() {
for (j = 0; j < H; j++) {
for (i = 0; i < W; i++)
printf("%c", map[i][j]);
printf("\n");
}
printf("得分:%d\n", l - 3);
}
void start() {
l = 3;
g = 1;
f = 2;
for (j = 0; j < H; j++) {
for (i = 0; i < W; i++) {
if (i == 0 || i == W - 1 || j == 0 || j == H - 1)
map[i][j] = '#';
else
map[i][j] = ' ';
}
}
for (i = 0; i <= 2; i++) {
x[i] = W / 2 - i;
y[i] = H / 2;
map[x[i]][y[i]] = '@';
}
getfood();
}
void move() {
for (i = l - 1; i >= 1; i--) {
if (i == l - 1&& x[i] != 0)
map[x[i]][y[i]] = ' ';
x[i] = x[i - 1 ];
y[i] = y[i - 1];
}
if (f == 2)
y[0]--;
else if (f == 8)
y[0]++;
else if (f == 6)
x[0]++;
else if (f == 4)
x[0]--;
if (map[x[0]][y[0]] == 'O') {
getfood();
++l;
}
if (map[x[0]][y[0]] == '#' || map[x[0]][y[0]] == '@') {
g = 0;
}
map[x[0]][y[0]] = '@';
}
void control() {
if (kbhit()) {
kz = getch();
if (kz == '2' && f != 8)
f = 2;
else if (kz == '8' && f != 2)
f = 8;
else if (kz == '6' && f != 4)
f = 6;
else if (kz == '4' && f != 6)
f = 4;
}
}
void getfood() {
do {
x1 = random() % (W - 2) + 1;
y1= random() % (H - 2) + 1;
} while (map[x1][y1] != ' ');
map[x1][y1] = 'O';
}
2015年01月31日 07点01分
1
#include<conio.h>
#include<stdlib.h>
#define H 18
#define W 51
int i, j, l = 3, g = 1, f =
2, x1, y1,x[(W - 2) * (H - 2)], y[(W - 2) * (H - 2)];
char kz, map[W][H];
void start();
void draw();
void move();
void control();
void getfood();
void over();
int main() {
LOOP:
start();
while (g == 1) {
usleep(180000);
clrscr();
control();
move();
draw();
} printf("游戏结束!按任意键再来一次!\n");
kz = getch();
goto LOOP;
return 0;
}
void draw() {
for (j = 0; j < H; j++) {
for (i = 0; i < W; i++)
printf("%c", map[i][j]);
printf("\n");
}
printf("得分:%d\n", l - 3);
}
void start() {
l = 3;
g = 1;
f = 2;
for (j = 0; j < H; j++) {
for (i = 0; i < W; i++) {
if (i == 0 || i == W - 1 || j == 0 || j == H - 1)
map[i][j] = '#';
else
map[i][j] = ' ';
}
}
for (i = 0; i <= 2; i++) {
x[i] = W / 2 - i;
y[i] = H / 2;
map[x[i]][y[i]] = '@';
}
getfood();
}
void move() {
for (i = l - 1; i >= 1; i--) {
if (i == l - 1&& x[i] != 0)
map[x[i]][y[i]] = ' ';
x[i] = x[i - 1 ];
y[i] = y[i - 1];
}
if (f == 2)
y[0]--;
else if (f == 8)
y[0]++;
else if (f == 6)
x[0]++;
else if (f == 4)
x[0]--;
if (map[x[0]][y[0]] == 'O') {
getfood();
++l;
}
if (map[x[0]][y[0]] == '#' || map[x[0]][y[0]] == '@') {
g = 0;
}
map[x[0]][y[0]] = '@';
}
void control() {
if (kbhit()) {
kz = getch();
if (kz == '2' && f != 8)
f = 2;
else if (kz == '8' && f != 2)
f = 8;
else if (kz == '6' && f != 4)
f = 6;
else if (kz == '4' && f != 6)
f = 4;
}
}
void getfood() {
do {
x1 = random() % (W - 2) + 1;
y1= random() % (H - 2) + 1;
} while (map[x1][y1] != ' ');
map[x1][y1] = 'O';
}
