c语言弹球路程,c语言编写弹球游戏

本文目录一览:

怎么用c语言编一个简单弹球问题

/*Ball.h:定义结构体和BALL相关的函数*/

#ifndef _BALL_VC_SUPER_ADMI_2009_12_13_INCLUDE_

#define _BALL_VC_SUPER_ADMI_2009_12_13_INCLUDE_

typedef struct tagPOINT3D //3D坐标系

{

float x;

float y;

float z;

}POINT3D;

typedef struct tagBALL //球

{

POINT3D cur_coor;

POINT3D speed;

float radius;

}BALL;

typedef struct tagBOX //球的长方体运动场所,中空

{

POINT3D angle_coor[8]; //坐标,从下往上,顺时针

float length;

float width;

float height;

}BOX;

void init_box(BOX *mybox,POINT3D origi_coor,POINT3D LWH)

{

int i;

mybox-height=LWH.x;

mybox-width=LWH.y;

mybox-height=LWH.z;

for(i=0;i8;i++)mybox-angle_coor[i]=origi_coor;

mybox-angle_coor[1].x=origi_coor.x+LWH.x;

mybox-angle_coor[2].x=origi_coor.x+LWH.x;

mybox-angle_coor[2].y=origi_coor.y+LWH.y;

mybox-angle_coor[3].y=origi_coor.y+LWH.y;

for(i=4;i8;i++)mybox-angle_coor[i].z=origi_coor.z+LWH.z;

mybox-angle_coor[5].x=origi_coor.x+LWH.x;

mybox-angle_coor[6].x=origi_coor.x+LWH.x;

mybox-angle_coor[6].y=origi_coor.y+LWH.y;

mybox-angle_coor[7].y=origi_coor.y+LWH.y;

}

void move_in_box(BALL* myball,BOX mybox) //匀速运动

{

myball-cur_coor.x+=myball-speed.x;

myball-cur_coor.y+=myball-speed.y;

myball-cur_coor.z+=myball-speed.z;

}

void hit_wall(BALL* myball,POINT3D dir) //撞墙

{

myball-speed.x*=dir.x;

myball-speed.y*=dir.y;

myball-speed.z*=dir.z;

}

int coll_dete_rad_ign(BALL* myball,BOX mybox) //检测(忽略半径)

{

POINT3D dir;

dir.x=1;dir.y=1;dir.z=1;

if(myball-cur_coor.x=mybox.angle_coor[0].x ||myball-cur_coor.x=mybox.angle_coor[6].x)

dir.x=-1;

if(myball-cur_coor.y=mybox.angle_coor[0].y ||myball-cur_coor.y=mybox.angle_coor[6].y)

dir.y=-1;

if(myball-cur_coor.z=mybox.angle_coor[0].z ||myball-cur_coor.z=mybox.angle_coor[6].z)

dir.z=-1;

if(dir.x==-1 ||dir.y==-1 ||dir.z==-1){hit_wall(myball,dir);return 1;}

return 0;

}

#endif

//BALL.H文件结束

/*Ball.c:测试代码*/

#include “Ball.h”

#include stdio.h

int main(void)

{

POINT3D origi;

POINT3D LWH;

BOX mybox;

BALL myball;

int i;

origi.x=0;origi.y=0;origi.z=0;

printf(“矩形空间尺寸:”);

scanf(“%f%f%f”,LWH.x,LWH.y,LWH.z);

printf(“球的初始坐标:”);

scanf(“%f%f%f”,myball.cur_coor.x,myball.cur_coor.y,myball.cur_coor.z);

printf(“球的速度:”);

scanf(“%f%f%f”,myball.speed.x,myball.speed.y,myball.speed.z);

/* LWH.x=10;LWH.y=10;LWH.z=10;

myball.cur_coor.x=5;myball.cur_coor.y=5;myball.cur_coor.z=5;

myball.speed.x=0.2;myball.speed.y=0.5;myball.speed.z=1;*/

i=0;init_box(mybox,origi,LWH);

printf(“\n相关信息如下:\n”);

printf(“矩形空间尺寸–L:%f,W:%f,H:%f\n”,LWH.x,LWH.y,LWH.z);

printf(“球的初始坐标–X:%f,Y:%f,Z:%f\n”,myball.cur_coor.x,myball.cur_coor.y,myball.cur_coor.z);

printf(“球的初始速度–X:%f,Y:%f,Z:%f\n”,myball.speed.x,myball.speed.y,myball.speed.z);

printf(“碰撞点坐标如下:\n”);

while(i10)

{

if(coll_dete_rad_ign(myball,mybox)==1)

{

i++;

printf(“%f,%f,%f\n”,myball.cur_coor.x,myball.cur_coor.y,myball.cur_coor.z);

}

move_in_box(myball,mybox);

}

return 0;

}

请教C语言大神小球反弹问题。。。指出我的错误,并告知为何会出现如此结果。。

sum的公式不对.你算一下不就知道了.

落下一次,后弹起.总路程:h+0.25h;而你的代码里面i=1;算出来的sum=h+0.5h;

假如第二次弹起.总路程:h+0.25h+0.25h+0.25*0.25h;

你代码里面算一下:h+0.5h+2*0.25*0.25h;

你的算法可以写成

for(i=1;im;i++){

sum+=h; 等同sum=sum+h;

h*=0.25;等同于h=0.25*h;

}

sum+=h;

你再算一下看看对不对.

c语言一个球从80米高空落下,落地反复弹起。每次弹起高度是上次的一半,求次8次落地所经过的总路程

没有什么特别的含义,n=2,主要和n8一起使用,你可以想想,球总共8次落地,弹起“七次”,而for(n=2;n8;n++)正好循环“七次”。。你喜欢的话for(n=3;n9;n++),又有什么不可以呢?希望对你有所帮助!

C语言,一个球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时

sn=sn+2*hn; 前边的sn的值就是,上一次sn的值加这次一上一下的值么。

一上一下就是2次么,2次就是乘上高度的2倍么。比如第一次弹起来,上去了50米 那下来也是50米啊,再接触到地面那就是第二次弹起了是不是。第二次也是上去25米,下来25米,接触到地面了就是第三次了,依此类推不都是高度的2倍么。

仔细理解一下是不是。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/199179.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-04 19:14
下一篇 2024-12-04 19:14

相关推荐

  • 为什么不用Python开发游戏

    Python是一种高级编程语言,拥有简单易学、代码简洁等优点。同时,Python也是一种多用途的语言,可以用于Web开发、数据分析以及机器学习等领域。然而,对于游戏开发领域,Pyt…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • 使用Python制作游戏代码

    Python是一种高级编程语言,因其简洁明了的代码风格、易于学习和使用而备受青睐。Python已经成为游戏制作的热门选择之一,可以通过Pygame、Panda3D等工具来实现游戏制…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python语言实现人名最多数统计

    本文将从几个方面详细介绍Python语言实现人名最多数统计的方法和应用。 一、Python实现人名最多数统计的基础 1、首先,我们需要了解Python语言的一些基础知识,如列表、字…

    编程 2025-04-28

发表回复

登录后才能评论