/*★ 弾丸の動きを管理する 前田 稔 ★*/
#include <stdio.h>
#include <conio.h>
#include <list>
using namespace std;
typedef struct
{ int n;
float x,y;
float dx,dy;
} SHOT;
SHOT tbl[4]= {{ 0, 10.0f, 8.0f, 1.0f, 0.1f },
{ 1, 15.0f, 3.0f, 1.0f, 0.2f },
{ 2, 0.0f, 5.0f, 1.0f, 0.3f },
{ 3, 13.0f, 0.0f, 1.0f, 0.4f } };
int main()
{ int i;
list<SHOT> v;
list<SHOT>::iterator p,q;
for(i=0; i<4; i++) v.push_back(tbl[i]);
while(v.size())
{
for(p=v.begin(); p!=v.end(); p++)
{ printf("%d x=%6.2f y=%6.2f\n", p->n,p->x,p->y);
p->x+= p->dx;
p->y+= p->dy;
if(p->x>20.0f)
{ q= p;
p--;
v.erase(q);
}
}
printf("\n");
getch();
}
return 0;
}
|