Wordle comparison: Difference between revisions
Content added Content deleted
(Added Swift solution) |
No edit summary |
||
Line 1,001: | Line 1,001: | ||
<pre> |
<pre> |
||
[yellow=L, yellow=O, green=L, grey=L, grey=Y] |
[yellow=L, yellow=O, green=L, grey=L, grey=Y] |
||
</pre> |
|||
=={{header|Vlang}}== |
|||
{{trans|Go}} |
|||
<lang vlang>fn wordle(answer string, guess string) []int { |
|||
n := guess.len |
|||
if n != answer.len { |
|||
println("The words must be of the same length.") |
|||
} |
|||
mut answer_bytes := answer.bytes() |
|||
mut result := []int{len:n} // all zero by default |
|||
for i := 0; i < n; i++ { |
|||
if guess[i] == answer_bytes[i] { |
|||
answer_bytes[i] = u8(000) |
|||
result[i] = 2 |
|||
} |
|||
} |
|||
for i := 0; i < n; i++ { |
|||
ix := answer_bytes.index(guess[i]) |
|||
if ix >= 0 { |
|||
answer_bytes[ix] = u8(000) |
|||
result[i] = 1 |
|||
} |
|||
} |
|||
return result |
|||
} |
|||
fn main() { |
|||
colors := ["grey", "yellow", "green"] |
|||
pairs := [ |
|||
["ALLOW", "LOLLY"], |
|||
["BULLY", "LOLLY"], |
|||
["ROBIN", "ALERT"], |
|||
["ROBIN", "SONIC"], |
|||
["ROBIN", "ROBIN"], |
|||
] |
|||
for pair in pairs { |
|||
res := wordle(pair[0], pair[1]) |
|||
mut res2 := []string{len: res.len} |
|||
for i := 0; i < res.len; i++ { |
|||
res2[i] = colors[res[i]] |
|||
} |
|||
println("${pair[0]} v ${pair[1]} => $res => $res2\n") |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
ALLOW v LOLLY => [1, 1, 2, 0, 0] => ['yellow', 'yellow', 'green', 'grey', 'grey'] |
|||
BULLY v LOLLY => [0, 0, 2, 2, 2] => ['grey', 'grey', 'green', 'green', 'green'] |
|||
ROBIN v ALERT => [0, 0, 0, 1, 0] => ['grey', 'grey', 'grey', 'yellow', 'grey'] |
|||
ROBIN v SONIC => [0, 2, 1, 2, 0] => ['grey', 'green', 'yellow', 'green', 'grey'] |
|||
ROBIN v ROBIN => [2, 2, 2, 2, 2] => ['green', 'green', 'green', 'green', 'green'] |
|||
</pre> |
</pre> |
||