最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)反彈球小游戲

 更新時間:2020年02月24日 19:00:08   作者:Cielfire  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)反彈球小游戲,利用函數(shù)寫的C語言小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文為大家分享了C語言反彈球游戲的具體代碼,供大家參考,具體內(nèi)容如下

這是利用函數(shù)寫的C語言小游戲,用來檢驗自己的學習成果

反彈球的實現(xiàn)主要有幾個子函數(shù)組成

問題也在于如何實現(xiàn)小球的下落,以及碰撞得分等情況

#include<stdio.h>
 
#include<windows.h>
#include<conio.h>
 
//定義全局變量
int high,width; //游戲邊界 
int ball_x,ball_y; //小球位置
int ball_vx,ball_vy; //小球速度
int position_x,position_y; //擋板中心坐標
int radius;  //擋板半徑 
int left,right; //鍵盤左右邊界 
int ball_number; //反彈小球次數(shù)
int block_x,block_y; //方塊的位置 
int score; //消掉方塊的個數(shù) 
 
void HideCursor() //隱藏光標 
{
 CONSOLE_CURSOR_INFO cursor_info = {1, 0};
 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
 
void gotoxy(int x,int y) //光標移動到(x,y)位置,清屏函數(shù) 
{
 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
 COORD pos;
 pos.X = x;
 pos.Y = y;
 SetConsoleCursorPosition(handle,pos);
}
 
void startup() //數(shù)據(jù)初始化 
{
 high=18; //定義邊界 
 width=26;
 
 ball_x=0; //小球坐標 
 ball_y=width/2;
 
 ball_vx=1; //小球速度方向 
 ball_vy=1;
 
 position_x=high-1; //擋板中心坐標
 position_y=width/2; 
 
 radius=5; //擋板半徑
 
 left=position_y-radius; //鍵盤邊界 
 right=position_y+radius;
 
 block_x=0;  //方塊位置
 block_y=width/2-4; 
 
 ball_number=0; //反彈小球個數(shù)
 
 score=0; //消掉小球個數(shù) 
 
 HideCursor(); 
 } 
 
void show() //顯示界面
{
 gotoxy(0,0);
 int i,j;
 for(i=0;i<=high;i++)
 {
 for(j=0;j<=width;j++)
 {
 if((i==ball_x) && (j==ball_y)) //輸出小球 
 printf("0");
 else if((i==block_x)&& (j==block_y)) //輸出滑塊  //輸出下邊界 
  printf("@");
 else if(i==high)  //輸出下邊界 
  printf("-");
 else if(j==width)  //輸出右邊界 
  printf("|");
 else if((i==high-1)&&(j>left)&&(j<right)) 
  printf("*");
 else printf(" ");
 }
 printf("\n");
 }
 printf("反彈小球次數(shù):%d\n",ball_number);
 printf("消掉小球個數(shù):%d\n",score);
 } 
 
void updateWithoutInpute() //與用戶輸入無關的更新
{
 if(ball_x==position_x-1)  //小球撞到擋板 
 {
 if((ball_y>=left)&&(ball_y<=right))
 {
 ball_number++;
 //printf("\a");
 }
 else
 {
 printf("游戲失敗\n");
 system("pause");
 exit(0);
 }
 }
 
 
 ball_x = ball_x + ball_vx; //小球向速度方向移動 
 ball_y = ball_y + ball_vy;
 
 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((block_x==ball_x) && (block_y==ball_y)) //小球撞到滑塊 
 {
 block_y=rand()%width-1;
 score++;
 }
 Sleep(120);
 
 } 
 
void updateWithInpute() //與用戶輸入有關的更新
{
 char input;
 if(kbhit())
 {
 input=getch();
 if((input=='a')&&(left>=0))
 {
 position_y--;
 left=position_y-radius; //鍵盤邊界 
 right=position_y+radius;
 }
 if((input=='d')&&(right<width))
 {
 position_y++;
 left=position_y-radius; //鍵盤邊界 
 right=position_y+radius;
 } 
 }
 }
 
int main()
{
 system("color 2f");   //改變控制臺顏色
 startup();
 while(1)
 { 
 show();     //顯示界面
 updateWithoutInpute();  //與用戶輸入無關的更新
 updateWithInpute();   //與用戶輸入有關的更新
 }
 } 

小編之前也收藏了一段代碼:C語言實現(xiàn)小球反彈,分享給大家

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
void ball()//1.畫出小球
{
 printf("\t\t\t◎");
}
int main()
{
 int h=20;//球的高度初始化為20
 int i,j;//i是用來確定球的起點與終點,j是確定球的位置
 int der=1;//判斷等于1時球下落,為0時球上升
 while(h>0)//高度大于0時,球都在動(當高度為0時停止)
 {
 if(der==1)
 {
 for(i=20-h;i<20;i++)//確定起點和終點 下落過程
 {
 system("cls");
 for(j=0;j<=i;j++)//確定球的位置
 {
  printf("\n");
 }
 ball();
 Sleep(50);
 }
 der=0;
 }
 else
 {
 h=h*8/9;//強起來高度是原來的9分之8
 for(i=20;i>=20-h;i--)//確定起點和終點 上升過程
 {
 system("cls");
 for(j=0;j<=i;j++)//確定球的位置
 {
  printf("\n");
 }
 ball();
 Sleep(50);
 }
 der=1;
 }
 
 }
 return 0;
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C語言中scanf與scnaf_s函數(shù)詳解

    C語言中scanf與scnaf_s函數(shù)詳解

    大家好,本篇文章主要講的是C語言中scanf與scnaf_s函數(shù)詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C++多線程傳參的實現(xiàn)方法

    C++多線程傳參的實現(xiàn)方法

    本文主要介紹了C++多線程傳參的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • FFmpeg實現(xiàn)將編碼后數(shù)據(jù)保存成mp4

    FFmpeg實現(xiàn)將編碼后數(shù)據(jù)保存成mp4

    這篇文章主要為大家詳細介紹了FFmpeg如何實現(xiàn)將編碼后數(shù)據(jù)保存成mp4,即從內(nèi)存塊中獲取原始數(shù)據(jù),然后依次進行解碼、編碼、最后保存成mp4視頻文件,感興趣的可以了解一下
    2023-08-08
  • C語言二分查找算法及實現(xiàn)代碼

    C語言二分查找算法及實現(xiàn)代碼

    本文主要介紹C語言的二分查找算法,這里給大家詳細介紹了什么是二分查找,并提供代碼實例,需要的小伙伴可以參考下
    2016-07-07
  • C語言實現(xiàn)停車場管理系統(tǒng)

    C語言實現(xiàn)停車場管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)停車場管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C++類與對象深入之靜態(tài)成員與友元及內(nèi)部類詳解

    C++類與對象深入之靜態(tài)成員與友元及內(nèi)部類詳解

    朋友們好,這篇播客我們繼續(xù)C++的初階學習,現(xiàn)在對我們對C++的靜態(tài)成員,友元,內(nèi)部類知識點做出總結(jié),整理出來一篇博客供我們一起復習和學習,如果文章中有理解不當?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學習,共同進步
    2022-06-06
  • C語言中printf的兩種輸出對齊方式

    C語言中printf的兩種輸出對齊方式

    C語言中左對齊是C語言的默認輸出方式,右對齊是一種特殊的輸出方式,左對齊和右對齊都對應著一個已知的輸出寬度,輸出的字符串根據(jù)字符串的長度在寬度上進行補充,補充字符是空格,在使用printf函數(shù)輸出時,需要在格式字符串中使用%-*s和%*s的格式來分別表示
    2024-02-02
  • opencv實現(xiàn)輪廓高斯濾波平滑

    opencv實現(xiàn)輪廓高斯濾波平滑

    這篇文章主要為大家詳細介紹了opencv實現(xiàn)輪廓高斯濾波平滑,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++實現(xiàn)推箱子小游戲源碼

    C++實現(xiàn)推箱子小游戲源碼

    這篇文章主要為大家詳細介紹了C++實現(xiàn)推箱子小游戲源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • vs2019永久配置opencv開發(fā)環(huán)境的方法步驟

    vs2019永久配置opencv開發(fā)環(huán)境的方法步驟

    這篇文章主要介紹了vs2019永久配置opencv開發(fā)環(huán)境的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03

最新評論

安化县| 岳普湖县| 平昌县| 卢龙县| 宝鸡市| 南丰县| 南和县| 团风县| 台东市| 长丰县| 阳西县| 钦州市| 灌阳县| 泽库县| 娱乐| 岐山县| 永寿县| 镇宁| 拜泉县| 瑞昌市| 肇庆市| 如皋市| 星座| 呼图壁县| 闽清县| 治多县| 新余市| 隆子县| 连城县| 永昌县| 兴国县| 遂宁市| 宜昌市| 南华县| 鸡泽县| 安吉县| 潮州市| 靖边县| 嵊州市| 岱山县| 云梦县|