C语言|复刻弹跳小球简易游戏

简介: 目录一、弹跳小球介绍二、弹跳小球的代码三、弹跳小球代码的解析1、我们需要一个小球(大写的 'O')2、在一个指定的位置将小球 'O' 打印出来3、弹跳小球的重点当然是弹跳二字了,我们来实现小球的弹跳清屏函数system("cls")4、让小球在指定范围内跳动5、用 scanf() 来输入小球的初始位置和跳动范围scanf(“输入控制符”, 输入参数);四、总结一、弹跳小球介绍其实也没有什么可介绍的,就是一个小球(用大写的 'O' 代替)在一定区域内反复横跳。二、弹跳小球的代码这里我先把代码放出来:(运行效果的话就自己试试了)#include <stdio.h>

目录

一、弹跳小球介绍

二、弹跳小球的代码

三、弹跳小球代码的解析

1、我们需要一个小球(大写的 'O')

2、在一个指定的位置将小球 'O' 打印出来

3、弹跳小球的重点当然是弹跳二字了,我们来实现小球的弹跳

清屏函数system("cls")

4、让小球在指定范围内跳动

5、用 scanf() 来输入小球的初始位置和跳动范围

scanf(“输入控制符”, 输入参数);

四、总结

一、弹跳小球介绍

其实也没有什么可介绍的,就是一个小球(用大写的 'O' 代替)在一定区域内反复横跳。

二、弹跳小球的代码

这里我先把代码放出来:(运行效果的话就自己试试了)

#include <stdio.h>#include <stdlib.h>intmain()
{
inti, j;
// 小球的初始位置intx, y;
printf("输入小球的初始位置(行 列):");
scanf("%d%d", &x, &y);
// 小球的跳动边界inttop, bottom, left, right;
printf("输入小球的跳动范围(上 下 左 右):");
scanf("%d%d%d%d", &top, &bottom, &left, &right);
// 小球的跳动速度intspeed_x, speed_y;
printf("输入小球的跳动速度(横向 纵向):");
scanf("%d%d", &speed_x, &speed_y);
// 小球跳动while (1)
    {
// 判断小球是否到达边界if (y>bottom||y<top)
        {
speed_y=-speed_y;
        }
if (x<left||x>right)
        {
speed_x=-speed_x;
        }
// 小球的跳动x-=speed_x;
y-=speed_y;
// 清除上一个小球,防止出现重影system("cls");
// 小球的具体位置for (j=0; j<y; j++)
        {
printf("\n");
        }
for (i=0; i<x; i++)
        {
printf(" ");
        }
printf("O\n");
    }
return0;
}

三、弹跳小球代码的解析

接下来我会对这段代码一一解析。

1、我们需要一个小球(大写的 'O')

printf("O\n");

2、在一个指定的位置将小球 'O' 打印出来

这里我让行 Y 和列 X 都为10

intx=10;
inty=10;

接下来就是打印小球了

       首先我们将光标移动到需要打印的行 (利用 for 循环以及换行符 '\n')

for (j=0; j<y; j++)
            {
printf("\n");
            }

接着我们将光标到小球需要打印的位置之间用 "空格" 占掉,以此来达到将小球打印在指定的列而前面不出现别的东西,然后打印小球。

for (i=0; i<x; i++)
            {
printf(" ");
            }
printf("O\n");

3、弹跳小球的重点当然是弹跳二字了,我们来实现小球的弹跳

       先来向上跳一行(将原来用来表示小球在第几行的变量 Y - 1 来表示弹跳一行后的小球在第几行)

y--;
for (j=0; j<y; j++)
        {
printf("\n");
        }
for (i=0; i<x; i++)
        {
printf(" ");
        }
printf("O\n");

这样我们就让小球向上跳了一行。

       接下来我们就让小球持续的向上跳一行(使用 while(1) 死循环来让小球向上跳)

while (1)
    {
y--for (j=0; j<y; j++)
        {
printf("\n");
        }
for (i=0; i<x; i++)
        {
printf(" ");
        }
printf("O\n");
    }

当我们运行后会发现,我们得到了一列小球。这个时候我们就需要用到  system("cls");  了


清屏函数system("cls")

该函数使用时需要添加stdlib.h函数库,即添加#include <stdlib.h>。

作用:该函数可以在清空画面。

我们添加这个函数  

while (1)
    {
system("cls");
y--for (j=0; j<y; j++)
        {
printf("\n");
        }
for (i=0; i<x; i++)
        {
printf(" ");
        }
printf("O\n");
    }

这样我们就看到小球向上移动了。但是我们又发现一个问题,就是小球直接没了。这个时候我们就要让小球跳回来了。

4、让小球在指定范围内跳动

       我们先要设置小球到哪会跳回来(我设置的是 top = 1)

inttop=1;

然后我们用 if 来判断小球有没有到我们设置的位置 (有的话就让小球向下跳 y++)

1.if (y<top)
2.         {
3.y++;
4.         }

同理我们可以定义小球的下边界(bottom),左边界(left),右边界(right)。

   int top = 1;

   int bottom = 10;

   int left = 0;

   int right = 50;

这样我们就可以让小球在一定范围内跳动。


当然我们也可以定义小球的跳动速度(速度就自己定了)


   int speed_x = 1;

   int speed_y = 1;

同时也可以让小球在指定的范围内更好地更改跳动方向(只需添加 '-' 就可以了)

//判断小球是否到达边界if (y>bottom||y<top)
        {
speed_y=-speed_y;
        }
if (x<left||x>right)
        {
speed_x=-speed_x;
        }

判断小球是否到达边界,到达后只需将跳动的增加量改为负数就可以了


好了弹跳小球就到这里结束了(这个时候就可以看到小球在我们规定的范围内反复横跳了)


5、用 scanf() 来输入小球的初始位置和跳动范围

scanf(“输入控制符”, 输入参数);

       功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

// 小球的初始位置intx, y;
printf("输入小球的初始位置(行 列):");
scanf("%d%d", &x, &y);
// 小球的跳动边界inttop, bottom, left, right;
printf("输入小球的跳动范围(上 下 左 右):");
scanf("%d%d%d%d", &top, &bottom, &left, &right);
// 小球的跳动速度intspeed_x, speed_y;
printf("输入小球的跳动速度(横向 纵向):");
scanf("%d%d", &speed_x, &speed_y);
相关文章
|
29天前
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
73 0
|
1天前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
10 1
|
30天前
|
编译器 C语言
猜数字游戏实现#C语言
猜数字游戏实现#C语言
74 1
|
1月前
|
存储 C语言
揭秘C语言:泊舟的猜数字游戏
揭秘C语言:泊舟的猜数字游戏
|
1月前
|
存储 算法 安全
C语言实现扫雷游戏
C语言实现扫雷游戏
|
30天前
|
C语言
初学者指南:使用C语言实现简易版扫雷游戏
初学者指南:使用C语言实现简易版扫雷游戏
31 0
|
1月前
|
C语言
C语言扫雷游戏(详解)
C语言扫雷游戏(详解)
36 0
|
1月前
|
程序员 C语言
初识C语言之三子棋游戏
初识C语言之三子棋游戏
32 0
|
1月前
|
C语言
初识C语言3——函数(以猜数字游戏为例)
初识C语言3——函数(以猜数字游戏为例)
65 0
|
1月前
|
存储 编译器 C语言
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
34 0