基本信息
源码名称:贪吃蛇C++基础编写
源码大小:34.02M
文件格式:.rar
开发语言:C/C++
更新时间:2018-08-07
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#include "stdafx.h" #include "Snake.h" #include "Tools.h" #include "conio.h" #include "Control.h" void CSnake::clear() //清理尾巴 { for (int i = nlenth-1; i < nlenth; i ) { WriteChar(Snake[i].X, Snake[i].Y, " "); } } void CSnake::drawsnake() //从头部到尾部绘制蛇 { for (int i = 0; i < nlenth; i ) { WriteChar(Snake[i].X, Snake[i].Y, "■"); } } int CSnake::MoveSnake(int g_Map[MAP_X][MAP_Y], CFood&cFood) //蛇的移动,碰撞,死亡,吃食物 { nTemp = Snake[0]; switch (nDir) { case 上:{ nTemp.Y--; break; } case 下:{ nTemp.Y ; break; } case 左:{ nTemp.X--; break; } case 右:{ nTemp.X ; break; } default: break; } // 判断有没有撞到东西 if (g_Map[nTemp.X][nTemp.Y] == 空地) { } /* 蛇头碰撞问题*/ else if (g_Map[nTemp.X][nTemp.Y] == 普通食物) { nlenth ; g_Map[nTemp.X][nTemp.Y] = 空地; cFood.SetFoodExist(0);//当蛇吃到普通食物时候,就=0不存在 g_score = 10; memset(Gscore, 0, 5 * sizeof(char)); sprintf_s(Gscore, "%3d",g_score); WriteChar(56, 8, Gscore, 11); } else if (g_Map[nTemp.X][nTemp.Y] == 毒食物) { Snake[0] = nTemp; return 0;//返回0 表示死亡 } else if (g_Map[nTemp.X][nTemp.Y] == 障碍物) { return 0;//返回0 } else if (g_Map[nTemp.X][nTemp.Y] == 自己) { return 0;//返回0, } //确定蛇身的坐标 for (int i = nlenth - 1; i >= 0; i--)//nLenth - 1,减去蛇头 { Snake[i 1] = Snake[i]; } //更改蛇头新的坐标 Snake[0] = nTemp; return 1; } void CSnake::SetDir(int g_Dir)////定义一个函数修改私有成员nDir { nDir = g_Dir; } void CSnake::GetPlayerInput() //用户键盘操作 { char Oper = 0; Oper = waitKey(); switch (Oper) { case 72: if (nDir != 下) { SetDir(上); } break; case 80: if (nDir != 上) { SetDir(下); } break; case 75: if (nDir != 右) { SetDir(左); } break; case 77: if (nDir != 左) { SetDir(右); } break; case ' ': //空格键 _getch(); default: break; } }