贪吃蛇代码(C语言)

时间:2026-01-24

//2010.06.09
//zook0k
///zook0k/
//
//
//qq:83310093

#include <windows.h>
#include <stdio.h>
#include<time.h>

#define C_W 516
#define C_H 548
//#define C_W 1024
//#define C_H 1024

#define GO_RIGHT 0x01
#define GO_DOWN 0x02
#define GO_LEFT 0x03
#define GO_UP 0x04


#define SNAKE_NUMBER 30
typedef struct node_struct
{
unsigned char direction;
unsigned char cnt;
}s_node,*s_node_handle;
s_node s_count[SNAKE_NUMBER ];

typedef struct SNAKE
{
unsigned char Head_X;
unsigned char Head_Y;
unsigned char Tail_X;
unsigned char Tail_Y;
unsigned char h_index;
unsigned char t_index;
unsigned char food_state;
unsigned char score;
unsigned char snake_state;
} Snake_Data,*Snake_Data_handle;
Snake_Data snk_1;

#define MAP_X 64
#define MAP_Y 64
unsigned char game_map[MAP_Y][MAP_X];




LRESULT CALLBACK Win_tetris_Proc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
snk_1.Head_X = 0x01;//head x
snk_1.Head_Y = 0x00;//head y

snk_1.Tail_X = 0x00;//tail x
snk_1.Tail_Y = 0x00;//tail y
snk_1.h_index=0;
snk_1.t_index=0;
snk_1.food_state=0;
snk_1.score=0;
snk_1.snake_state = 1;
s_count[snk_1.h_index].cnt=2;
s_count[snk_1.h_index].direction=GO_RIGHT;
s_count[snk_1.t_index].cnt=2;
s_count[snk_1.t_index].direction=GO_RIGHT;

WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=Win_tetris_Proc;
wndcls.lpszClassName="Game_tetris";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);

//Game_Tetris
HWND hwnd;
hwnd=CreateWindow("Game_tetris","Game_Snake(/zook0k/)",WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX & ~WS_THICKFRAME,
0,0,C_W,C_H,NULL,NULL,hInstance,NULL);


ShowWindow(hwnd,SW_SHOWNORMAL);

//initial snake
HDC hdc;
hdc=GetDC(hwnd);
HBRUSH hbr;
RECT rect;

rect.left = 0;
rect.top = 0;
rect.right = 16;
rect.bottom = 8;
hbr= CreateSolidBrush(RGB(255,0,0));
FillRect(hdc,&rect,hbr);
ReleaseDC(hwnd,hdc);
game_map[0][0]=1;
game_map[0][1]=1;
//initial rand
SetT
imer(hwnd,1,100,NULL) ;
srand((int)time(0));


UpdateWindow(hwnd);

MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
//TranslateMessage

…… 此处隐藏:492字,全部文档内容请下载后查看。喜欢就下载吧 ……
贪吃蛇代码(C语言).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219