战斗开始前,双方先对自己的武器排好使用顺序,然后再一件一件地按顺序使用。编号小的武器,排在前面。若有多支arrow,用过的排在前面。排好序后,攻击者按此排序依次对敌人一件一件地使用武器 有一个weapon[4]数组,分别是武器的数量,weapon[2]是没用过的arrow,weapon[3]是用过的arrow 如何实现函数
时间: 2024-02-18 10:00:14 浏览: 63
可以使用冒泡排序算法对武器进行排序,使得编号小的武器排在前面,同时用过的arrow排在前面。以下是示例代码:
```python
def sort_weapons(weapons):
for i in range(len(weapons)):
for j in range(len(weapons)-i-1):
if weapons[j][0] > weapons[j+1][0] or (weapons[j][0] == weapons[j+1][0] and weapons[j][1] > weapons[j+1][1]):
weapons[j], weapons[j+1] = weapons[j+1], weapons[j]
return weapons
def use_weapons(weapons):
sorted_weapons = sort_weapons([(weapon, idx) for idx, weapon in enumerate(weapons)])
for weapon, idx in sorted_weapons:
if weapon > 0:
if idx == 2:
weapons[idx] -= 1
print("使用了一支没用过的arrow")
elif idx == 3:
weapons[idx] -= 1
print("使用了一支用过的arrow")
else:
weapons[idx] -= 1
print("使用了一件武器")
```
这个函数先调用`sort_weapons`函数对武器进行排序,然后依次使用武器并打印输出使用的信息。函数使用一个二维数组来表示武器及其编号,排序时先按照武器编号从小到大排序,若武器编号相同,则按照是否为用过的arrow来排序。最后,函数使用一个`if`语句来判断当前武器的编号是否为2或3,即是否为arrow,打印相应的信息并将该武器的数量减1。
阅读全文