Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
C++ Compilation Failed
#1
Hello Everyone,

I've been having multiple problems with many of my games I've been trying to make The most recent is a C++ Compilation Failed in this game.

Code: (Select All)
_TITLE "Twizzle Logic Puzzle"

SCREEN _NEWIMAGE(1324, 737, 256): RANDOMIZE TIMER

RANDOMIZE TIMER

_PALETTECOLOR 1, _RGB32(1) ' Black
_PALETTECOLOR 2, _RGB32(50) ' Black
_PALETTECOLOR 3, _RGB32(100) ' Black
_PALETTECOLOR 4, _RGB32(0, 185, 0) ' Green
_PALETTECOLOR 5, _RGB32(0, 159, 255) ' Blue
_PALETTECOLOR 6, _RGB32(169, 0, 165) ' Purple
_PALETTECOLOR 7, _RGB32(225, 0, 0) ' Red

DIM AS _BYTE U, Y, Z, Selected, Selection, Position
DIM AS INTEGER V, W, X
DIM AS INTEGER LevelY(4), KnobX(9), KnobY(9), CardX(10), CardY(10), Rotate1X, Rotate1Y, Rotate2X, Rotate2Y
DIM SHARED AS _BYTE StartCard, EndCard, Level, LevelColor(4), Tile(24), CardPattern(40, 24)
DIM SHARED AS INTEGER TileX(24), TileY(24)

LevelColor(1) = 4: LevelColor(2) = 5: LevelColor(3) = 6: LevelColor(4) = 7

