ACM PKU 2729 -- Robocode (…
2013-04-25 17:37
387 查看
原文地址:ACM PKU 2729 -- Robocode ( 2005 北京赛区 H 题 )作者:snuchttp://acm.pku.edu.cn/JudgeOnline/problem?id=2729
这题是模拟题,算道难题.我主要想练习一下自己考虑问题的全面性和严谨性,事实证明,功夫还不够.题目是模拟FC上的坦克大决战游戏(当然没那么复杂),通过执行一系列命令后判断场上最后的坦克.
其实用C完全可以做,但我想练习一下类(我用C++写的代码少之又少),就用C++写了.写了个300多行的程序后交上是错.我仔细检察后也没找出问题.在POJ上问了过这题的人,他告我"实际上只要把模拟的单位时间变成原来的1/6,把整个战场扩大6倍就保证不会有问题了",我照做,通过了.
其实我还是不能理解:虽然我没有扩大6倍.但我确实仔细考虑了1/3s,1/2s/2/3s的情况.现在我还是不知我哪里没有考虑到(看题太晕,放弃).看来我设计的模型不够好,写出的程序既复杂又容易出错.教训呐.用离散的点来代表连续的时间是这题的关键.
PS:北京赛区还有道更难的模拟题I题,如果能通过网上预赛的话,我一定拿来做做.
程序如下:(由于C++用的不多肯定有很多不足之处)
这题是模拟题,算道难题.我主要想练习一下自己考虑问题的全面性和严谨性,事实证明,功夫还不够.题目是模拟FC上的坦克大决战游戏(当然没那么复杂),通过执行一系列命令后判断场上最后的坦克.
其实用C完全可以做,但我想练习一下类(我用C++写的代码少之又少),就用C++写了.写了个300多行的程序后交上是错.我仔细检察后也没找出问题.在POJ上问了过这题的人,他告我"实际上只要把模拟的单位时间变成原来的1/6,把整个战场扩大6倍就保证不会有问题了",我照做,通过了.
其实我还是不能理解:虽然我没有扩大6倍.但我确实仔细考虑了1/3s,1/2s/2/3s的情况.现在我还是不知我哪里没有考虑到(看题太晕,放弃).看来我设计的模型不够好,写出的程序既复杂又容易出错.教训呐.用离散的点来代表连续的时间是这题的关键.
PS:北京赛区还有道更难的模拟题I题,如果能通过网上预赛的话,我一定拿来做做.
程序如下:(由于C++用的不多肯定有很多不足之处)
#include<iostream> #include<cstring> using namespace std; struct Shot{ int x; int y; bool be; int degree; }shot[1000]; struct Command{ int time; int name; int content; int angle; }command[1000]; int qshot,n; void shotmove(); class Tank { public: Tank(int lx,int ly,int ldegree); Tank(); ~Tank(); void settank(int lx,int ly,int ldegree); void bemoving(); void stop(); void turn(int d); void moving(); void shooting(); void killing(); void bomb(); bool getbe(); private: int x; int y; int degree; bool move; bool be; }; Tank tank[10]; int main() { int m,i,j,x,y,degree,qcommand,time,c,d; char name[10][11],strna[11],strco[6]; scanf("%d%d",&n,&m); while (n!=0 || m!=0) { c=0; for (i=0;i<n;i++) { scanf("%s%d%d%d",name[i],&x,&y,°ree); x*=6; y*=6; tank[i].settank(x,y,degree); } for (i=0;i<m;i++) { scanf("%d%s%s",&command[i].time,strna,strco); command[i].time*=6; for (j=0;j<n;j++)
相关文章推荐
- PKU__ACM&nbsp;题目总结(转)
- ACM: 图论基础题 poj2387 裸露的di…
- ACM: 一题STL map题 poj 1002 (bt…
- ACM: 广搜题+gcd判断是否有解 poj…
- ACM: 深搜题 poj 3411
- ACM: 二分法 数论题 poj 1905
- ACM: 动态规划 poj 1190
- ACM: 搜索题 poj 1691 一觉醒来居…
- ACM: 背包问题 动态规划题 toj 133…
- ACM: 0-1背包变形 动态规划题 toj …
- ACM: 几何题+hash题 poj 2002
- ACM: 划分树 poj 2761 在poj2104基…
- ACM: 树状数组 poj 3321 图论+树状…
- ACM: 动态规划题 poj 2057 树状DP
- ACM: 动态规划题 poj&nb…
- ACM: 动态规划题 poj&nb…
- ACM: uva 3902
- ACM: uva 10763 -&…
- ACM: uva 1073 - Glenbow Museum
- Robocode 编写机器人 二