python高级练习题:简单有趣#155:吃豆人【难度:3级】:

任务

Pac-Man的今天真的很幸运!由于小的性能问题,他的所有敌人冻结.太糟糕了Pac-Man的是没有足够的勇气去面对他们,现在,所以他不希望任何敌人见他.
 
 定大小的gamefieldN XN,吃豆人的位置(PM)和他的敌人的位置(enemies),你的任务是硬币计数,他可以收集的数量不被人发现.

一个敌人可以看到一个吃豆人,如果他们是站在同一行或列.
 
 这是保证没有敌人可以看到起始位置Pac-Man的.有在每个空正方形硬币(即其中没有吃豆人或敌人).

示例

对于N = 4,PM = [3,0],敌人= [[1,2]],结果应该是3.


令O代表硬币,P  -  Pac-Man的和E  - 敌人.
OOOO
OOEO
OOOO
POOO 

PAC-MAN不能越过第1行和第2列.

他只能收集点硬币(2,0),(2,1)和(3,1),如下所示:


x是吃豆人可以收集硬币的点.
OOOO
OOEO
XXOO
PxOO
 

输入输出

- [输入]``整数N

该字段的大小.

- [输入]整数数组PM

吃豆人的位置(对整数)

- [输入]2D整数数组enemies

敌人的位置(对数组矩阵)

- [输出]的整数

硬币数Pac-Man的可以收集.

更小精灵Katas

- [玩吃豆:吞噬所有(https://www.codewars/kata/575c29d5fcee86cb8b000136)

- [玩吃豆2:回家的路上(https://www.codewars/kata/575ed46e23891f67d90000d8)

编程目标:

def pac_man(N, PM, enemies):
  #coding and coding..


测试样例:

Test.it("Basic Tests")
Test.assert_equals(pac_man(1,[0, 0],[]),0)
Test.assert_equals(pac_man(2,[0, 0],[]),3)
Test.assert_equals(pac_man(3,[0, 0],[]),8)
Test.assert_equals(pac_man(3,[1, 1],[]),8)
Test.assert_equals(pac_man(2,[0, 0],[[1,1]]),0)
Test.assert_equals(pac_man(3,[2, 0],[[1,1]]),0)
Test.assert_equals(pac_man(3,[2, 0],[[0,2]]),3)
Test.assert_equals(pac_man(10,[4, 6],[[0,2], [5,2], [5,5]]),15)
Test.assert_equals(pac_man(8,[6, 1],[[5,4]]),7)


最佳答案(多种解法):

点击查看答案

更多关联题目:

python高级练习题:随机三胞胎测试发生器【难度:3级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python基础练习题:有多少人比我小?【难度:1级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python进阶练习题:多久每个订单将采取【难度:2级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

交流讨论:

景越Python基础训练营QQ群

欢迎各位同学加群讨论,一起学习,共同成长!

免责申明:

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/simple-fun-number-155-pac-man

更多推荐

python高级练习题:简单有趣#155:吃豆人【难度:3级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