'Setup Card Patterns
DATA 0,0,0,0,1,1,0,0,0,0,3,2,2,3,0,0,0,0,4,4,0,0,0,0: ' Card 01
DATA 0,0,0,4,3,1,2,0,0,0,0,0,0,0,0,0,0,2,1,3,4,0,0,0: ' Card 02
DATA 4,0,3,1,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,0,3,1,0,4: ' Card 03
DATA 2,0,3,2,0,0,3,0,0,0,0,0,0,0,0,0,0,4,0,0,1,4,0,1: ' Card 04
DATA 0,0,0,0,1,1,0,2,0,3,0,0,0,0,2,0,3,0,4,4,0,0,0,0: ' Card 05
DATA 0,0,0,0,1,3,0,2,0,4,0,0,0,0,3,0,1,0,4,2,0,0,0,0: ' Card 06
DATA 0,0,0,0,0,0,0,2,4,3,1,0,0,1,2,4,3,0,0,0,0,0,0,0: ' Card 07
DATA 0,4,0,0,0,0,0,0,4,0,1,1,2,2,0,3,0,0,0,0,0,0,3,0: ' Card 08
DATA 0,0,1,0,0,2,2,0,0,1,0,0,0,0,4,0,0,3,3,0,0,4,0,0: ' Card 09
DATA 0,0,0,0,0,2,0,3,2,0,0,3,4,0,0,1,4,0,1,0,0,0,0,0: ' Card 10
DATA 0,3,0,1,3,3,2,0,0,0,1,0,0,2,0,0,0,1,4,4,2,0,4,0: ' Card 11
DATA 1,1,1,4,0,0,3,0,0,0,4,0,0,3,0,0,0,4,0,0,3,2,2,2: ' Card 12
DATA 2,1,2,3,0,0,4,0,0,0,4,0,0,3,0,0,0,3,0,0,4,1,2,1: ' Card 13
DATA 2,2,2,0,4,3,0,0,0,0,0,4,3,0,0,0,0,0,4,3,0,1,1,1: ' Card 14
DATA 0,0,0,0,1,4,0,1,1,4,0,3,4,0,3,2,2,0,3,2,0,0,0,0: ' Card 15
DATA 0,0,0,0,3,4,0,1,1,1,0,3,4,0,2,2,2,0,3,4,0,0,0,0: ' Card 16
DATA 3,0,3,2,0,0,1,0,3,0,0,2,1,0,0,4,0,2,0,0,1,4,0,4: ' Card 17
DATA 0,3,0,0,1,1,0,2,0,4,4,0,0,2,2,0,4,0,3,3,0,0,1,0: ' Card 18
DATA 4,0,2,1,3,3,1,2,0,4,0,0,0,0,0,3,0,0,4,2,0,0,1,0: ' Card 19
DATA 3,0,0,4,4,0,0,3,3,0,0,4,1,0,0,2,2,0,0,1,1,0,0,2: ' Card 20
DATA 4,4,4,1,4,4,2,1,0,2,1,0,0,2,1,0,2,1,3,3,2,3,3,3: ' Card 21
DATA 3,3,3,4,4,1,1,3,0,3,4,0,0,1,2,0,2,4,4,1,1,2,2,2: ' Card 22
DATA 4,3,1,2,1,2,2,4,0,3,1,0,0,4,2,0,1,3,3,4,3,4,2,1: ' Card 23
DATA 4,3,1,2,1,2,2,4,0,3,1,0,0,4,2,0,1,3,3,4,3,4,2,1: ' Card 24
DATA 4,2,4,2,3,3,1,1,0,2,1,0,0,4,2,0,3,3,1,2,1,4,3,4: ' card 25
DATA 3,2,2,3,2,0,2,0,2,4,3,3,4,4,3,1,0,1,0,1,4,1,1,4: ' Card 26
DATA 2,2,0,3,2,2,0,3,2,4,3,3,4,4,3,1,4,0,1,1,4,0,1,1: ' Card 27
DATA 3,0,1,4,1,4,3,2,2,2,0,1,4,0,3,3,3,4,1,4,2,2,0,1: ' Card 28
DATA 1,0,3,1,1,2,4,1,2,4,0,2,4,0,2,4,3,2,4,3,3,1,0,3: ' Card 29
DATA 4,0,2,4,4,2,2,4,4,2,0,1,2,0,1,3,3,1,1,3,3,1,0,3: ' Card 30
DATA 1,1,1,4,4,3,3,1,1,1,4,4,3,3,2,2,2,4,4,3,3,2,2,2: ' Card 31
DATA 1,1,1,2,3,3,1,3,3,3,2,4,3,1,4,4,4,2,4,4,1,2,2,2: ' Card 32
DATA 2,1,2,4,1,1,3,3,1,4,3,3,4,4,3,2,4,4,2,2,3,1,2,1: ' Card 33
DATA 4,2,2,1,4,2,2,1,4,2,3,1,4,2,3,1,4,3,3,1,4,3,3,1: ' Card 34
DATA 3,3,3,4,1,1,3,2,2,2,4,1,1,3,2,2,2,4,1,1,3,4,4,4: ' Card 35
DATA 1,1,1,4,2,1,3,4,4,4,4,2,1,3,3,3,3,4,2,1,3,2,2,2: ' Card 36
DATA 2,2,2,4,3,3,1,1,3,4,4,1,4,1,1,2,4,4,2,2,1,3,3,3: ' Card 37
DATA 3,3,3,3,3,1,1,3,1,1,2,2,1,1,2,2,4,2,2,4,4,4,4,4: ' Card 38
DATA 3,3,2,3,3,2,2,3,3,2,1,1,2,2,1,4,4,1,1,4,4,1,4,4: ' Card 39
DATA 1,1,1,3,1,1,4,3,1,4,3,3,4,4,3,2,4,3,2,2,4,2,2,2: ' Card 40
FOR Z = 1 TO 40: FOR Y = 1 TO 24: READ CardPattern(Z, Y): NEXT: NEXT


LevelCursor$ = "R389D55L389U55H1R391D57L391U57"
CardCursor$ = "R165D165L165U165H1R167D167L167U167H1R169D169"

CLS , 15

' Draw Board
CIRCLE (170, 170), 160, 2, 1.4, 3.3: CIRCLE (567, 170), 160, 2, 0, 1.8: CIRCLE (170, 567), 160, 2, 2.9, 4.8: CIRCLE (567, 567), 160, 2, 4.4, 0
LINE (170, 10)-(567, 10), 2: LINE (170, 727)-(567, 727), 2: LINE (10, 170)-(10, 567), 2: LINE (727, 170)-(727, 567), 2: PAINT (170, 170), 2
X = 70: W = 0: U = 0
FOR Z = 1 TO 7
   V = 70
   FOR Y = 1 TO 7
      IF Z = 1 OR Z = 3 OR Z = 5 OR Z = 7 THEN
         IF Y = 2 OR Y = 4 OR Y = 6 THEN
            CIRCLE (V, X + 100), 138, 1, .81, 2.34: CIRCLE (V, X - 100), 138, 1, 3.96, 5.455: PAINT (V, X), 0, 1
            Tile(U) = 0: U = U + 1: TileX(U) = V: TileY(U) = X
         END IF
      ELSE
         IF Y = 1 OR Y = 3 OR Y = 5 OR Y = 7 THEN
            CIRCLE (V + 100, X), 138, 1, 2.36, 3.93: CIRCLE (V - 100, X), 138, 1, 5.5, .771: PAINT (V, X), 0, 1
            Tile(U) = 0: U = U + 1: TileX(U) = V: TileY(U) = X
         END IF
         IF Y = 2 OR Y = 4 OR Y = 6 THEN CIRCLE (V, X), 50, 3: PAINT (V, X), 3: W = W + 1: KnobX(W) = V: KnobY(W) = X
      END IF
      V = V + 100
   NEXT
   X = X + 100
NEXT

BoldFont$ = ENVIRON$("SYSTEMROOT") + "\fonts\Calibrib.ttf"

COLOR 0, 15: font& = _LOADFONT(BoldFont$, 30): _FONT font&: _PRINTSTRING (820, 10), "T W I Z Z L E   L O G I C   P U Z Z L E"

font& = _LOADFONT(BoldFont$, 25): _FONT font&:

X = 220
FOR Z = 1 TO 4
   COLOR LevelColor(Z), 15
   IF Z = 1 THEN _PRINTSTRING (883, X), "L E V E L  1:  B E G I N N E R"
   IF Z = 2 THEN _PRINTSTRING (850, X), "L E V E L  2:  I N T E R M E D I A T E"
   IF Z = 3 THEN _PRINTSTRING (883, X), "L E V E L  3:  A D V A N C E D"
   IF Z = 4 THEN _PRINTSTRING (905, X), "L E V E L  4:  E X P E R T"
   LevelY(Z) = X: X = X + 100
NEXT

COLOR 0, 15: font& = _LOADFONT(BoldFont$, 25): _FONT font&: _PRINTSTRING (920, 713), "Choose a Level to Play"

ChooseLevel:
DO WHILE _MOUSEINPUT
   FOR Z = 1 TO 4
      IF _MOUSEX > 830 AND _MOUSEY < 1219 AND _MOUSEY > LevelY(Z) - 20 AND _MOUSEY < LevelY(Z) + 35 THEN Selected = 1 ELSE Selected = 0
      IF Selected = 1 THEN PSET (830, LevelY(Z) - 20), 0: DRAW LevelCursor$ ELSE PSET (830, LevelY(Z) - 20), 15: DRAW LevelCursor$
      IF _MOUSEBUTTON(1) = -1 AND Selected = 1 THEN GOSUB ReleaseButton: Level = Z: GOTO ClearLevels
   NEXT
LOOP
A$ = INKEY$: IF A$ <> "" THEN IF ASC(A$) = 27 AND FullScreen = 0 THEN FullScreen = -1: _FULLSCREEN _SQUAREPIXELS , _SMOOTH ELSE IF ASC(A$) = 27 THEN FullScreen = 0: _FULLSCREEN _OFF
GOTO ChooseLevel

ClearLevels:
LINE (828, 198)-(1220, 560), 15, BF: COLOR 0, 15: font& = _LOADFONT(BoldFont$, 25): _FONT font&: _PRINTSTRING (920, 713), SPACE$(300)

