两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

  • 歡迎訪問C語言網(wǎng)www.sztianhecheng.cn 比賽欄每月有獎月賽!舉辦比賽聯(lián)系QQ:2045302297
  • 問題反饋、粉絲交流 QQ群327452739 藍(lán)橋杯訓(xùn)練群:113766799 申請群時請備注排名里的昵稱
  • C語言研究中心 為您提供有圖、有料、解渴的C語言專題! 歡迎討論!

VC6下實現(xiàn)C語言貪吃蛇游戲源碼

C語言研究中心 CTO 32551次瀏覽 10個評論

找了個不依賴graphics頭文件的VC6的貪吃蛇源碼,供大家學(xué)習(xí)娛樂!

 

VC6.0下親測可用,運行界面:

VC6下實現(xiàn)C語言貪吃蛇游戲源碼

 

鄙人不才,越玩越快,很快就掛掉了

VC6下實現(xiàn)C語言貪吃蛇游戲源碼

 

源代碼:

#include <windows.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 21
 
int apple[3];
char score[3];
char tail[3]; 
 
void gotoxy(int x, int y) //輸出坐標(biāo) 
{
 COORD pos;
 pos.X = x; 
 pos.Y = y;
 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
 
void color(int b) //顏色函數(shù) 
{
 HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE)) ; 
 SetConsoleTextAttribute(hConsole,b) ;
} 
 
int Block(char head[2]) //判斷出界 
{
 if ((head[0] < 1) || (head[0] > N) || (head[1] < 1) || (head[1] > N))
 return 1;
 return 0;
}
 
int Eat(char snake[2]) //吃了蘋果 
{
 if ((snake[0] == apple[0]) && (snake[1] == apple[1]))
 {
 apple[0] = apple[1] = apple[2] = 0;
 gotoxy(N+44,10);
 color(13);
 printf("%d",score[0]*10);
 color(11);
 return 1;
 }
 return 0;
}
 
void Draw(char **snake, int len) //蛇移動 
{
 if (apple[2]) {
 gotoxy(apple[1] * 2, apple[0]);
 color(12);
 printf("●");
 color(11);
 }
 gotoxy(tail[1] * 2, tail[0]);
 if (tail[2]) 
 { color(14);
 printf("★");
 color(11);
 }
 else 
 printf("■");
 gotoxy(snake[0][1] * 2, snake[0][0]);
 color(14);
 printf("★");
 color(11);
 putchar('\n');
}
 
char** Move(char **snake, char dirx, int *len) //控制方向 
{
 int i, full = Eat(snake[0]);
 memcpy(tail, snake[(*len)-1], 2);
 for (i = (*len) - 1; i > 0; --i) 
 memcpy(snake[i], snake[i-1], 2);
 switch (dirx) 
 { 
 case 'w': case 'W': --snake[0][0]; break;
 case 's': case 'S': ++snake[0][0]; break;
 case 'a': case 'A': --snake[0][1]; break;
 case 'd': case 'D': ++snake[0][1]; break;
 default: ;
 } 
 if (full) 
 { 
 snake = (char **)realloc(snake, sizeof(char *) * ((*len) + 1));
 snake[(*len)] = (char *)malloc(sizeof(char) * 2);
 memcpy(snake[(*len)], tail, 2);
 ++(*len);
 ++score[0];
 if(score[3] < 16) 
 ++score[3];
 tail[2] = 1;
 }
 else 
 tail[2] = 0;
 return snake;
}
 
void init(char plate[N+2][N+2], char ***snake_x, int *len) //初始化 
{
 int i, j;
 char **snake = NULL;
 
 *len = 3;
 score[0] = score[3] =3;
 snake = (char **)realloc(snake, sizeof(char *) * (*len));
 for (i = 0; i < *len; ++i)
 snake[i] = (char *)malloc(sizeof(char) * 2);
 
 for (i = 0; i < 3; ++i) 
 {
 snake[i][0] = N/2 + 1;
 snake[i][1] = N/2 + 1 + i;
 } 
 
 for (i = 1; i <= N; ++i) 
 for (j = 1; j <= N; ++j) 
 plate[i][j] = 1;
 
 apple[0] = rand()%N + 1; apple[1] = rand()%N + 1;
 apple[2] = 1;
 
 for (i = 0; i < N + 2; ++i) 
 {
 gotoxy(0, i);
 for (j = 0; j < N + 2; ++j) 
 {
 switch (plate[i][j]) 
 {
 case 0: 
 color(12);printf("□");color(11); continue;
 case 1: printf("■"); continue;
 default: ;
 }
 }
 putchar('\n');
 } 
 for (i = 0; i < (*len); ++i)
 {
 gotoxy(snake[i][1] * 2, snake[i][0]);
 printf("★");
 } 
 putchar('\n');
 *snake_x = snake;
}
 
