Buscando código serpiente ejecutándose en VC++6.0.

#incluir

#incluir

#incluir

#incluir

#incluir

#incluir

#define ancho 40

#defineHEIGH12

Dirección de enumeración {//dirección

Izquierda,

Derecha,

p>

Arriba

Abajo

};

Estructura Alimento{//Alimento

Intx

Inty

};

{//Dibuja una serpiente.

intx

inty

structNode * next

};

Structsnake {//snake atributo du

intlenth//length

enumdirectiondir//direction

};

structFood *comida //comida

structSnake * serpiente//atributo de la serpiente

structNode*snode, * cola//cuerpo de la serpiente

intSPEECH = 200

int puntuación = 0;

ints mark = 0; //Registro de marca de comida

int times = 0;

int stop = 0;

voidInitfood (); //Producir comida

voidInitsnake(); //Construir serpiente

void eatfood(); //Mirar hacia adelante

voidAddnode(intx, inty) ); //Agrega el cuerpo de la serpiente

void display(struct node * shead); //Muestra la serpiente sentada en la marca del cuchillo.

void move(); //Movimiento similar a una serpiente

void draw(); //Dibujar una serpiente

void home page(); Página de inicio

voidkeybordhit(); //Monitorear las teclas del teclado

void addtail(); //Comer alimentos

Voidgotoxy(intx, inty)//Posición cursor.

{

COORDpos

Posición. x = x-1;

Posición.

y = y-1;

SetConsoleCursorPosition(GetStdHandle(STD _ OUTPUT _ HANDLE), pos);

}

void ini Snake()//Construcción); Serpiente

{

inti

serpiente =(estructura serpiente *)malloc(tamañode(estructura serpiente));

cola =( nodo de estructura *)malloc(sizeof(struct node));

comida =(struct food *)malloc(sizeof(struct food));

Serpiente->lenth = 5 //Longitud inicial 5

Snake->dir = RIGHT//La dirección inicial de la cabeza de la serpiente es correcta

for(I = 2;I<= Snake- & gt;lenth; +2;I++)//Agregar 5 nodos

{

Addnode(i, 2);

}

}

voidinitfood()//Producir alimentos