COLOR 0, 15: _PRINTSTRING (905, 320), "Choose Cards Randomly": _PRINTSTRING (915, 420), "Choose Cards Yourself"

COLOR 0, 15: font& = _LOADFONT(BoldFont$, 25): _FONT font&: _PRINTSTRING (920, 713), "Choose Cards Selection"

ChooseCardSelection:
DO WHILE _MOUSEINPUT
   FOR Z = 1 TO 2
      IF _MOUSEX > 830 AND _MOUSEY < 1219 AND _MOUSEY > LevelY(Z + 1) - 20 AND _MOUSEY < LevelY(Z + 1) + 35 THEN Selected = 1 ELSE Selected = 0
      IF Selected = 1 THEN PSET (830, LevelY(Z + 1) - 20), 0: DRAW LevelCursor$ ELSE PSET (830, LevelY(Z + 1) - 20), 15: DRAW LevelCursor$
      IF _MOUSEBUTTON(1) = -1 AND Selected = 1 THEN GOSUB ReleaseButton: Selection = Z: GOTO ChooseCards
   NEXT
LOOP
A$ = INKEY$: IF A$ <> "" THEN IF ASC(A$) = 27 AND FullScreen = 0 THEN FullScreen = -1: _FULLSCREEN _SQUAREPIXELS , _SMOOTH ELSE IF ASC(A$) = 27 THEN FullScreen = 0: _FULLSCREEN _OFF
GOTO ChooseCardSelection

ChooseCards:
LINE (828, 198)-(1220, 560), 15, BF: COLOR 0, 15: font& = _LOADFONT(BoldFont$, 25): _FONT font&: _PRINTSTRING (920, 713), SPACE$(300)

IF Selection = 2 THEN

   IF Level = 1 THEN Card = 1 ELSE IF Level = 2 THEN Card = 11 ELSE IF Level = 3 THEN Card = 21 ELSE Card = 31

   X = 118: Position = 1
   FOR Z = 1 TO 4
      IF Z = 4 THEN W = 1: V = 1025 ELSE W = 3: V = 857
      FOR Y = 1 TO W
         DrawCard V, X, Card: CardX(Position) = V: CardY(Position) = X
         Card = Card + 1: Position = Position + 1: V = V + 168
      NEXT
      X = X + 168
   NEXT

   COLOR 0, 15: font& = _LOADFONT(BoldFont$, 25): _FONT font&: _PRINTSTRING (910, 713), "Choose a Starting Card"

   StartingCard:
   DO WHILE _MOUSEINPUT
      IF Level = 1 THEN Card = 1 ELSE IF Level = 2 THEN Card = 11 ELSE IF Level = 3 THEN Card = 21 ELSE Card = 31
      FOR Z = 1 TO 10
         IF _MOUSEX > CardX(Z) - 80 AND _MOUSEX < CardX(Z) + 80 AND _MOUSEY > CardY(Z) - 80 AND _MOUSEY < CardY(Z) + 80 AND _MOUSEBUTTON(1) = -1 THEN
            GOSUB ReleaseButton: StartCard = Card: Position = Z: GOTO PlaceStartCard
         END IF
         Card = Card + 1
      NEXT
   LOOP
   A$ = INKEY$: IF A$ <> "" THEN IF ASC(A$) = 27 AND FullScreen = 0 THEN FullScreen = -1: _FULLSCREEN _SQUAREPIXELS , _SMOOTH ELSE IF ASC(A$) = 27 THEN FullScreen = 0: _FULLSCREEN _OFF
   GOTO StartingCard

   PlaceStartCard:
   FOR Z = 1 TO 24
      IF CardPattern(StartCard, Z) > 0 THEN PAINT (TileX(Z), TileY(Z)), LevelColor(CardPattern(StartCard, Z)), 1: Tile(Z) = CardPattern(StartCard, Z)
   NEXT

   LINE (CardX(Position) - 80, CardY(Position) - 80)-(CardX(Position) + 80, CardY(Position) + 80), 15, BF

   COLOR 0, 15: font& = _LOADFONT(BoldFont$, 25): _FONT font&: _PRINTSTRING (910, 713), "Choose an Ending Card"

   EndingCard:
   DO WHILE _MOUSEINPUT
      IF Level = 1 THEN Card = 1 ELSE IF Level = 2 THEN Card = 11 ELSE IF Level = 3 THEN Card = 21 ELSE Card = 31
      FOR Z = 1 TO 10
         IF _MOUSEX > CardX(Z) - 80 AND _MOUSEX < CardX(Z) + 80 AND _MOUSEY > CardY(Z) - 80 AND _MOUSEY < CardY(Z) + 80 AND _MOUSEBUTTON(1) = -1 THEN
            IF Z <> Position THEN GOSUB ReleaseButton: EndCard = Card: GOTO ClearCards
         END IF
         Card = Card + 1
      NEXT
   LOOP
   A$ = INKEY$: IF A$ <> "" THEN IF ASC(A$) = 27 AND FullScreen = 0 THEN FullScreen = -1: _FULLSCREEN _SQUAREPIXELS , _SMOOTH ELSE IF ASC(A$) = 27 THEN FullScreen = 0: _FULLSCREEN _OFF
   GOTO EndingCard

   ClearCards: LINE (777, 38)-(1290, 737), 15, BF

