Snake and ladder: Difference between revisions

Snake and Ladder en FreeBASIC
(Added Wren)
(Snake and Ladder en FreeBASIC)
Line 744:
Player 2 on square 94 rolls a 6 and moves to square 100
Player 2 wins!</pre>
 
 
=={{header|FreeBASIC}}==
{{trans|Visual Basic .NET}}
<lang freebasic>
Dim Shared As Integer SNL(1 To 16, 1 To 2) => {_
{ 4, 14}, { 9, 31}, {17, 7}, {20, 38}, {28, 84}, {40, 59}, {51, 67}, {54, 34}, _
{62, 19}, {63, 81}, {64, 60}, {71, 91}, {87, 24}, {93, 73}, {95, 75}, {99, 78}}
 
Randomize Timer
 
Const sixesThrowAgain = True
 
Function Turn(player As Integer, square As Integer) As Integer
Do
Dim As Integer roll = Int(Rnd * 6) + 1
Print "Player"; player; ", on square"; square; ", rolls a"; roll;
If square + roll > 100 Then
Print " but cannot move."
Else
square += roll
Print " and moves to square"; square
If square = 100 Then Return 100 : End If
Dim As Integer nxt = square
If SNL(square, square) Then nxt = SNL(nxt, nxt) : End If
If square < nxt Then
Print "Yay! Landed on a ladder. Climb up to"; nxt; "."
If nxt = 100 Then Return 100 : End If
square = nxt
Elseif square > nxt Then
Print "Oops! Landed on a snake. Slither down to"; nxt; "."
square = nxt
End If
End If
If roll < 6 Orelse Not sixesThrowAgain Then Return square : End If
Print "Rolled a 6 so roll again."
Loop
End Function
 
Dim As Integer players(3) = {1, 1, 1}
Do
For i As Integer = 1 To Ubound(players)
Dim As Integer ns = Turn(i, players(i - 1))
If ns = 100 Then
Print "Player"; i; " wins!"
Exit Do
End If
players(i - 1) = ns
Print
Next i
Loop
Sleep
</lang>
 
 
=={{header|Go}}==
2,130

edits