{

structNode * p = snode

int mark = 1;

srand((unsigned) time(empty)); //Genera números aleatorios usando el tiempo como semilla.

while(1)

{

Comida-& gt; x = rand()%(WIDTH-2)+2 //Comida x coordenada;

Comida->y = rand()%(HEIGH-2)+2 //Comida y coordenada

And (p!=null)

{

if ((comida-> Si la comida se produce en la serpiente.

{//Regeneración de alimentos.

mark = 0; //Generación de alimentos no válida

Break

}

p = p-> p>

}

If(mark = = 1)//Si la comida no está en la serpiente, genera comida, de lo contrario, regenera la comida;

{

gotoxy(comida->10, comida->y);

printf("%c ", 3);

Rotura;

}

marca = 1;

p = snode

}

}

Voidmove()//move

{

structNode*q, * p = snode

if(snake- > dir = =right)

{

añadir nodo(p->x+1,p->y);

if ( smark==0 )

{

mientras(p->; siguiente!=null)

{

q = p ;

p = p-& gt;Siguiente;

}

q->;siguiente = NULL

Gratis(p );

}

}

if(serpiente-& gt; dirección == izquierda)

{

añadir nodo(p -& gt;x-1,p->y);

if (smark==0)

{

mientras (p->;Siguiente !=null)

{

q = p;

p = p-& gt;Siguiente;

}

q->; next = NULL

Gratis(p);

}

}

if(serpiente- >dir==UP)

{

añadir nodo(p->x,p->y-1) ;

Si (smark ==0)

{

mientras(p->; siguiente!=null)

{

q = p; /p>

p = p-& gt; siguiente

}

q->; siguiente = NULL

Gratis(p);

}

}

if(serpiente-& gt; Dirección = = Abajo)

p>

{

añadir nodo(p-& gt;x,p-& gt;y+1);

if (smark==0)

{

mientras(p->; siguiente!=null)

{

q = p;

p = p-& gt; /p>

}

q->; siguiente = NULL

Gratis(p);

}

}

}

VoidAddnode(intx, inty)//Agrega el cuerpo de la serpiente.

{

estructura nodo * nuevo nodo =(estructura nodo *)malloc(tamañode(estructura nodo));

estructuraNodo * p = snodo

Nuevo nodo -> next = snode

Nuevo nodo ->x = x

Nuevo nodo ->y = y

snodo = newnode//El nodo se agrega a la cabeza de la serpiente

if(x & lt; 2 | |

{

STOP = 1;

gotoxy(10, 19);

Printf("¡Golpea la pared, el juego ha terminado, presiona cualquier tecla para salir! \n "); //Falló

_ getch();

Libre(snode); //Liberar memoria

Libre(serpiente);

Salir(0);

}

Y (p!= null)//se golpea a sí mismo

{

Si (p->next!=null)

Si ((p->x==x)&&(p->;y== y))

{

DETENER = 1;

gotoxy(10,19);

Printf("¡Golpéate, finaliza el juego, presiona cualquier tecla para salir! \n "); //Falló

_ getch();

Libre (snode); //Liberar memoria

free(snake);

Salir(0);

}

p = p-& gt; next;

}

}

void eatfood()//Comer comida

{

addtail();

Puntuación ++;

}

voidaddtail()//Agregar cola de serpiente

{

struct node * new node =(struct node * )malloc(sizeof(struct node));

structNode * p = snode

Cola-& gt; next = newnode

Nuevo nodo-& gt; x = 50

Nuevo nodo->y=20

Nuevo nodo->next=NULL //El nodo se agrega a la cabeza de la serpiente

tail = newnode//Nueva cola de serpiente

}

void Draw ()//Dibuja la serpiente

{

structNode * p = snode

inti, j;

Y (p! = vacío)

{

gotoxy(p->x,p->y);

printf("%c ", 2 );

Cola = p;

p = p-& gt;Siguiente;

}

if(s nodo- > x = = comida->

{

smark = 1;

comer comida(); //Agregar nodo

init comida(); comida

}

if (smark==0)

{

gotoxy(cola-& gt;x,cola-& gt; y); //El nodo de la cola no se comió antes de que se eliminara la comida.

printf("%c ",' '); //Si comes vegetales, no conoces el nodo de la cola.

}

Otro

{

Número de veces = 1

}

if((smark == 1)& & amp(times==1))

{

gotoxy(tail->x,tail->y ); // El nodo de la cola no se comió antes de que se eliminara la comida.

printf("%c ",' '); //Si comes vegetales, no conoces el nodo de la cola.

smark = 0;

}

gotoxy(5012);

Printf ("comida: %d, %d ", comida-> p>

gotoxy(50, 7);

Printf("velocidad: % d ", voz);

gotoxy(15, 14); p>

Printf("Presiona o para acelerar");

gotoxy(15,15);

Printf("Presiona P para reducir la velocidad");

gotoxy(15, 16);

Printf("Presiona la barra espaciadora para pausar");

}

voidhidecursor()/ /Ocultar el cursor

{

CONSOLE_CURSOR_info CURSOR_info = {1,0}.

SetConsoleCursorInfo(GetStdHandle(STD _ OUTPUT _ HANDLE), & ampcursor _ info);

}

void home page()//Dibujar la página de inicio);

p>

{

intx, y;

ocultar cursor(); //Ocultar el cursor

printf( "-\ n ");

printf(" | \ t \ t \ t | \ n ");

printf(" | \ t \ t \ t \ t | \ n ");

printf(" | \ t \ t \ t | \ n ");

printf(" | \ t \ t \ t \ t | \ n ");

printf(" | \ t \ t \ t | \ n ");

printf(" | \ t \ t \ t \ t | \ n ")

printf(" | \ t \ t \ t | \ n "

printf(" | \ t \ t \ t | \ n "); /p>

printf(" | \ t \ t \ t | \ n ");

printf(" | \ t \ t \ t \ t | \ n "); >

printf("-\ n ");

gotoxy(5, 13);

Printf("¡Haz clic en cualquier tecla para iniciar el juego! Según W.A.S.D. ") Dirección de control

_ getch();

init serpiente();

init comida()

gotoxy(5, 13);

printf(" ");

}

voidkeybordhit()//monitor teclado

{

charch

if(_kbhit())

{

ch = getch();

Cambiar (canal)

{

Case "w":

case ' w ':if(snake-& gt; Dir==DOWN)//Si la dirección original es hacia Abajo, la dirección inversa no es válida.

{

Romper

}

Otro

Serpiente-& gt;

Case "a":

case ' a ':if(snake-& gt; Dir==RIGHT)//Si la dirección original es correcta, pero la dirección inversa es inválido.

{

Descanso

}

Otro

Serpiente-> /p>

Caso:

case ' s ':if(snake-& gt;Dir==UP)//Si la dirección original es hacia arriba, la dirección inversa no es válida.

{

Descanso

}

Otro

Serpiente-& gt;

Case "d":

case ' d ':if(snake->;Dir==LEFT)//Si la dirección original es hacia la izquierda, pero la dirección inversa no es válida .

{

Descanso

}

Otro

Serpiente-& gt;

Caso "o":

Caso "o":

if(SPEECH>=150)//Acelerar.

{

Voice=Voice-50;

}

Pausa;

Caso "p":

Caso "p":

if(voice<=400)//Disminuir la velocidad

{

Voz=Voz+50 ;

}

Pausa;

caso ""://pausa

gotoxy(15,18);

Printf("El juego ha sido pausado, presiona cualquier tecla para reanudar el juego");

System("Pause & gtnul");

gotoxy(15, 18) ;

p>

printf(" ");

Pausa;

Predeterminado: pausa

}

}

}

int main(void)//Entrada de programa

{

Página de inicio();

Y (! Stop )

{

keybordhit(); //Monitorea las teclas del teclado

move(); //Cambios de coordenadas de Snake

draw(); //Redibujar la serpiente

Sleep(speech); //Suspender temporalmente el hilo

}

return0

}

Datos extendidos:

Notas:

1. El código convierte la información fuente en símbolos que son fáciles de comunicar o almacenar. La decodificación es un proceso de decodificación reductiva, que convierte los símbolos del código en una forma que el receptor pueda entender.

2. Una de las razones de la codificación es comunicarse en situaciones en las que es difícil alcanzar un lenguaje común (hablado o escrito). Por ejemplo, una bandera puede expresar un mensaje específico con marcas específicas, y otra persona situada a distancia puede interpretar las marcas para reproducir ese mensaje.