返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言怎么用数组实现反弹球消砖块
  • 159
分享到

C语言怎么用数组实现反弹球消砖块

2023-06-30 13:06:04 159人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“C语言怎么用数组实现反弹球消砖块”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么用数组实现反弹球消砖块”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、效果展示:二、代码如下:#

本文小编为大家详细介绍“C语言怎么用数组实现反弹球消砖块”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么用数组实现反弹球消砖块”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、效果展示:

C语言怎么用数组实现反弹球消砖块

二、代码如下:

#include<stdio.h>#include<string.h>#include<coNIO.h>#include<windows.h>#include<time.h>#define High 24   //游戏画面尺寸#define Width 36//全局变量int ball_x,ball_y;//小球的坐标int ball_vx,ball_vy;//小球的速度int canvas[High][Width]={0};int position_x,position_y;//挡板的中心坐标int ridus;//挡板的半径大小int left,right;//挡板的左右大小int score=0;//分数//二维数组存储游戏画布中对应的元素//0为空格,1为小球 2为挡板 3为砖块(1分)   4为砖块(2分)  5为砖块(3分)void Gotoxy(int x,int y)//将光标移动到(x,y)位置{    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);    COORD pos;    pos.X=x;    pos.Y=y;    SetConsoleCursorPosition(handle,pos);}void startup() //数据的初始化{    int k,i;    ridus=5;    position_x=High-1;    position_y=Width/2;    left=position_y-ridus;    right=position_y+ridus;    ball_x=position_x-1;    ball_y=position_y;    ball_vx=-1;    ball_vy=1;    canvas[ball_x][ball_y]=1;    for(k=left;k<=right;k++)//挡板        canvas[position_x][k]=2;    srand(time(NULL));    for(k=0;k<Width;k++)//加几排砖块    {        for(i=0;i<High/4;i++)        {            canvas[i][k]=rand()%3+3;//随机的初始化砖块类型        }    }}//定义隐藏光标函数void HideCursor(){    CONSOLE_CURSOR_INFO cursor;        cursor.bVisible = FALSE;        cursor.dwSize = sizeof(cursor);        HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);        SetConsoleCursorInfo(handle, &cursor);}void show()//显示画面{    gotoxy(0,0);//将光标移动到原点位置,以下重画清屏    int i,j;    for(i=0;i<High;i++)    {        for(j=0;j<Width;j++)        {            if(canvas[i][j]==0)                printf(" ");//输出空格            else if(canvas[i][j]==1)                printf("O");//输出小球0            else if(canvas[i][j]==2)                printf("*");//输出挡板            else if(canvas[i][j]==3)                printf("#");//输出砖块            else if(canvas[i][j]==4)                printf("+");            else if(canvas[i][j]==5)                printf("$");        }        printf("|\n");//显示右边界    }    for(j=0;j<Width;j++)        printf("-");//显示下边界    printf("\n");    printf("#、+、$ 一个分别为1、2、3分\n");    printf("分数为:%d\n",score);}void updateWithoutInput()//与用户输入无关的更新{    static int speed=0;    if(ball_x==High-2)    {        if( (ball_y>=left)&&(ball_y<=right) )//被挡板挡住        {            printf("\a");//响铃        }        else        {            printf("游戏失败\n");            system("pause");            exit(0);        }    }    if(speed<5)//起到延时的效果        speed++;    if(speed==5)    {        speed=0;        canvas[ball_x][ball_y] = 0;        //更新小球的坐标        ball_x=ball_x+ball_vx;        ball_y=ball_y+ball_vy;        canvas[ball_x][ball_y] = 1;        //碰到边界后反弹        if( (ball_x==0) || (ball_x==High-2) )            ball_vx = -ball_vx;        if( (ball_y==0) || (ball_y==Width-1) )            ball_vy = -ball_vy;        //碰到砖块后反弹        if(canvas[ball_x-1][ball_y]>=3&&canvas[ball_x-1][ball_y]<=5)        {            if(canvas[ball_x-1][ball_y]==3)//判断砖块的类型                score++;            if(canvas[ball_x-1][ball_y]==4)                score=score+2;            if(canvas[ball_x-1][ball_y]==5)                score=score+3;            ball_vx=-ball_vx;            canvas[ball_x-1][ball_y]=0;            printf("\a");        }    }}void updateWithInput()//与用户输入有关的更新{    char input;    if(kbhit())//判断是否有输入    {        input=getch();        if( ((input=='a')||(input=='A')) && (left>0) )        {            canvas[position_x][right]=0;            position_y--;            left=position_y-ridus;            right=position_y+ridus;            canvas[position_x][left]=2;        }        if( ((input=='d')||(input=='D')) && (right<Width-1) )        {            canvas[position_x][left]=0;            position_y++;            left=position_y-ridus;            right=position_y+ridus;            canvas[position_x][right]=2;        }    }  }int main(){    system("title 消砖块游戏中");    system("color 09");    startup();//数据的初始化    HideCursor();    while(1)    {        show();//显示画面        updateWithoutInput();//与用户输入无关的更新        updateWithInput();//与用户输入有关的更新    }    return 0;}

读到这里,这篇“C语言怎么用数组实现反弹球消砖块”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C语言怎么用数组实现反弹球消砖块

