当前位置: 首页 > news >正文

重庆建设工程信息网最新网站网站关键词优化网站推广

重庆建设工程信息网最新网站,网站关键词优化网站推广,网站的主机,厂房建设招标网站1.代码请看贪吃蛇c实现 王赫辰/c语言 - 码云 - 开源中国 (gitee.com) 2.本项目宗旨: 1.不引入复杂的库函数(其他博主的全是陌生库函数看不懂?看我就对了!◕‿◕) 2.不使用c语法 (都说了c实现,…

1.代码请看贪吃蛇c实现 · 王赫辰/c语言 - 码云 - 开源中国 (gitee.com)

2.本项目宗旨

        1.不引入复杂的库函数(其他博主的全是陌生库函数看不懂?看我就对了!◕‿◕

        2.不使用c++语法 (都说了c实现,嘿嘿ᕙ(`▿´)ᕗ

        3.不使用函数,结构体和指针  (除非题目需要。不要折磨自己(˚ ˃̣̣̥᷄⌓˂̣̣̥᷅ )

3.实现者要求:具备较强逻辑能力,具有灵活运用二维数组的能力,熟练运用循环与选择。

4.如果你准备好了,那么我们开始吧!❛‿˂̵✧

项目整体架构

1.规则:贪吃蛇移动的每一步都需要重新打印,贪吃蛇不能碰到自己和边框,贪吃蛇吃到食物加分,且食物随机生成。

2.二维数组使用方法:根据不同对象(边框,蛇,食物)的属性赋值,再根据值进行打印。

3.在每次移动的时候,蛇身要继承蛇头或者前面蛇身的位置,最后的蛇身需要被清理。

生成随机食物

1.来看看方法的来源利用时钟值来实现数组的真正随机 · 王赫辰/c语言 - 码云 - 开源中国 (gitee.com)

2.当我们选择生成四个食物时,需要对食物的横纵坐标分别随机赋值,但范围要使其不出现在蛇或者在边框上(别忘了头文件stdlib.h和time.h)

srand(time(NULL));
int a1 = rand() % 8 + 2;
int b1 = rand() % 16 + 2;
int a2 = rand() % 16 + 2;
int b2 = rand() % 9 + 2;
int a3 = rand() % 16 + 2;
int b3 = rand() % 17 + 2;
int a4 = rand() % 3 + 2;
int b4 = rand() % 16 + 2;

初始化变量

(这个应该都懂吧?〃•ω‹〃)(将四个食物坐标赋值以便打印)

	int map[20][20] = { 0 };map[a1][b1] = 4;map[a2][b2] = 4;map[a3][b3] = 4;map[a4][b4] = 4;int count = 0;int e = 11;int f = 11;int g = 12;int h = 13;int i = 10;int l = 11;int m = 11;int z = 1;

控制移动

	int a = 0;int b = 0;int j;scanf_s("%d", &j);if (j == 0){e = 11;f = 11;g = 12;h = 13;i = 10;l = 11;m = 11;count = 0;}if (j == 1){if (map[l - 1][i] == 4){count++;}if (e != l - 1&&l!=1){int n = l;int o = i;int p = e;int q = f;map[m][g] = 0;l--;e = n;f = o;m = p;g = q;}if (e == l - 1||l==1){printf("你输了\n");break;}}if (j == 2){if (map[l + 1][i] == 4){count++;}if (e != l + 1&&l!=18){int n = l;int o = i;int p = e;int q = f;map[m][g] = 0;l++;e = n;f = o;m = p;g = q;}if (e == l + 1||l==18){printf("你输了\n");break;}}if (j == 3){if (map[l][i-1] == 4){count++;}if (f != i - 1&&i!=1){int n = l;int o = i;int p = e;int q = f;map[m][g] = 0;i--;e = n;f = o;m = p;g = q;}if (f == i - 1||i==1){printf("你输了\n");break;}}if (j == 4){if (map[l][i+1] == 4){count++;}if (f != i + 1&&i!=18){int n = l;int o = i;int p = e;int q = f;map[m][g] = 0;i++;e = n;f = o;m = p;g = q;}if (f == i + 1||i==18){printf("你输了\n");break;}}

1.输入1234控制蛇上下左右移动,而笔者选择在控制中加入输赢判定,当碰到蛇身或墙壁的时候游戏失败,当碰到食物的时候加分

2.逻辑解惑:当我们控制蛇向上移动时,如果蛇身或者边框在蛇头上面,那么是不是移动后就输了?而如果食物在上面,是不是移动就加分了?所以我们可以在赋值操作前进行判断对不对?

3.继承逻辑:当蛇头自定义运行时,第一段蛇身到原来蛇头位置,第二段蛇身到原来第一段蛇身的位置,而原先的第二段蛇身需要赋值为0以便打印空格。

赋值操作

for (a = 0; a < 20; a++){for (b = 0; b < 20; b++){if (map[a][b] == 0){if (a == 0 || b == 0 || a == 19 || b == 19){map[a][b] = 1;}if ((a == e && b == f) || (a == m && b == g)){map[a][b] = 2;}if (a == l && b == i){map[a][b] = 3;}}}}

1.由于打印内容的不同,我们将边框的值赋为一类,而蛇头,蛇身同理而前面食物的赋值也是这个思路

打印游戏界面

	int c = 0;int d = 0;for (c = 0; c < 20; c++){for (d = 0; d < 20; d++){if (map[c][d] == 1){printf("* ");}if (map[c][d] == 0){printf("  ");}if (map[c][d] == 2){printf("* ");}if (map[c][d] == 3){printf("@ ");}if (map[c][d] == 4){printf("$ ");}}printf("\n");}printf("得分为%d\n", count);}

1.分别依据二维数组的值打印不同的内容,注意空格的打印,这样游戏界面就是方的了。

ps:小彩蛋,蛇会慢慢蜕皮哦,去玩两把吧!੭ ᐕ)੭*⁾⁾

http://www.hkea.cn/news/516300/

相关文章:

  • 贵阳网站建设贵阳百度推广怎么推广
  • 瓮安建设局网站google play三件套
  • 大型门户网站模板营销神器
  • 学设计的网站都有哪些seo和sem
  • 如何做网站流量买卖营销型网站的特点
  • 装修设计网站哪个平台最好软文推广多少钱一篇
  • 怎么做微信里的网页网站链接网站设计平台
  • 长宁专业做网站网络营销案例分享
  • 哈尔滨专业建网站哪家好码迷seo
  • 涞水县住房和城乡建设局网站厦门seo专业培训学校
  • 网站建设销售招聘德阳seo
  • 平台网站建设的公司seozou是什么意思
  • wordpress 相册 主题seo整站优化技术培训
  • 做窗帘网站图片百度自动点击器下载
  • 飘雪影视大全免费观看视频快推达seo
  • 做网站的装饰标语seo宣传网站
  • 国外 平面设计 网站百度收录
  • 做网站话术简述搜索引擎的工作原理
  • 现在建设网站赚钱吗seo外链论坛
  • 青海网站建设企业海南百度竞价推广
  • 南京做网站yuanmus电脑突然多了windows优化大师
  • 美国做deals的网站软文营销经典案例优秀软文
  • 招标网站怎么做吴江seo网站优化软件
  • 苏州建设工程协会网站seo去哪里学
  • 上海正规网站制作价格可口可乐软文营销案例
  • 番禺网站 建设信科网络站长之家ping
  • 建筑工程施工承包合同关键词优化报价推荐
  • 网站可以免费看企业网站系统
  • 中华人民共和国建设部网站seo怎么快速提高排名
  • 南宁做网站的有几家东莞网络营销网站建设