Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
2048 Puzzle
#43
A faster Autoplay almost burnt out my CPU before I put _Limit 4000 in it!
Code: (Select All)
' 2048 - Autoplay 3 Best score faster!  b+ 2024-10-27 10544 high
DefLng A-Z: Randomize Timer: ReDim Shared B(15), Score, High
Screen _NewImage(405, 405, 32): _ScreenMove 450, 180
_PrintMode _KeepBackground: _Font _LoadFont("arial.ttf", 28)
Color , &HFFBB0033
restart: AddNewCell: AddNewCell
DoLoop: Cls: _Title "High Score:" + Str$(High) + "  Score:" + Str$(Score)
If High = 0 Then DisplayBoard
eF = 0: xF = 0: yF = 0
For y = 0 To 3: For x = 0 To 3
        If B(y * 4 + x) = 0 Then eF = eF + 1
        If y < 3 Then If B(y * 4 + x) = B((y + 1) * 4 + x) Then yF = yF + 1
        If x < 3 Then If B(y * 4 + x) = B(y * 4 + (x + 1)) Then xF = xF + 1
Next: Next
If (eF = 0 And xF = 0) And yF = 0 Then ' no moves left
    If Score > High Then High = Score: DisplayBoard
    Score = 0: ReDim B(15): GoTo restart
End If
ReDim t(15): jm = 0 ' Update Board by arrow keys
If xF > yF Then
    If Rnd < .85 Then d = 1 Else d = 2
Else
    d = 4
End If
Select Case d
    Case 1: jm = 4: ks = 0: ke = 3: kstep = 1: km = 1 ' left
    Case 2: jm = 4: ks = 3: ke = 0: kstep = -1: km = 1 'right
    Case 3: jm = 1: ks = 0: ke = 3: kstep = 1: km = 4 ' up
    Case 4: jm = 1: ks = 3: ke = 0: kstep = -1: km = 4 ' down
End Select
For j = 0 To 3
    If jm = 4 Then p = j * jm + ks Else If kstep = 1 Then p = j Else p = 12 + j
    For k = ks To ke Step kstep
        If B(j * jm + k * km) <> 0 Then
            If t(p) = B(j * jm + k * km) Then
                t(p) = t(p) + B(j * jm + k * km): Score = Score + t(p)
                p = p + kstep * km
            ElseIf t(p) = 0 Then '
                t(p) = B(j * jm + k * km)
            Else
                p = p + kstep * km: t(p) = B(j * jm + k * km)
            End If
        End If
Next k, j
For j = 0 To 15: B(j) = t(j): Next: AddNewCell: _Limit 4000: GoTo DoLoop
Sub AddNewCell '  == Insert new cell onto board in random unused blank ==
    Dim temp(15), x, y, c, i, x1, y1
    For y = 0 To 3: For x = 0 To 3
            If B(y * 4 + x) = 0 Then temp(c) = y * 4 + x: c = c + 1
    Next x, y
    If c > 0 Then
        i = Int(Rnd * c): y1 = Int(temp(i) / 4): x1 = temp(i) Mod 4
        If Rnd < .9 Then B(4 * y1 + x1) = 2 Else B(4 * y1 + x1) = 4
    End If
End Sub
Sub DisplayBoard
    For x = 0 To 3: For y = 0 To 3
            If B(x + 4 * y) Then pwr = Log(B(x + 4 * y)) / Log(2) Else pwr = 0
            bg& = _RGB32(255 - 17 * pwr): bg2& = _RGB32(128 - 12 * pwr)
            Line (x * 100 + 4, y * 100 + 4)-Step(100 - 4, 100 - 4), bg&, BF
            Line (x * 100 + 5, y * 100 + 5)-Step(100 - 6, 100 - 6), bg2&, B
            If B(x + 4 * y) > 0 Then
                n$ = _Trim$(Str$(B(x + 4 * y))): u = x * 100: v = y * 100
                ox = (100 - _PrintWidth(n$)) / 2: oy = (100 - _FontHeight) / 2
                Color &HFF000000: _PrintString (u + ox + 2, v + oy + 2), n$
                Color &HFFFFFFFF: _PrintString (u + ox, v + oy), n$
            End If
    Next: Next: _Display: _Limit 30
End Sub

   
This is starting to get close to my highest!
  724  855  599  923  575  468  400  206  147  564  878  823  652  556 bxor cross forever
Reply


