码迷,mamicode.com
首页 > 其他好文 > 详细

坦克面试题

时间:2018-06-07 14:27:17      阅读:875      评论:0      收藏:0      [点我收藏+]

标签:交互   方向   面试题   使用   我军   style   div   ini   tao   

‘‘‘
某次战役中,为便于信息交互,我军侦察部门将此次战役的关键高地坐标设定为(x=0,y=0)并规定,每向东增加100米,x加1,每向北增加100米,y加1。同时,我军情报部门也破译了敌军向坦克发送的指挥信号,其中有三种信号(L,R,M)用于控制坦克的运动,L 和 R 分别表示使令坦克向左、向右转向,M 表示令坦克直线开进100米,其它信号如T用于时间同步,P用于位置较准。

一日,我军侦察兵发现了敌军的一辆坦克,侦察兵立即将坦克所在坐标(P, Q)及坦克前进方向(W:西,E:东,N:北,S:南)发送给指挥部,同时启动信号接收器,将坦克接收到的信号实时同步发往指挥部,指挥部根据这些信息得以实时掌控了该坦克的位置,并使用榴弹炮精准地击毁了该坦克。

假设,侦察兵发送给指挥部的信息如下:

坦克坐标:(11,39)

坦克运行方向:W

坦克接收到的信号为:MTMPRPMTMLMRPRMTPLMMTLMRRMP

请通过编程计算出坦克所在的位置(编程语言不限)
‘‘‘
class Coordinate:
    dic = {WL: S, WR: N, EL: N, ER: S, NL: W, NR: E, SL: E, SR: W}
    def __init__(self,x,y,d):
        self.x = x
        self.y = y
        self.d = d

    def message(self,msg):
        for i in msg:
            if i == M:
                if self.d == W:
                    self.x -= 1
                elif self.d == E:
                    self.x += 1
                elif self.d == N:
                    self.y += 1
                elif self.d == S:
                    self.y -= 1
            elif i in [L,R]:
                self.d = self.dic[self.d+i]
        return (self.x, self.y, self.d)

a = Coordinate(11,39,W)
s = MTMPRPMTMLMRPRMTPLMMTLMRRMP
print(a.message(s))

# http://www.hutaoren.cn/article/12/    # 可以参考

 

坦克面试题

标签:交互   方向   面试题   使用   我军   style   div   ini   tao   

原文地址:https://www.cnblogs.com/Neeo/p/9149949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!