ELSE


END IF

SLEEP

ReleaseButton:
DO WHILE _MOUSEINPUT
   IF _MOUSEBUTTON(1) = 0 THEN RETURN
LOOP
GOTO ReleaseButton

SUB DrawCard (X, Y, Card)

   DIM AS _BYTE R, S, V, W, Z: V = LevelColor(Level)
   DIM AS INTEGER T, U

   BoldFont$ = ENVIRON$("SYSTEMROOT") + "\fonts\Calibrib.ttf"
   ' LOCATE 1, 1: PRINT Card;: SLEEP
   CIRCLE (X - 69, Y - 69), 10, V, 1.3, 3.3: CIRCLE (X + 69, Y - 69), 10, V, 0, 1.8: CIRCLE (X - 69, Y + 69), 10, V, 2.9, 4.8: CIRCLE (X + 69, Y + 69), 10, V, 4.4, 0
   LINE (X - 69, Y - 79)-(X + 69, Y - 79), V: LINE (X - 69, Y + 79)-(X + 69, Y + 79), V: LINE (X - 79, Y - 69)-(X - 79, Y + 69), V: LINE (X + 79, Y - 69)-(X + 79, Y + 69), V: PAINT (X, Y), V

   CIRCLE (X - 65, Y - 65), 7, 15, 1.3, 3.3: CIRCLE (X + 65, Y - 65), 7, 15, 0, 1.8: CIRCLE (X - 65, Y + 65), 7, 15, 2.9, 4.8: CIRCLE (X + 65, Y + 65), 7, 15, 4.4, 0
   LINE (X - 65, Y - 72)-(X + 65, Y - 72), 15: LINE (X - 65, Y + 72)-(X + 65, Y + 72), 15: LINE (X - 72, Y - 65)-(X - 72, Y + 65), 15: LINE (X + 72, Y - 65)-(X + 72, Y + 65), 15: PAINT (X, Y), 15

   CIRCLE (X, Y - 67), 3, V: PAINT (X, Y - 67), V
   CIRCLE (X - 67, Y - 6), 3, V: PAINT (X - 67, Y - 6), V: CIRCLE (X - 67, Y + 6), 3, V: PAINT (X - 67, Y + 6), V
   CIRCLE (X, Y + 67), 3, V: PAINT (X, Y + 67), V: CIRCLE (X - 12, Y + 67), 3, V: PAINT (X - 12, Y + 67), V: CIRCLE (X + 12, Y + 67), 3, V: PAINT (X + 12, Y + 67), V
   CIRCLE (X + 67, Y - 6), 3, V: PAINT (X + 67, Y - 6), V: CIRCLE (X + 67, Y + 6), 3, V: PAINT (X + 67, Y + 6), V: CIRCLE (X + 67, Y - 18), 3, V: PAINT (X + 67, Y - 18), V: CIRCLE (X + 67, Y + 18), 3, V: PAINT (X + 67, Y + 18), V

   CIRCLE (X - 30, Y - 30), 30, 0, 1.3, 3.3: CIRCLE (X + 30, Y - 30), 30, 0, 0, 1.8: CIRCLE (X - 30, Y + 30), 30, 0, 2.9, 4.8: CIRCLE (X + 30, Y + 30), 30, 0, 4.4, 0
   LINE (X - 30, Y - 60)-(X + 30, Y - 60), 0: LINE (X - 30, Y + 60)-(X + 30, Y + 60), 0: LINE (X - 60, Y - 30)-(X - 60, Y + 30), 0: LINE (X + 60, Y - 30)-(X + 60, Y + 30), 0: PAINT (X, Y),

   U = Y - 51: W = 0
   FOR Z = 1 TO 7
      T = X - 51
      FOR V = 1 TO 7
         IF Z = 1 OR Z = 3 OR Z = 5 OR Z = 7 THEN
            IF V = 2 OR V = 4 OR V = 6 THEN
               W = W + 1: S = CardPattern(Card, W): R = LevelColor(S)
               IF S > 0 THEN CIRCLE (T, U + 15), 20, R, .82, 2.33: CIRCLE (T, U - 15), 20, R, 3.97, 5.454: PAINT (T, U), R
            END IF
         ELSE
            IF V = 1 OR V = 3 OR V = 5 OR V = 7 THEN
               W = W + 1: S = CardPattern(Card, W): R = LevelColor(S)
               IF S > 0 THEN CIRCLE (T + 15, U), 20, R, 2.36, 3.93: CIRCLE (T - 15, U), 20, R, 5.5, .771: PAINT (T, U), R
            END IF
            ' IF V = 2 OR V = 4 OR V = 6 THEN CIRCLE (T, U), 15, 15:  ' PAINT (V, u), 3
         END IF
         T = T + 17:
      NEXT
      U = U + 17
   NEXT

