我正在使用一个脚本,该脚本应该导入我的csv文件,并随机将3个人放在一个团队中,并且使团队数量尽可能多。
我可以导入csv文件,但是从那时起我对如何处理非常迷茫。
我知道不是很多,但是我需要帮助才能开始。
$users = import-csv "C:\Users\Bruger\Dokumenter\Esport_liste.csv"
Write-Host $users
答案 0 :(得分:3)
这是一种可能的解决方案:
说,您有这样的CSV:
Player
David
Mary
Thomas
Alice
Michael
Gordon
Gary
Hannah
Sally
Richard
Colin
Emma
Paige
John
Alex
然后您可以从中获得一些随机团队,如下所示:
$players = Import-Csv .\players.csv
$teamSize = 3
$maxTeams = [math]::Floor($players.Count/$teamSize)
$teams = @{}
$shuffled = $players | Get-Random -Count $players.Count
$shuffled |
ForEach-Object { $i = 0 }{
$teams["$($i % $maxTeams)"] += @($_.Player)
$i++
}
这将导致类似于以下内容的哈希表:
Name Value
---- -----
0 {Alice, David, Mary}
1 {Gordon, Colin, John}
2 {Emma, Paige, Thomas}
3 {Alex, Hannah, Richard}
4 {Sally, Michael, Gary}
如果每个团队中需要更多或更少的球员,请调整$teamSize
。
编辑: 根据@ mklement0的评论进行更新。上面的说法并不确切,因为它不会总是提供与原始要求匹配的团队规模。例如,对于22位玩家的列表:
TeamSize Teams
-------- -----
1 1 x22
2 2 x11
3 3 x6 / 4 x1
4 4 x3 / 5 x2
5 5 x2 / 6 x2
6 7 x2 / 8 x1
7 7 x2 / 8 x1
8 11 x2
9 11 x2
但是,如果$teamSize
与团队总数的一半不太接近,那么它的确会产生均衡的团队。例如,对于5人的严格团队规模,您最终会得到5人组成的4个团队和2人组成的1个团队,根据情况的不同,可能会有太多的不匹配,但这会导致2人组成的5人和2个团队6,可能会更“公平”。
无论如何,@ mklement0的增强功能使要求更加严格。这是该代码:
$players = Import-Csv .\players.csv
$teamSize = 3
$maxTeams = [math]::Ceiling($players.Count/$teamSize)
$teams = @{}
$shuffled = $players | Get-Random -Count $players.Count
$shuffled |
ForEach-Object { $i = 0 }{
$teams["$([Math]::Floor($i / $teamSize))"] += @($_.Player)
$i++
}
为进行比较,这是产生的团队:
TeamSize Teams
-------- -----
1 1 x22
2 2 x11
3 3 x7 / 1 x1
4 5 x4 / 2 x1
5 5 x4 / 2 x1
6 6 x3 / 4 x1
7 7 x3 / 1 x1
8 8 x2 / 6 x1
9 9 x2 / 4 x1
答案 1 :(得分:0)
可能的解决方案是:
.waitForElementVisible('#element', 1000, 'Looking for something on some page')
我不会进一步解释。尝试理解它,并在评论中询问是否需要进一步的帮助。