QB64 Phoenix Edition
Goals(1) = New Tile() - Printable Version

+- QB64 Phoenix Edition (https://qb64phoenix.com/forum)
+-- Forum: QB64 Rising (https://qb64phoenix.com/forum/forumdisplay.php?fid=1)
+--- Forum: Code and Stuff (https://qb64phoenix.com/forum/forumdisplay.php?fid=3)
+---- Forum: Works in Progress (https://qb64phoenix.com/forum/forumdisplay.php?fid=9)
+---- Thread: Goals(1) = New Tile() (/showthread.php?tid=1952)

Pages: 1 2


Goals(1) = New Tile() - gaslouk - 08-31-2023

Code: (Select All)
    ReDim Goals(6)
    Goals(1) = New Tile()
    Goals(1).Symbol = "o"
Expected operator in equation

Help.

thank you.


RE: Goals(1) = New Tile() - TerryRitchie - 08-31-2023

(08-31-2023, 05:42 PM)gaslouk Wrote:
Code: (Select All)
    ReDim Goals(6)
    Goals(1) = New Tile()
    Goals(1).Symbol = "o"
Expected operator in equation

Help.

thank you.
What is "New Tile()"? If that's meant to be a function or UDT the space is not allowed.


RE: Goals(1) = New Tile() - mnrvovrfc - 08-31-2023

(08-31-2023, 05:42 PM)gaslouk Wrote:
Code: (Select All)
    Goals(1) = New Tile()

QB64 doesn't have "new" operator, it doesn't support object-oriented programming. Yet.


RE: Goals(1) = New Tile() - RhoSigma - 08-31-2023

(08-31-2023, 05:42 PM)gaslouk Wrote:
Code: (Select All)
    ReDim Goals(6)
    Goals(1) = New Tile()
    Goals(1).Symbol = "o"
Expected operator in equation

Help.

thank you.

As mentioned "new" is an operator for object oriented programming languages such as C++, PHP, Javascript etc. which is not possible in QB64(PE), however REDIM can do the job, but "Tile" have to be a user defined TYPE instead of a function.

Code: (Select All)
Type Tile
    Symbol As String * 1 'use higher numbers if you need more chars
End Type
ReDim Goals(6) As Tile

Goals(1).Symbol = "o"
Goals(2).Symbol = "x"
Goals(3).Symbol = "*"

etc.



RE: Goals(1) = New Tile() - gaslouk - 09-01-2023

Ευχαριστώ πολύ όλη την παρέα. Heart Heart Heart Heart Smile Smile Smile Wink


RE: Goals(1) = New Tile() - SMcNeill - 09-01-2023

Bless you.  That sounds rough!


RE: Goals(1) = New Tile() - RhoSigma - 09-01-2023

(09-01-2023, 07:07 AM)gaslouk Wrote: Ευχαριστώ πολύ όλη την παρέα. Heart Heart Heart Heart Smile Smile Smile Wink

You're welcome!
Gern geschehen!
Παρακαλώ!


RE: Goals(1) = New Tile() - gaslouk - 09-01-2023

Code: (Select All)
Dim Shared row, col As Integer
Dim Shared levelMap(1 To 12) As String
Dim Shared tileSymbol As String

Sub LoadLabel (numLevel)
    ' Δημιουργία χάρτη του παιχνιδιού
    levelMap(1) = "    ############ "
    levelMap(2) = "    #          # "
    levelMap(3) = "    #          # "
    levelMap(4) = "    #    $$    # "
    levelMap(5) = "    #   $  $   # "
    levelMap(6) = "    #    $$    # "
    levelMap(7) = " ###############"
    levelMap(8) = "#              #"
    levelMap(9) = "#              #"
    levelMap(10) = "#              #"
    levelMap(11) = "#              #"
    levelMap(12) = "############### "

    ' Διασχίστε τον χάρτη και ορίστε τα χαρακτηριστικά των πλακιδίων

    For row = 1 To MapHeight
        For col = 1 To MapWidth
            tileSymbol = MID(levelMap(row), col, 1)

            MapTiles(col, row).Symbol = tileSymbol
            MapTiles(col, row).IsBox = 0
            MapTiles(col, row).IsGoal = 0

            If tileSymbol = "$" Then
                MapTiles(col, row).IsBox = 1
            ElseIf tileSymbol = "." Then
                MapTiles(col, row).IsGoal = 1
            End If
        Next col
    Next row
End Sub


Huh 
Help.

thank you.


RE: Goals(1) = New Tile() - bplus - 09-01-2023

(09-01-2023, 08:49 AM)gaslouk Wrote:
Code: (Select All)
Dim Shared row, col As Integer
Dim Shared levelMap(1 To 12) As String
Dim Shared tileSymbol As String

Sub LoadLabel (numLevel)
    ' Δημιουργία χάρτη του παιχνιδιού
    levelMap(1) = "    ############ "
    levelMap(2) = "    #          # "
    levelMap(3) = "    #          # "
    levelMap(4) = "    #    $$    # "
    levelMap(5) = "    #  $  $  # "
    levelMap(6) = "    #    $$    # "
    levelMap(7) = " ###############"
    levelMap(8) = "#              #"
    levelMap(9) = "#              #"
    levelMap(10) = "#              #"
    levelMap(11) = "#              #"
    levelMap(12) = "############### "

    ' Διασχίστε τον χάρτη και ορίστε τα χαρακτηριστικά των πλακιδίων

    For row = 1 To MapHeight
        For col = 1 To MapWidth
            tileSymbol = MID(levelMap(row), col, 1)

            MapTiles(col, row).Symbol = tileSymbol
            MapTiles(col, row).IsBox = 0
            MapTiles(col, row).IsGoal = 0

            If tileSymbol = "$" Then
                MapTiles(col, row).IsBox = 1
            ElseIf tileSymbol = "." Then
                MapTiles(col, row).IsGoal = 1
            End If
        Next col
    Next row
End Sub

Huh 
Help.

thank you.

Needed to end with [/code]


RE: Goals(1) = New Tile() - gaslouk - 09-01-2023

(09-01-2023, 09:28 AM)bplus Wrote:
(09-01-2023, 08:49 AM)gaslouk Wrote:
Code: (Select All)
Dim Shared row, col As Integer
Dim Shared levelMap(1 To 12) As String
Dim Shared tileSymbol As String

Sub LoadLabel (numLevel)
    ' Δημιουργία χάρτη του παιχνιδιού
    levelMap(1) = "    ############ "
    levelMap(2) = "    #          # "
    levelMap(3) = "    #          # "
    levelMap(4) = "    #    $$    # "
    levelMap(5) = "    #  $  $  # "
    levelMap(6) = "    #    $$    # "
    levelMap(7) = " ###############"
    levelMap(8) = "#              #"
    levelMap(9) = "#              #"
    levelMap(10) = "#              #"
    levelMap(11) = "#              #"
    levelMap(12) = "############### "

    ' Διασχίστε τον χάρτη και ορίστε τα χαρακτηριστικά των πλακιδίων

    For row = 1 To MapHeight
        For col = 1 To MapWidth
            tileSymbol = MID(levelMap(row), col, 1)

            MapTiles(col, row).Symbol = tileSymbol
            MapTiles(col, row).IsBox = 0
            MapTiles(col, row).IsGoal = 0

            If tileSymbol = "$" Then
                MapTiles(col, row).IsBox = 1
            ElseIf tileSymbol = "." Then
                MapTiles(col, row).IsGoal = 1
            End If
        Next col
    Next row
End Sub

Huh 
Help.

thank you.

Needed to end with [/code]
Thanks  bplus