驾驶卡丁车

发布时间:2022-06-25 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了驾驶卡丁车脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

D | 驾驶卡丁车

驾驶卡丁车

驾驶卡丁车

驾驶卡丁车

驾驶卡丁车

驾驶卡丁车

代码

#include<iostream>
#include<math.h>
#include<string>
using namespace std;
int mov[8][2] ={ {-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1} };
int m,n,x,y;
string a;
int q, v = 0, dir = 0;
int flag = 0;
char squ[101][101];
void printmaze()
{
	cin >> m >> n;
	for (int i = 1; i <= m; i++)
		for (int j = 1; j <= n; j++)
		{
			cin >> squ[i][j];
			if (squ[i][j] == '*')
			{
				x = i;
				y = j;
			}
		}
}
int main()
{
	printmaze();
	cin >> q;
	cin >> a;
	for (int i = 0; i < q; i++) {
		if (a[i] == 'R') {
			dir++;
			if (dir >= 8)
				dir = dir % 8;
		}
		else if (a[i] == 'L') {
			dir--;
			if (dir < 0)
				dir = dir + 8;
		}
		else if (a[i] == 'U')
			v++;
		else
		{
			if (v - 1 > 0)v--;
			else v = 0;
		}
		for (int k = 0; k < v; k++)
		{
			if (dir == 0 || dir == 2 || dir == 4 || dir == 6)
			{
				x = x + mov[dir][0];
				y = y + mov[dir][1];
				if (x<1 || y<1 || x>m || y>n || squ[x][y] == '#')
				{
					flag = 1;
					x = x - mov[dir][0];
					y = y - mov[dir][1];
					v = 0;
					break;
				}
			}
			else
			{
				x = x + mov[dir][0];
				y = y + mov[dir][1];
				if (x<1 || y<1 || x>m || y>n || squ[x][y] == '#')
				{
					flag = 1;
					x = x - mov[dir][0];
					y = y - mov[dir][1];
					v = 0;
					break;
				}
				if (squ[x - mov[dir][0]][y] == '#' && squ[x][y - mov[dir][1]] == '#')
				{
					flag = 1;
					x = x - mov[dir][0];
					y = y - mov[dir][1];
					v = 0;
					break;
				}
			}
		}
		if (flag)
		{
			cout << "Crash!" << " ";
			flag = 0;
		}
		cout << x << " " << y << endl;
	}
	return 0;
}

脚本宝典总结

以上是脚本宝典为你收集整理的驾驶卡丁车全部内容,希望文章能够帮你解决驾驶卡丁车所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: