当前位置: 首页 > 编程语言 > 正文

c语言模拟遥控小车

admin 发表于2016年11月28日 16:39

c语言模拟遥控小车,朋友给的竞赛题目

QQ图片20160623225739.jpg



#include "stdio.h"
struct point{
	int x;
	int y;
};
struct control{
	int t;//时间 
	char w;//方向 
};
int main(){
	struct point kaiche(int n,struct control opion[]);
	while(1){
	int n;
	scanf("%d",&n);	
	if(n==0)break;
	int i;
	struct control opion[n];
	struct point point={0,0 
	};
	for(i=0;i<n;i++){
		int d;char c;
		//d=30;c='R';
		scanf("%d %c",&d,&c);
		opion[i].t = d;
		opion[i].w = c;
	}
	point = kaiche(n,opion);
	printf("%d %d\n",point.x,point.y);
	}
	return 0;
}
struct point kaiche(int n,struct control opion[]){
	struct point n_point={0,0};
	//小车开始跑
	int nowcon=1;//当前方向 0=>x 1=>y 
	int zf = 1;//正负方向 
	int time=0;//时间 
	int lasttime=0;//上个状态的时间 
	int v=1;//速度 
	int isa=0;//1=>按下 是否按下了A 
	int i; 
	for(i=0;i<n;i++){
		int t = opion[i].t;
		time = t; 
		if(nowcon==1){
			//向y跑
			 n_point.y +=zf*(t-lasttime)*v;
		}else{
			//向x跑 
			n_point.x +=zf*(t-lasttime)*v;
		}
		lasttime = t;
		int w = opion[i].w;//方向
		if(w=='U'){nowcon=1;zf = 1;} 
		if(w=='D'){nowcon=1;zf = -1;}
		if(w=='L'){nowcon=0;zf = -1;}
		if(w=='R'){nowcon=0;zf = 1;} 
		if(w=='A'){nowcon=nowcon;zf = zf;
			if(isa==0){
				isa=1;
				v=2;
			}else{
				isa=0;
				v=1;
			}}
		if(n_point.y<0)n_point.y=0;
		if(n_point.x<0)n_point.x=0;
	}
	if(time<50){
		if(nowcon==1){
			//向y跑
			 n_point.y +=zf*(50-time)*v;
		}else{
			//向x跑 
			n_point.x +=zf*(50-time)*v;
		}
		if(n_point.y<0)n_point.y=0;
		if(n_point.x<0)n_point.x=0;
	}
	return n_point;
	//小车结束跑
}
转自 小草窝博客 。 
全文完
本文标签:
本文标题: c语言模拟遥控小车
本文链接: http://blog.qqzzz.net/m/?post=11

〓 随机文章推荐

共有2796阅 / 0我要评论
  1. 还没有评论呢,快抢沙发~

发表你的评论吧返回顶部

!评论内容需包含中文

请勾选本项再提交评论