​​​​​​

目录

前言

一、如何用scanf控制飞机的移动?

二、用getch()来代替scanf

三、显示复杂的飞机图案

总结



前言

针对c基础薄弱的同学,我想着可以不可以用编写游戏的形式来认识c语言

这是我们第一天的任务,仅仅用到了printf,scanf,for_for循坏,轻易上手

如果小伙伴们还不懂这些,或者0基础请私信告诉我,等到下一节后我会详细讲一下这些简单的语法,从而让大家真正的0基础通过编写游戏来学习C语言

作者水平有限,若遇到问题请指出

一、如何用scanf控制飞机的移动?

利用scanf输入不同的字符a,s,d,w键后改变坐标x,y的值,从而控制飞机*(这里先用*来表示飞机)上下左右的移动

如图:

接下来我们用到了一个清屏函数system(“cls”);

然后我们实现代码如下:

#include<stdio.h>
#include<stdlib.h>
int main()
{int i;int j;int x=5;int y=10;char input;while (1){system("cls");//输出飞机上面的空行for ( i = 0; i < x; i++){printf("\n");}//输出飞机左面的空行for ( j = 0; j < y; j++){printf(" ");}printf("**");//输出飞机printf("\n");scanf("%c",&input);if (input=='a') y--;if(input=='w') x--;if(input=='s') x++;if(input=='d') y++;}return 0;}

同学们可自行尝试一下

二、用getch()来代替scanf

经过上述代码同学们的亲自的演练后,细心的小伙伴们可能就会发现,我们用scanf来输入一个字符后必须回车一下才能执行,这样交互的效果并不理想,那么仔细想一想我们是否还学过一种新的输入方式呢?

没错就是getch();

在这里我们还要再介绍一个函数kbhit():

在用户有键盘输入时返回1,否则返回0;而在键盘没有输入时(kbhit())下面的语句则不会执行,从而避免用户不输入 游戏就暂停的情况

前言万语不如直接给大家上代码:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{int i;int j;int x=5;int y=10;char input;while (1){system("cls");//输出飞机上面的空行for ( i = 0; i < x; i++){printf("\n");}//输出飞机左面的空行for ( j = 0; j < y; j++){printf(" ");}printf("**");//输出飞机printf("\n");if(kbhit()){input=getch();if (input=='a') y--;if(input=='w') x--;if(input=='s') x++;if(input=='d') y++;}}return 0;}

三、显示复杂的飞机图案

前文学到只用*来表示飞机未免有点枯燥,乏味

那么我们是否可以用一种复杂的方式来表示飞机呢?

像这种:

这样:

搞错了,像这种:

什么,你说还是很low?

鲁迅的事,你找我周树人干什么?(美工的事,找我写开发的干什么!)

废话不多说,给观众老爷上代码:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{int i;int j;int x=5;int y=10;char input;while (1){system("cls");//输出飞机上面的空行for ( i = 0; i < x; i++)printf("\n");//下面输出一个复杂的飞机图案for ( j = 0; j < y; j++)printf(" ");printf("*\n");for(j=2;j<y;j++)printf(" ");printf("** **\n");for(j=2;j<y;j++)printf(" ");printf("*   *\n"); if(kbhit()){input=getch();if (input=='a') y--;if(input=='w') x--;if(input=='s') x++;if(input=='d') y++;}}return 0;}

然后显示如下:


总结

我们今天要讲的内容就到此结束了,相信可能很多人会感到意犹未尽,或者没人看!!!

然后到了明天我们再来实现打靶练习,和发射激光的功能

以及到了后期,学习封装函数将这些功能进行模块化处理

好了,今天的课程就到此结束了,同学们再见!

喜欢博主,不如点个

用C实现每天一个小游戏——第一天(飞机大战)相关推荐

  1. python轰炸敌机小游戏_python实现飞机大战微信小游戏

    0.前言 我学一种语言,可以说学任何东西都喜欢自己动手实践,总感觉自己动手一遍,就可以理解的更透彻,学python也一样,自己动手写代码,但更喜欢做点小东西出来,一边玩一边学.下面我就展示一下我最近做 ...

  2. 飞机大战小游戏源码---飞机大战初体验

    开发环境: Windows10,pycharm,python3 源码使用教程: 打开pycharm,创建一个新的项目,文件-->新建项目 项目命名:飞机大战初体验,基本解释器选择python3版 ...

  3. html5飞机大战小游戏开发,html5 飞机大战

    [实例简介]自定义飞机图片数量,子弹图片,速度 [实例截图] [核心代码] var canvas=document.getElementById("myCanvas"); var ...

  4. 用Python做的小游戏合集——飞机大战

    导语:✈✈✈✈✈✈✈✈✈✈✈✈✈

  5. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  6. Pygame:编写一个小游戏

    大学最后的考试终于结束了,迎来了暑假和大四的漫长的"自由"假期.当然要自己好好"玩玩"了. 我最近在学习Python,本意是在机器学习深度学习上使用Python ...

  7. “树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛G 又是一个小游戏(蓝)...

    G 又是一个小游戏(蓝) Time Limit:1000MS  Memory Limit:65536K Total Submit:9 Accepted:0 Description L和F两个人正在做这 ...

  8. 虚幻4学习笔记(8)动手制作一个小游戏

    动手制作一个小游戏 新节点介绍 前期准备 搭建场景 门蓝图 灯蓝图 创建关卡蓝图 B站UP谌嘉诚课程:https://www.bilibili.com/video/BV164411Y732 新节点介绍 ...

  9. 学完javaee基础,编的一个小游戏—太阳系的八大行星

    项目完整代码已放到码云上 自行下载: https://gitee.com/tutu_57893_7590/planets 学完javaee基础,编的一个小游戏-太阳系的八大行星 要使太阳系的八大行星, ...

最新文章

  1. 小模型实现大一统!FBNetV5一举包揽CV任务3个SOTA
  2. 大规模落地:AI安防仍存两大痛点
  3. 【C/C++开发】C++实现简单的线程池
  4. Quzrtz.net 示例
  5. 有关OVM社区产品经理对OVM的29个问题解答!
  6. Exception Handling Best Practices in .NET
  7. CCF关于暂停NOIP竞赛的公告
  8. 内存泄漏(OOM)产生原因
  9. SAP Commerce Cloud (电商云) UI 的懒加载功能
  10. AopContext.currentProxy();为什么能获取到代理对象
  11. 区分'方法'和'函数'
  12. UNIX(多线程):28---双buffer “无锁” 设计
  13. Spark精华问答 | Spark的三种运行模式有何区别?
  14. ST_Geometry效率的测试与分析
  15. 二叉树的非递归遍历,还有一点黑科技
  16. 在已有的服务器上如何部署网站,如何在云服务器上部署网站
  17. 服务器上安装python anaconda最简明教程
  18. java中Map,List与Set的区别
  19. 千万级中文公开免费聊天语料数据分享
  20. CSS中的BFC规范(块级格式化上下文)

热门文章

  1. 小学生趣味C++编程第27课 老狼老狼几点钟
  2. QML控件类型:StackView
  3. NID修改数据库名称时候碰到NID-00137
  4. 数据科学和机器学习中的优化理论与算法(上)
  5. onenote需要密码才能同步此笔记本。 (错误代码: 0xE0000024)
  6. Shell笔记(超级完整)
  7. vue精通之路:掌握这42个Vue知识点,你将成为大shen
  8. 天空飘彩带的css3代码_纯CSS3实现飘逸洒脱带有飞行效果的三级下拉菜单
  9. 以古为新 洒脱自然 ——魏沁的书法艺术
  10. 日本市场智能电视的主要功能