VB代码中,如何把两个数组中的值进行大小降序排序,然后再一 一乘以另一个数组中的随机值

本人现在要写一个战斗模拟器,模拟两个小队之间的战斗,现在卡在选择对手这一步了,现在有两个数组,arr1()和arr2(),每个数组中都有3个值(速度值)。先进行排序比对,值最大的元素第一个出手(如果有两个最大值则随机选择其中一个),然后依次循环,每次确定一个元素出手时,还要选择另一个小队的一个目标作为对手。假如第一个出手的是arr(1),那么他的目标是arr2()中3个元素随机选择一个。每一轮保证所有单位都出手一次,并且所有元素都被攻击一次,没有重复出手的元素,也没有被攻击2次的元素。请高手帮我写下这段代码。其实主要写出手的排序,和确认排序后,从另一个数组中取一个随机元素作为目标,并且每个元素都出手一次而且被攻击一次,代码可行的话有偿,谢谢。只需要判断出手顺序和目标就可以。最好附上代码注释,本人VBA新手

最简单的排序,须借助excel的函数:
Sub SmallSort()
Dim a(-1 To 3), i, b()
For i = LBound(a) To UBound(a)
a(i) = Int(Rnd * 10) '赋值给a()
Next
Rows("5:6").Delete
[a5].Resize(1, UBound(a) - LBound(a) + 1) = a
'下面是排序方法,结果放在b()内
ReDim b(1 To UBound(a) - LBound(a) + 1)
For i = 1 To UBound(b)
b(i) = Application.WorksheetFunction.Small(a, i) 'Small为从小到大,large为从大到小
Next
[a6].Resize(1, UBound(b)) = b
End Sub追问

首先谢谢解答,有几个问题请教
Dim a(-1 to 3)是什么意思,数组循环还能为负?
a()确定的是出手顺序?b()确定的是目标顺序,可以这样理解吗

温馨提示:答案为网友推荐,仅供参考
相似回答