void Manual()
{
 gotoxy(N+30,2);
 color(10);
 printf("按 W S A D 移動方向");
 gotoxy(N+30,4);
 printf("按 space 鍵暫停"); 
 gotoxy(N+30,8);
 color(11);
 printf("歷史最高分為: ");
 color(12);
 gotoxy(N+44,8);
 printf("%d",score[1]*10);
 color(11);
 gotoxy(N+30,12);
 printf("你現(xiàn)在得分為: 0"); 
 gotoxy(N+30,16);
 printf("c語言(www.sztianhecheng.cn)研究中心");
}
 
int File_in() //取記錄的分?jǐn)?shù) 
{
 FILE *fp;
 if((fp = fopen("C:\\tcs.txt","a+")) == NULL)
 {
 gotoxy(N+18, N+2);
 printf("文件不能打開\n");
 exit(0);
 }
 if((score[1] = fgetc(fp)) != EOF);
 else
 score[1] = 0;
 return 0;
}
 
int File_out() //存數(shù)據(jù) 
{
 
 FILE *fp;
 if(score[1] > score[0]) 
 {gotoxy(10,10);
 color(12);
 puts("闖關(guān)失敗 加油耶");
 gotoxy(0,N+2); 
 return 0;
 }
 if((fp = fopen("C:\\tcs.txt","w+")) == NULL)
 {
 printf("文件不能打開\n");
 exit(0);
 }
 if(fputc(--score[0],fp)==EOF)
 printf("輸出失敗\n");
 gotoxy(10,10);
 color(12);
 puts("恭喜您打破記錄"); 
 gotoxy(0,N+2);
 return 0;
}
 
 
void Free(char **snake, int len) //釋放空間 
{
 int i;
 for (i = 0; i < len; ++i) 
 free(snake[i]);
 free(snake);
}
 
int main(void)
{
 int len;
 char ch = 'g';
 char a[N+2][N+2] = {{0}};
 char **snake;
 srand((unsigned)time(NULL));
 system("title c語言(www.sztianhecheng.cn)研究中心");
 color(11);
 File_in();
 init(a, &snake, &len);
 Manual();
 while (ch != 0x1B) // 按 ESC 結(jié)束 
 { 
 Draw(snake, len);
 if (!apple[2]) {
 apple[0] = rand()%N + 1;
 apple[1] = rand()%N + 1;
 apple[2] = 1;
 }
 Sleep(200-score[3]*10);
 setbuf(stdin, NULL);
 if (kbhit())
 {
 gotoxy(0, N+2);
 ch = getche();
 }
 snake = Move(snake, ch, &len); 
 if (Block(snake[0])==1) 
 {
 gotoxy(N+2, N+2);
 puts("你輸了");
 File_out();
 Free(snake, len);
 getche();
 exit(0); 
 } 
 }
 Free(snake, len);
 exit(0);
}

C語言研究中心(www.sztianhecheng.cn)

C語言網(wǎng)提供「C語言、C++、算法競賽」在線課程,全部由資深研發(fā)工程師或ACM金牌大佬親授課,更科學(xué)、全面的課程體系,以在線視頻+在線評測的學(xué)習(xí)模式學(xué)習(xí),學(xué)練同步,拒絕理論派,真正學(xué)會編程!還有獎學(xué)金等增值福利等你!

C語言網(wǎng), 版權(quán)所有丨如未注明 , 均為原創(chuàng)丨本網(wǎng)站采用BY-NC-SA協(xié)議進(jìn)行授權(quán) , 轉(zhuǎn)載請注明VC6下實現(xiàn)C語言貪吃蛇游戲源碼!
喜歡 (52)
[jinyangH@aliyun.com]
分享 (0)
發(fā)表我的評論
取消評論
表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
(10)個小伙伴在吐槽
  1. 頭文件是什么?
    鑫鑫2016-10-06 10:35 回復(fù)
    • 已經(jīng)補全~
      CTO2016-12-17 21:01 回復(fù)
      • 為什么找不到東西吃
        2018-03-02 23:27 回復(fù)
  2. 怎么這里編譯出錯了 e:\vc 6.0\msdev98\myprojects\snake\snake.cpp(262) : fatal error C1010: unexpected end of file while looking for precompiled header directive Error executing cl.exe.
    星晟2017-01-04 19:32 回復(fù)
  3. 為什么在dev中運行不了啊
    痞子紳士2017-05-09 18:00 回復(fù)
  4. 報錯 如下 Linking... LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/lianxi.exe : fatal error LNK1120: 1 unresolved externals 執(zhí)行 link.exe 時出錯.
    xlf2017-05-21 11:11 回復(fù)
  5. 沒有main函數(shù),能運行嗎?
    xlf2017-05-21 11:25 回復(fù)
  6. VS2017閃退
    北漠2017-06-12 22:25 回復(fù)
    • 一樣,不過我是2015
      凱子2019-12-18 16:52 回復(fù)
  7. 垃圾,一大堆錯誤,還缺頭文件
    漆漆2019-07-21 21:40 回復(fù)