在掷骰子游戏中。会依据所掷数字在地图中前进几步。前进完毕后须要依据当前地图位置所看到的的障碍进行对应操作,当中障碍表示:
1)9:无障碍
2)1:停掷一轮,即下轮所掷数字无效。
3)2:后退两步,假设已经到起点不再后退。
4)3:奖励前进一步
假设在游戏过程中,已经走到地图终点,则游戏结束。依据输入的地图数组,和5个骰子数的数组,返回终于玩家前进了多少步。
演示样例
1)输入:map_len = 15, map = {9,1,9,9,9,2,9,9,9,9,9,9,9,9,9}。dice_val = {1,2,1,3,1},
返回:4
2)输入:map_len = 16, map = {9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9},dice_val = {2,1,4,1,6},
返回:15
C++
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int len;
while(cin>>len)
{
vector<int> tmp;
int num;
for(int i=0;i<len;i++)
{
cin>>num;
tmp.push_back(num);
}
int start=0;
int step;
for(int i=0;i<5;i++)
{
cin>>step;
int idx=start+step;
if(idx>=len-1)
{
// cout<<len-1;
start=len-1;
break;
}
else
{
int a=tmp[idx];
if(a==1)
{
i++;
}
else if(a==2)
{
if(idx>=2)
{
start=idx-2;
}
else
{
start=0;
}
}
else if(a==3)
{
if(idx>=len-1)
{
start=len-1;
break;
}
else
{
start=idx+1;
}
}
else
{
if(idx>=len-1)
{
start=len-1;
break;
}
else
{
start=idx;
}
}
}
}
cout<<start<<endl;
}
return 0;
}

1770

被折叠的 条评论
为什么被折叠?



