随机漫步生成是无规则的,是系统自行选择的结果。根据设定的规则自定生成,上下左右的方位,每次所经过的方向路径。
首先,创建一个RandomWalk()类和fill_walk()函数
random_walk.py
from random import choice
class Randomwalk ():
'''一个生成随机数漫步的类'''
def __init__(self,num_point=5000):
'''初始化随机漫步的属性'''
self.num_point = num_point
#所有随机漫步的开始都是坐标[0,0]
self.x_lab = [0]
self.y_lab = [0]
def fill_walk(self):
'''计算随机漫步的所有点'''
while len(self.x_lab) < self.num_point:
#决定前进方向以及前进的距离
x_direction = choice([1,-1])
x_distance = choice([0,1,2,3,4])
x_step = x_direction * x_distance
y_direction = choice([1,-1])
y_distance = choice([0,1,2,3,4])
y_step = y_direction * y_distance
#拒绝原地不动
if x_step == 0 and y_step == 0:
continue
#计算下一个点X和Y的值
next_x = self.x_lab[-1] + x_step
next_y = self.y_lab[-1] + y_step
self.x_lab.append(next_x)
self.y_lab.append(next_y)
2、绘制随机漫步图
rw_visual.py
import matplotlib.pyplot as plt from random_walk import Randomwalk from random import choice rw = Randomwalk() rw.fill_walk() plt.scatter(rw.x_lab,rw.y_lab,s=15) plt.show()
3、生成效果图片
4、修改代码-->隐藏边框
rw_visual.py
import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
while True:
rw = Randomwalk()
rw.fill_walk()
#设置绘画窗口大小
plt.figure(dpi=128,figsize=(10,6))
point_numbers = list(range(rw.num_point))
#突出起点(0,0)和终点
plt.scatter(0,0,c='green',edgecolors='none',s=100)
plt.scatter(rw.x_lab[-1],rw.y_lab[-1],c='red',edgecolors='none',s=100)
#隐藏坐标轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
plt.scatter(rw.x_lab,rw.y_lab,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)
plt.show()
keep_running = input("Make another walk")
keep_running = keep_running.lower()
if keep_running == 'n':
break
5、展示效果
总结
以上所述是小编给大家介绍的Python实现随机漫步功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
标签:
python,随机漫步
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com
暂无“Python实现随机漫步功能”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。

