Python冒泡排序如何应用到LOL厄斐琉斯控枪
Admin 2022-08-24 群英技术资讯 885 次浏览
这篇文章主要讲解了“Python冒泡排序如何应用到LOL厄斐琉斯控枪”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。当给定一个数组arr,使用冒泡排序将其按从小到大的顺序排列。
具体原理网上已经烂大街了,这里我就不去copy了,不懂的小伙伴可以借鉴Python 冒泡排序
定义:冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
有人会说这不是很简单的事情吗,只需要
def bubble(arr):
for i in range(len(arr)):
for j in range(0,len(arr)-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [2,5,3,4,1]
bubble(arr)
for i in range(len(arr)):
print("%d" % arr[i])
这样做输出的结果就是
12345
那么,假设有一个数组,数组内有若干位整数,需要以这种过程去排序:使用冒泡排序的方法,当前者比后者小那么就将前者放到序列的末尾,如果后者小于前者,那么需要将后者与前者调换位置,又由于前者小于后者,那么前者会被放到序列末尾,依次类推,当数组内的最大数与最小数进行比较时,默认将大的放到序列末尾
下面举个例子:
假设 arr=[2,5,3,4,1],按照上述方法进行排序arr第一次判断2和5,发现2比5小,将2放到序列的末尾使数组变为[5,3,4,1,2] ,依次类推数组发生变化[5,4,1,2,3]-> [5,1,2,3,4]由于1和5的特殊性,将最大的数放到序列末尾变为[1,2,3,4,5],这样排序就排好了
本算法专厄斐琉斯控枪而生,厄斐琉斯为英雄联盟的一个特殊ADC,相信玩过英雄联盟这款游戏的大家都很熟悉,更何况2021年EDG夺冠,冠军皮肤为EDG厄斐琉斯。
厄斐琉斯有五把枪,分别为绿红紫蓝白,其每个枪的功能都不一样,但玩家一直能保持着使用两把枪的状态,且两把枪之间可以随意切换使用,每把枪拥有50发子弹,用完50发后,就可以切换到下一把枪,
最优的顺序,也是大众的顺序为:白绿紫蓝红,因为白和绿契合度很高,红和白契合度很高,蓝和紫契合度很高,蓝和红契合度很高,其他的兼容性比上述组合都要差些(大众认为)。使契合度高的枪械相邻,就会有着很强的战斗力。所以此算法的需求就是将契合度高的枪械排序到相邻位置
注意:5和1其实也是相邻位置
假设1代表白色,2代表绿色,3代表紫色,4代表蓝色,5代表红色
#定义"冒泡排序”函数
def bubble(arr):
for i in range(len(arr)):
for j in range(0,len(arr)-i-1):
#判断手中枪械权重是否小于第二把武器,如果小就将其使用掉,如果大就使用另外一把武器
if arr[0] > arr[1]:
print("将",arr[0],arr[1],"调换位置,并使用",arr[1])
#5和1的逻辑判断
if arr[0] ==5 and arr[1] == 1:
temp = arr[0]
arr.append(temp)
arr.remove(arr[0])
break
arr[0],arr[1] = arr[1],arr[0]
#使用掉手中武器,并将其堆到末尾
temp=arr[0]
arr.append(temp)
arr.remove(arr[0])
print(arr)
if arr[0] < arr[1]and arr[0]!=1:
print(arr[0],"使用完成,排到最后")
temp = arr[0]
arr.append(temp)
arr.remove(arr[0])
print(arr)
#定义arr数组为最初efls默认枪械(每局初始都为此顺序)
arr = [2,5,3,4,1]
bubble(arr)
for i in range(len(arr)):
print("%d" % arr[i])
gun = {1:"白",2:"绿",3:"紫",4:"蓝",5:"红"}
print("此中每个数字代表武器的颜色为",gun)
cur_gun={2:"绿",5:"红",3:"紫",4:"蓝",1:"白"}
# 小的先使用,用掉后掉到排序的最末端,默认5小于1
# [5,3,4,1,2] [5,4,1,2,3] [5,1,2,3,4] [1,2,3,4,5]
运行结果如下:
2 使用完成,排到最后
[5, 3, 4, 1, 2]
将 5 3 调换位置,并使用 3
[5, 4, 1, 2, 3]
将 5 4 调换位置,并使用 4
[5, 1, 2, 3, 4]
将 5 1 调换位置,并使用 1
1
2
3
4
5
此中每个数字代表武器的颜色为 {1: '白', 2: '绿', 3: '紫', 4: '蓝', 5: '红'}
以上就为默认顺序变为最佳顺序的控枪思路
以上就为控枪的主要内容,若需更改初始数组,只需更改arr中的枪械顺序即可。
目前不足就是枪械是由数字来代替的,大家如果能记住每个数字对应的颜色那么就可以。
记住初始顺序的运行结果就可以了哈哈~
本文纯属娱乐并巩固算法知识,切记游戏中不要退出来使用此程序!!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python 中的pass语句语法详析,pass是一种空操作(null operation),解释器执行到它的时候,除了检查语法是否合法,什么也不做就直接跳过
在本篇文章里小编给大家整理了关于如何完美的建立一个python项目的相关知识点内容,需要的朋友们可以学习下。
这篇文章主要介绍了Python Asyncio调度原理详情,Python.Asyncio是一个大而全的库,它包括很多功能,而跟核心调度相关的逻辑除了三种可等待对象外,还有其它一些功能,它们分别位于runners.py,base_event.py,event.py三个文件中
这篇文章主要为大家详细介绍了Pyqt实现简易计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍python闭包的内容,对新手学习和理解python闭包具有一定参考价值,感兴趣的朋友就继续往下看吧,希望大家阅读完这篇文章能有所收获。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008