POJ--1059 Chutes and Ladders

来源:互联网 发布:长沙知豆电动车租赁点 编辑:程序博客网 时间:2024/06/07 06:11

一道关于模拟的水题,就是小时候常玩的那种游戏。有前进、倒退、多掷一次、下轮禁掷四种情况。

具体代码如下:

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int die[1005],area[105],player[10],sign[10];int main(){int coun,i,n;scanf("%d",&die[1]);for(i=2;die[i-1];i++)scanf("%d",&die[i]);coun=i-1;while(scanf("%d",&n)==1&&n){for(i=1;i<=100;i++)area[i]=i;int s,t;while(scanf("%d%d",&s,&t)==2&&s&&t)area[s]=t;while(scanf("%d",&s)==1&&s){if(s>0)area[s]=101;else area[abs(s)]=-1;}int dies=0,players=0;memset(player,0,sizeof(player));memset(sign,0,sizeof(sign));while(++dies<coun){if(sign[players%n]){sign[players%n]=0;--dies;}else{player[players%n]+=die[dies];if(player[players%n]>100)player[players%n]-=die[dies];else if(player[players%n]==100){printf("%d\n",players%n+1);break;}else if(player[players%n]!=area[player[players%n]]){if(area[player[players%n]]==-1)sign[players%n]=1;else if(area[player[players%n]]==101)--players;else player[players%n]=area[player[players%n]];}}++players;}}return 0; }



0 0
原创粉丝点击