C语言 贪吃蛇
来源:互联网 发布:java面向对象的4大特征 编辑:程序博客网 时间:2024/04/29 21:02
2016.12.25
看到知乎说C掌握了大概后可以试试看写个贪吃蛇或者俄罗斯方块的小游戏。
而宿舍里的大神这几天刚好想写一个俄罗斯方块,那我就来试试写写贪吃蛇吧(最近刚好经常玩手机里的贪吃蛇大作战...)。
我想先试试看清屏函数的频率是怎么样的。
想法是,定义一个大概[20][70]的字符数组作为背景大小(试了好久才找到这个尺寸),然后再试了好久,本来是想printf出黑圆点或者黑方块作为蛇身,然后>作为蛇头,然而发现黑圆或方块在ASCⅡ码里的数值在屏幕上printf出来是一个方块符,也就是说体现不出这个字符。
本来这个白方块也是蛮好的,但加边框之后,发现如果用白方块,有白方块的那一行最后的边框会显示不好,那就先把这个形象的问题留到之后再来吧,决定先用大写字母O作为蛇身。。
之后随便选了中间某行的几个位置,[5][3-9]作为一开始蛇的位置,然后写了一个输出的函数,还有每次让蛇向右前进一格,加上初始化边框和清屏函数,就是这样的:
#include<stdio.h>#include<stdlib.h>char bg[21][71]={0}; //背景backgroundint main(){int i,j;/*边框*/ for(i=0;i<20;i++){bg[i][0]='|';bg[i][69]='|';}for(i=1;i<69;i++){bg[0][i]='-';bg[19][i]='-';}/*初始化*/ bg[5][3]='O'; bg[5][4]='O'; bg[5][5]='O'; bg[5][6]='O'; bg[5][7]='O'; bg[5][8]='>'; bg[5][9]='>'; /*变化*/ for(i=0;i<20;i++){for(j=10;j<69;j++){bg[5][j]='>'; bg[5][j-2]='O'; bg[5][j-7]=0; system("CLS");print();}}/*输出函数*/ void print(){int i,j;for(i=0;i<20;i++){for(j=0;j<70;j++)printf("%c",bg[i][j]);putchar('\n');}}
于是,上网搜索有没有办法控制清屏函数的时间,结果,发现了C语言还有一个叫Sleep函数的好东西!!
加入头文件#include <unistd.h>,定义函数:unsigned int sleep(unsigned int seconds); 通过Sleep(时间) 来调用(记得大写S),时间是用毫秒表示。
Sleep(500)即可以在代码执行到那时等待0.5秒再往下。
于是,贪吃蛇的最基本原型就出来了哈哈哈哈哈~
下一个问题就是怎么加入方向键以控制蛇的方向了。。。到这先暂停,看高数线代去,不然真要挂科了。。
2016.12.27
原来Sleep函数s也是可以小写的,大写时括号里就是毫秒,小写时就是秒了,难怪昨天试的时候屏幕一动不动。。。
然后发现了一个好东西!
if(kbhit()) //当不为0时,也就是键盘有输入
dir = getchar(); //从输入流中得到一个字符
可以用来无等待无屏显地接受键盘输入!
然而,贪吃蛇的计划停止了。
因为我发现,清屏频率总是容易跟键盘键入产生矛盾,虽是0点多秒,但也总容易出错。所以就到此先停止了。
等以后学习了线程,再看看能不能继续解决吧。
- C语言贪吃蛇
- c语言“贪吃蛇”
- c语言贪吃蛇
- C语言:贪吃蛇
- C语言 贪吃蛇
- C语言贪吃蛇。
- c语言贪吃蛇
- C语言-贪吃蛇
- C语言贪吃蛇
- C语言贪吃蛇
- 贪吃蛇(C语言)
- 贪吃蛇-C语言
- C语言 贪吃蛇程序
- 贪吃蛇----C语言实现
- C语言贪吃蛇代码
- C语言实现贪吃蛇
- C语言贪吃蛇游戏
- C语言贪吃蛇代码
- JS获取项目路径详解
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
- mvc 封装框架之关于 .haccess 文件(一)
- LeetCode3. Longest Substring Without Repeating Characters
- JFinal Web开发学习(十一)编辑已发布文章
- C语言 贪吃蛇
- MFC操作EXCEL例子
- 计算机视觉的比较有用的项目project, visual object tracking & human action recognition.
- 【Unity】(代码分析)Unity创建并保存XML
- JAVA redis 常用函数
- Teleport Pro使用教程
- Socket及时通信
- 傅里叶变换终极解释(精校版)
- 柯朗微积分与数学分析习题选解(1.1 节 e)