本文链接: https://lsjlt.com/news/329245.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言用数组实现反弹球消砖块
    本文项目为大家分享了C语言用数组实现反弹球消砖块的具体代码,供大家参考,具体内容如下 一、效果展示: 二、代码如下: #include<stdio.h> #includ...
    99+
    2024-04-02
  • C语言怎么用数组实现反弹球消砖块
    本文小编为大家详细介绍“C语言怎么用数组实现反弹球消砖块”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么用数组实现反弹球消砖块”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、效果展示:二、代码如下:#...
    99+
    2023-06-30
  • C语言用函数实现反弹球消砖块
    目录一、项目描述和最终的成果展示二、封装后的弹跳小球三、显示移动挡板四、反弹小球五、添加砖块并实现打砖块操作本文实例为大家分享了C语言用函数实现反弹球消砖块的具体代码,供大家参考,具...
    99+
    2024-04-02
  • C语言实现反弹球消砖块游戏
    本文实例为大家分享了C语言实现反弹球消砖块游戏的具体代码,供大家参考,具体内容如下 1.目标要求: 1.击中上方方块’H’,分数加12.下方控制线没有接到小球...
    99+
    2024-04-02
  • C语言中怎么用函数实现反弹球消砖块
    本篇内容介绍了“C语言中怎么用函数实现反弹球消砖块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、项目描述和最终的成果展示这是在上一次弹跳...
    99+
    2023-06-30
  • C语言实现简单反弹球消砖块游戏
    反弹球消砖块,是一款很简单的打砖块游戏,控制你的挡板挡住弹球,打掉上面的砖块,本篇博客中,主要使用printf与scanf函数实现消砖块游戏 整体思路 主函数 int main() ...
    99+
    2024-04-02
  • C语言用easyx实现消砖块游戏
    本文项目为大家分享了C语言用easyx实现消砖块游戏的具体代码,供大家参考,具体内容如下 一、最终效果展示 效果图如下: 这个项目还是有很多的细节漏洞的。例如: 边界控制这里还是有...
    99+
    2024-04-02
  • C语言中怎么用easyx实现消砖块游戏
    这篇文章主要讲解了“C语言中怎么用easyx实现消砖块游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中怎么用easyx实现消砖块游戏”吧!一、最终效果展示效果图如下:二、绘制静态的...
    99+
    2023-06-30
  • C语言数组实现打砖块游戏
    本文实例为大家分享了C语言数组实现打砖块游戏的具体代码,供大家参考,具体内容如下 这次我们使用数组来改进打砖块游戏。 反弹的球 首先我们实现一个可以在荧幕上反弹的小球。使用二维数组 ...
    99+
    2024-04-02
  • C语言实现双人反弹球游戏
    本文项目为大家分享C语言实现双人反弹球游戏的具体代码,供大家参考,具体内容如下 一、最终项目描述和效果 项目描述:   实现双人玩的弹跳球游戏 最终效果图如下: 二、基本...
    99+
    2024-04-02
  • C语言怎么实现打砖块游戏
    这篇文章主要介绍“C语言怎么实现打砖块游戏”,在日常操作中,相信很多人在C语言怎么实现打砖块游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言怎么实现打砖块游戏”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-30
  • 怎么用C语言实现小游戏打砖块
    这篇文章主要讲解了“怎么用C语言实现小游戏打砖块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言实现小游戏打砖块”吧!游戏目标:消除所有的方块即可过关。操作指南:游戏中使用键盘方向...
    99+
    2023-06-25
  • c语言小球反弹问题怎么解决
    在C语言中,可以使用循环结构来模拟小球的反弹问题。以下是一个简单的解决方案:```c#include int main() {int...
    99+
    2023-08-18
    c语言
  • C语言怎么实现弹跳小球效果
    本文小编为大家详细介绍“C语言怎么实现弹跳小球效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么实现弹跳小球效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、项目描述和最终项目展示项目描述: &n...
    99+
    2023-06-30
  • C语言怎么实现简单弹跳小球
    C语言可以通过使用图形库来实现简单的弹跳小球效果。首先,需要安装并使用一个图形库,比如Graphics.h。下面是一个简单的示例代码...
    99+
    2023-08-18
    C语言
  • C++怎么使用easyx实现打砖块游戏
    这篇文章主要介绍“C++怎么使用easyx实现打砖块游戏”,在日常操作中,相信很多人在C++怎么使用easyx实现打砖块游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么使用easyx实现打砖块游戏...
    99+
    2023-06-30
  • C语言游戏项目球球大作战怎么实现
    这篇文章的内容主要围绕C语言游戏项目球球大作战怎么实现进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!项目代码  直接进入代码阶段...
    99+
    2023-06-28
  • c语言变长数组怎么实现
    在C语言中,变长数组(Variable Length Arrays,VLA)可以通过使用动态分配的方式来创建。具体步骤如下: 声...
    99+
    2024-03-13
    c语言
  • 怎么用C语言数组实现顺序表
    这篇文章主要讲解了“怎么用C语言数组实现顺序表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言数组实现顺序表”吧!线性表和顺序表线性表线性表(linear list)是n个具有相同...
    99+
    2023-06-25
  • c语言怎么实现switch反汇编
    这篇文章主要介绍“c语言怎么实现switch反汇编”,在日常操作中,相信很多人在c语言怎么实现switch反汇编问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言怎么实现switch反汇编”的疑惑有所帮助!...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作