Messages In This Thread
2048 Puzzle - by Dav - 10-17-2024, 02:19 AM
RE: 2048 Puzzle - by FellippeHeitor - 10-17-2024, 02:42 AM
RE: 2048 Puzzle - by Dav - 10-17-2024, 02:48 AM
RE: 2048 Puzzle - by FellippeHeitor - 10-17-2024, 03:17 AM
RE: 2048 Puzzle - by bplus - 10-17-2024, 09:16 AM
RE: 2048 Puzzle - by Dav - 10-17-2024, 01:01 PM
RE: 2048 Puzzle - by bplus - 10-17-2024, 03:36 PM
RE: 2048 Puzzle - by Dav - 10-17-2024, 04:19 PM
RE: 2048 Puzzle - by bplus - 10-17-2024, 04:26 PM
RE: 2048 Puzzle - by SMcNeill - 10-17-2024, 05:05 PM
RE: 2048 Puzzle - by bplus - 10-17-2024, 05:15 PM
RE: 2048 Puzzle - by SMcNeill - 10-17-2024, 05:28 PM
RE: 2048 Puzzle - by Dav - 10-17-2024, 10:46 PM
RE: 2048 Puzzle - by bplus - 10-18-2024, 12:48 AM
RE: 2048 Puzzle - by Dav - 10-18-2024, 11:49 AM
RE: 2048 Puzzle - by bplus - 10-18-2024, 01:51 PM
RE: 2048 Puzzle - by bplus - 10-18-2024, 09:59 PM
RE: 2048 Puzzle - by Dav - 10-20-2024, 10:44 PM
RE: 2048 Puzzle - by bplus - 10-20-2024, 11:32 PM
RE: 2048 Puzzle - by bplus - 10-21-2024, 09:18 AM
RE: 2048 Puzzle - by SMcNeill - 10-21-2024, 10:19 AM
RE: 2048 Puzzle - by bplus - 10-22-2024, 11:37 AM
RE: 2048 Puzzle - by SMcNeill - 10-22-2024, 02:27 PM
RE: 2048 Puzzle - by SMcNeill - 10-22-2024, 02:39 PM
RE: 2048 Puzzle - by bplus - 10-22-2024, 03:26 PM
RE: 2048 Puzzle - by SMcNeill - 10-22-2024, 03:49 PM
RE: 2048 Puzzle - by SMcNeill - 10-22-2024, 03:36 PM
RE: 2048 Puzzle - by bplus - 10-22-2024, 03:38 PM
RE: 2048 Puzzle - by bplus - 10-22-2024, 04:37 PM
RE: 2048 Puzzle - by SMcNeill - 10-22-2024, 08:18 PM
RE: 2048 Puzzle - by bplus - 10-22-2024, 04:47 PM
RE: 2048 Puzzle - by SMcNeill - 10-23-2024, 03:44 AM
RE: 2048 Puzzle - by bplus - 10-23-2024, 10:32 AM
RE: 2048 Puzzle - by bplus - 10-23-2024, 12:40 PM
RE: 2048 Puzzle - by SMcNeill - 10-23-2024, 01:51 PM
RE: 2048 Puzzle - by bplus - 10-23-2024, 05:00 PM
RE: 2048 Puzzle - by bplus - 10-24-2024, 06:42 PM
RE: 2048 Puzzle - by Dav - 10-25-2024, 07:32 PM
RE: 2048 Puzzle - by bplus - 10-26-2024, 12:34 PM
RE: 2048 Puzzle - by Dav - 10-26-2024, 01:21 PM
RE: 2048 Puzzle - by bplus - 10-26-2024, 01:33 PM
RE: 2048 Puzzle - by bplus - 10-27-2024, 01:39 AM
RE: 2048 Puzzle - by bplus - 10-27-2024, 10:08 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Classic 15 puzzle Dav 5 1,124 10-15-2024, 01:08 AM
Last Post: bplus
  Simple Sudoku puzzle (updated with 500 puzzles) Dav 7 2,140 06-12-2024, 05:43 PM
Last Post: Dav
  RocoLoco - Row & Column math puzzle game. Dav 3 1,341 06-07-2024, 12:11 PM
Last Post: Dav
  UnscramblePic.bas - Rotate picture pieces puzzle Dav 14 2,956 07-15-2023, 07:12 PM
Last Post: Steffan-68
  Make5 - Board clearing puzzle game Dav 9 2,188 07-15-2023, 01:47 AM
Last Post: Dav

Forum Jump:


Users browsing this thread: 1 Guest(s)