Skip to content

Commit 86ec2ab

Browse files
committed
Fix Old Code(May have broken change)
1 parent 9b6a98d commit 86ec2ab

22 files changed

Lines changed: 1472 additions & 1662 deletions

c/Snake/clear_version/GlobalVar.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ int n = 3; // The length of snake body (without head)
1919
int i, j;
2020
signed char direction = 1; // 1.Right;2.Up;-1.Left;-2.Down;0.Exit
2121
signed char directiontemp = 1; // 1.Right;2.Up;-1.Left;-2.Down;0.Exit
22-
int delay = 200; // delay 0.2s(200ms)
22+
int delay = 200; // delay 0.2s(200ms)
2323
bool isPause = 0;
2424
#endif /* _GLOBALVAR_H */

c/Snake/clear_version/KeyMonitor.h

Lines changed: 63 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,19 @@
88
#include <processthreadsapi.h>
99
#include <windows.h>
1010

11-
1211
#define KeyMonitor_Starter() \
13-
HANDLE hThread1 = CreateThread(NULL, 0, KeyMonitor, NULL, 0, NULL)
12+
HANDLE hThread1 = CreateThread(NULL, 0, KeyMonitor, NULL, 0, NULL)
1413
#define KeyMonitor_Stoper() CloseHandle(hThread1);
1514
#elif defined(__linux__) || defined(__gnu_linux__)
1615
#include <pthread.h>
1716
#include <unistd.h>
1817
#define KeyMonitor_Starter() \
19-
system("stty -icanon"); \
20-
pthread_attr_t attr; \
21-
pthread_t tid; \
22-
pthread_attr_init(&attr); \
23-
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); \
24-
pthread_create(&tid, &attr, KeyMonitor, NULL);
18+
system("stty -icanon"); \
19+
pthread_attr_t attr; \
20+
pthread_t tid; \
21+
pthread_attr_init(&attr); \
22+
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); \
23+
pthread_create(&tid, &attr, KeyMonitor, NULL);
2524
#define KeyMonitor_Stoper() pthread_join(tid, NULL);
2625
#elif defined(__APPLE__)
2726
#endif
@@ -35,76 +34,71 @@ void *
3534
#endif
3635
KeyMonitor(void *arg) // Direction Control:w,s,a,d-->Up Down Left Right
3736
{
38-
char k;
39-
while (1)
40-
{
37+
char k;
38+
while (1) {
4139
#if defined(_WIN16) || defined(_WIN32) || defined(_WIN64)
42-
k = _getch();
40+
k = _getch();
4341
#elif defined(__linux__) || defined(__gnu_linux__)
44-
k = getchar();
42+
k = getchar();
4543
#elif defined(__APPLE__)
4644
#endif
47-
switch (k)
48-
{
49-
case 'w': // Up
50-
{
51-
directiontemp = 2;
52-
break;
53-
}
54-
case 's': // Down
55-
{
56-
directiontemp = -2;
57-
break;
58-
}
59-
case 'a': // Left
60-
{
61-
directiontemp = -1;
62-
break;
63-
}
64-
case 'd': // Right
65-
{
66-
directiontemp = 1;
67-
break;
68-
}
69-
case 'j': // SpeedUp
70-
{
71-
delay = delay * 4 / 5;
72-
break;
73-
}
74-
case 'k': // SpeedDown
75-
{
76-
delay = delay * 5 / 4;
77-
break;
78-
}
79-
case 27: // ESC
80-
{
81-
printf("\nExit!\n");
82-
isPause = 0;
83-
direction = 0;
84-
directiontemp = 0;
45+
switch (k) {
46+
case 'w': // Up
47+
{
48+
directiontemp = 2;
49+
break;
50+
}
51+
case 's': // Down
52+
{
53+
directiontemp = -2;
54+
break;
55+
}
56+
case 'a': // Left
57+
{
58+
directiontemp = -1;
59+
break;
60+
}
61+
case 'd': // Right
62+
{
63+
directiontemp = 1;
64+
break;
65+
}
66+
case 'j': // SpeedUp
67+
{
68+
delay = delay * 4 / 5;
69+
break;
70+
}
71+
case 'k': // SpeedDown
72+
{
73+
delay = delay * 5 / 4;
74+
break;
75+
}
76+
case 27: // ESC
77+
{
78+
printf("\nExit!\n");
79+
isPause = 0;
80+
direction = 0;
81+
directiontemp = 0;
8582
#if defined(_WIN16) || defined(_WIN32) || defined(_WIN64)
86-
return 0;
83+
return 0;
8784
#elif defined(__linux__) || defined(__gnu_linux__)
88-
return NULL;
85+
return NULL;
8986
#elif defined(__APPLE__)
9087
#endif
91-
break;
92-
}
93-
case ' ': // Space
94-
{
95-
if (isPause)
96-
{
97-
printf("\nContinue!\n");
98-
}
99-
else
100-
{
101-
printf("\nPause!\n");
102-
}
103-
isPause = !isPause;
104-
break;
105-
}
106-
}
88+
break;
89+
}
90+
case ' ': // Space
91+
{
92+
if (isPause) {
93+
printf("\nContinue!\n");
94+
} else {
95+
printf("\nPause!\n");
96+
}
97+
isPause = !isPause;
98+
break;
99+
}
107100
}
101+
}
108102
}
109103

110104
#endif /* _KEYMONITOR_H */

c/Snake/clear_version/Move.h

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,33 @@
11
#ifndef _MOVE_H
22
#define _MOVE_H
33
#include "GlobalVar.h"
4-
inline void moveBody()
5-
{
6-
*p[n] = 0;
7-
for (i = n; i > 0; i--)
8-
{
9-
p[i] =
10-
p[i - 1]; /* per part goes to the address of the next part of body*/
11-
}
12-
*p[0] = BODY; /* The First part of snake body come to snake head*/
4+
inline void moveBody() {
5+
*p[n] = 0;
6+
for (i = n; i > 0; i--) {
7+
p[i] = p[i - 1]; /* per part goes to the address of the next part of body*/
8+
}
9+
*p[0] = BODY; /* The First part of snake body come to snake head*/
1310
}
1411

15-
inline void moveRight()
16-
{
17-
moveBody();
18-
p[0] = p[0] + 1; /* Move snake head */
19-
*p[0] = HEAD; /* change the char of new head(new address)'s shape to HEAD */
12+
inline void moveRight() {
13+
moveBody();
14+
p[0] = p[0] + 1; /* Move snake head */
15+
*p[0] = HEAD; /* change the char of new head(new address)'s shape to HEAD */
2016
}
21-
inline void moveLeft()
22-
{
23-
moveBody();
24-
p[0] = p[0] - 1;
25-
*p[0] = HEAD;
17+
inline void moveLeft() {
18+
moveBody();
19+
p[0] = p[0] - 1;
20+
*p[0] = HEAD;
2621
}
27-
inline void moveDown()
28-
{
29-
moveBody();
30-
p[0] = p[0] + WIDTH;
31-
*p[0] = HEAD;
22+
inline void moveDown() {
23+
moveBody();
24+
p[0] = p[0] + WIDTH;
25+
*p[0] = HEAD;
3226
}
33-
inline void moveUp()
34-
{
35-
moveBody();
36-
p[0] = p[0] - WIDTH;
37-
*p[0] = HEAD;
27+
inline void moveUp() {
28+
moveBody();
29+
p[0] = p[0] - WIDTH;
30+
*p[0] = HEAD;
3831
}
3932
void moveBody();
4033
void moveRight();

c/Snake/clear_version/ShowMap.h

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,23 @@
33
#include "Clear.h"
44
#include "GlobalVar.h"
55
#include <stdio.h>
6-
inline void ShowMap()
7-
{
8-
Clear();
9-
printf("Your Score is:%d\n", n - 3);
10-
for (i = 0; i < (WIDTH)*2; i++)
11-
printf("_");
12-
printf("\n");
13-
for (i = 0; i < (HEIGHT); i++)
14-
{
15-
for (j = 0; j < (WIDTH); j++)
16-
{
17-
if (a[i][j] == 0)
18-
printf("_|");
19-
else
20-
printf("%c|", a[i][j]);
21-
}
22-
printf("\n");
6+
inline void ShowMap() {
7+
Clear();
8+
printf("Your Score is:%d\n", n - 3);
9+
for (i = 0; i < (WIDTH)*2; i++)
10+
printf("_");
11+
printf("\n");
12+
for (i = 0; i < (HEIGHT); i++) {
13+
for (j = 0; j < (WIDTH); j++) {
14+
if (a[i][j] == 0)
15+
printf("_|");
16+
else
17+
printf("%c|", a[i][j]);
2318
}
24-
printf("\nw,s,a,d->Up Down Left Right;\nj,k->Speed "
25-
"Up/Down;\nESC: Exit\n");
19+
printf("\n");
20+
}
21+
printf("\nw,s,a,d->Up Down Left Right;\nj,k->Speed "
22+
"Up/Down;\nESC: Exit\n");
2623
}
2724
void ShowMap();
2825
#endif /* _SHWOMAP_H */

c/Snake/clear_version/Snake.c

Lines changed: 54 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,59 @@
11
#include "Snake.h"
2-
int main()
3-
{
4-
KeyMonitor_Starter();
2+
int main() {
3+
KeyMonitor_Starter();
4+
ShowMap();
5+
RandomApple();
6+
while (1) {
57
ShowMap();
6-
RandomApple();
7-
while (1)
8-
{
9-
ShowMap();
10-
do
11-
{
12-
SLEEPS(delay);
13-
} while (isPause);
14-
CheckInput();
15-
switch (isFail())
16-
{
17-
case 0:
18-
break;
19-
case 1:
20-
printf("Fail!Don't hit the wall!\nYour Final Score is:%d\n", n - 3);
21-
return -1;
22-
break;
23-
case 2:
24-
printf("Fail!Don't eat your body!\nYour Final Score is:%d\n",
25-
n - 3);
26-
return -1;
27-
break;
28-
}
8+
do {
9+
SLEEPS(delay);
10+
} while (isPause);
11+
CheckInput();
12+
switch (isFail()) {
13+
case 0:
14+
break;
15+
case 1:
16+
printf("Fail!Don't hit the wall!\nYour Final Score is:%d\n", n - 3);
17+
return -1;
18+
break;
19+
case 2:
20+
printf("Fail!Don't eat your body!\nYour Final Score is:%d\n", n - 3);
21+
return -1;
22+
break;
23+
}
2924

30-
if (canEat())
31-
{
32-
n++; // length++
33-
p[n] = p[n - 1];
34-
RandomApple();
35-
}
25+
if (canEat()) {
26+
n++; // length++
27+
p[n] = p[n - 1];
28+
RandomApple();
29+
}
3630

37-
switch (direction) // choose which direction to move
38-
{
39-
case 1: // Right
40-
{
41-
moveRight();
42-
break;
43-
}
44-
case 2: // Up
45-
{
46-
moveUp();
47-
break;
48-
}
49-
case -1: // Left
50-
{
51-
moveLeft();
52-
break;
53-
}
54-
case -2: // Down
55-
{
56-
moveDown();
57-
break;
58-
}
59-
}
60-
if (direction == 0)
61-
{
62-
break;
63-
}
31+
switch (direction) // choose which direction to move
32+
{
33+
case 1: // Right
34+
{
35+
moveRight();
36+
break;
37+
}
38+
case 2: // Up
39+
{
40+
moveUp();
41+
break;
42+
}
43+
case -1: // Left
44+
{
45+
moveLeft();
46+
break;
47+
}
48+
case -2: // Down
49+
{
50+
moveDown();
51+
break;
52+
}
53+
}
54+
if (direction == 0) {
55+
break;
6456
}
65-
KeyMonitor_Stoper();
66-
}
57+
}
58+
KeyMonitor_Stoper();
59+
}

0 commit comments

Comments
 (0)