Wordle comparison: Difference between revisions
Content added Content deleted
(→{{header|Raku}}: add another matching color/target) |
|||
Line 516: | Line 516: | ||
green green green green green |
green green green green green |
||
</pre> |
</pre> |
||
=={{header|Yabasic}}== |
|||
{{trans|Phix}} |
|||
<lang Yabasic>// Rosetta Code problem: http://rosettacode.org/wiki/Wordle_comparison |
|||
// by Galileo, 02/2022 |
|||
sub wordle$(answer$, guess$) |
|||
local n, i, k, result$ |
|||
n = len(guess$) |
|||
if n = len(answer$) then |
|||
result$ = left$("0000000000000000000", n) |
|||
for i = 1 to n |
|||
if mid$(guess$, i, 1) = mid$(answer$, i, 1) then |
|||
mid$(answer$, i, 1) = "0" |
|||
mid$(result$, i, 1) = "2" |
|||
end if |
|||
next |
|||
for i = 1 to n |
|||
k = instr(answer$, mid$(guess$, i, 1)) |
|||
if k then |
|||
mid$(answer$, k, 1) = "0" |
|||
mid$(result$, i, 1) = "1" |
|||
end if |
|||
next |
|||
else |
|||
print "words must be same length" |
|||
end if |
|||
return result$ |
|||
end sub |
|||
data "ALLOW", "LOLLY", "BULLY", "LOLLY", "ROBIN", "ALERT", "ROBIN", "SONIC", "ROBIN", "ROBIN" |
|||
dim colours$(3) : colours$(0) = "grey" : colours$(1) = "yellow" : colours$(2) = "green" |
|||
for i = 1 to 5 |
|||
read answer$, guess$ |
|||
res$ = wordle$(answer$, guess$) |
|||
print answer$, " v ", guess$, " => "; |
|||
for j = 1 to len(res$) |
|||
print colours$(val(mid$(res$, j, 1))), " "; |
|||
next |
|||
print |
|||
next |
|||
</lang> |
|||
{{out}} |
|||
<pre>ALLOW v LOLLY => yellow yellow green grey grey |
|||
BULLY v LOLLY => grey grey green green green |
|||
ROBIN v ALERT => grey grey grey yellow grey |
|||
ROBIN v SONIC => grey green yellow green grey |
|||
ROBIN v ROBIN => green green green green green |
|||
---Program done, press RETURN---</pre> |