END SUB
When running this game you can choose any of the four Levels, the choose the second option to Choose Cards Yourself. But of coarse, the game won't run.

I need help finding out what is causing this error. It would be nice if the IDE would give a better description of the error so it would be easier for someone to pinpoint and correct the cause.

I am running QB64_2.0.1_win-x64 on a Windows 11 laptop. I can address other coding problems in future treads. However, I will mention here, I-m having trouble running newer versions of QB64. I had no problem extracting files with the older file types. I would right click on the download QB64 file and had the option of Extracting Files Here and it would create a new folder and put QB64 in that folder.

Thank you very much. I don't like asking for help.

Donald
Reply
#2
Here with QB64pe 4.1 it just runs as is.
For extracting the newer QB64pe downloads you need a newer version of 7zip
45y and 2M lines of MBASIC>BASICA>QBASIC>QBX>QB64 experience
Reply
#3
I am not having any compile errors with your code. I assume choosing cards randomly is unfinished because choosing cards yourself seems to work. Looks like good start to game that doesn't need 2nd player, I like puzzles! Could you use a smaller screen? 1200 x 700 or so, you seem to have plenty of room.

As to your second problem, you don't say what goes wrong with extraction? what you describe seems expected behavior, you want the new QB exe et al to all be in one folder?
b = b + ...
Reply
#4
Yes this game is an unfinished solo puzzle game that hopefully will be done soon. The game will be able to switch between windows and full screen by pressing the ESC key. This should help fitting on any size screen. I usually incorporate this feature in my games. 

I was having trouble using 7zip that I downloaded because I wasn't running the Setup for it. I was able to download and use the latest version of QB64 now.  The game is running fine now. I think the older version was causing most of my problems. I will test them in the new version of QB64 and let you know if I'm still having problems with other game I was working on.

Thank you very much for your help. 

Donald
Reply




Users browsing this thread: 1 Guest(s)