# Topic:   Help with SC testplay crashing   (Read 152 times)

0 Members and 1 Guest are viewing this topic.

#### Johna100

• GMG Newbie

• Posts: 70

• Gan is so awesome.
##### Help with SC testplay crashing
« on: June 03, 2020, 10:29:39 AM »
EDIT: I HAVE A NEW CODE THAT WORKS, SEE BELOW IN THE NEXT POST.

When I test my game and use the right key it quits.

Here is my code:

OPENCARD:
Quote
DIM world(9000)
DIM tile\$(100)

FOR a = 1 to 9000
LET RND = RANDOM(3)
LET world(a) = RND
NEXT

LET screenPos = 0

FOR a = 1 to 100
LET view = screenPos + a

IF world(view) = 1 THEN
LET tile\$(a) = "."
END IF
IF world(view) = 2 THEN
LET tile\$(a) = "."
END IF
IF world(view) = 3 THEN
LET tile\$(a) = "T"
END IF
NEXT

KEY DOWN:
Quote
IF RIGHTKEY = TRUE THEN
LET screenPos = screenPos + 1
GOTOCARD 1
END IF

PAINT:
Quote
FOR a = 1 to 10
LET x = 0
LET y = y + 20
FOR b = 1 to 10
LET x = x + 20
LET tileNum = tileNum + 1

SETPENCOLOR 255, 255, 255
DRAWSTRING tile\$(tileNum), x, y, "Arial", 12

NEXT
NEXT
« Last Edit: June 06, 2020, 04:44:54 AM by Johna100 »

#### Johna100

• GMG Newbie

• Posts: 70

• Gan is so awesome.
##### Re: Help with SC testplay crashing
« Reply #1 on: June 06, 2020, 04:42:53 AM »
I started over with a new code but the same idea. My game works by manually copy and paste the code instead of having a loop inside a loop.

HERE IS THE NEW CODE

OPENCARD:

Code: [Select]
``DIM tile\$(9000)DIM colA(9000)DIM colB(9000)DIM colC(9000)FOR a = 1 to 9000   LET tile\$(a) = ";"   LET colA(a) = RANDOM(255)   LET colB(a) = RANDOM(255)   LET colC(a) = RANDOM(255)NEXTLET tile\$(1) = "1"LET tile\$(2) = "2"``

KEYDOWN:

Code: [Select]
``IF RIGHTKEY = TRUE THEN   LET screenPos = screenPos + 1   GOTOCARD 1END IF``

PAINT:

Code: [Select]
``LET tileNum = 0LET ty = 40LET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXTLET ty = ty + 10LET tx = 40FOR a = 1 to 30   LET tileNum = tileNum + 1   LET tileNum = tileNum + screenPos   LET tx = tx + 10   SETPENCOLOR colA(tileNum), colB(tileNum), colC(tileNum)   DRAWSTRING tile\$(tileNum), tx, ty, "Courier", 15NEXT``

#### Johna100

• GMG Newbie

• Posts: 70

• Gan is so awesome.
##### Re: Help with SC testplay crashing
« Reply #2 on: June 06, 2020, 06:55:20 AM »
I found a way to make it work without copy and paste the code. It turns out I had a strange adding of variables. That combined with a loop inside a loop would make it crash. Crash when you updated one of the variables by pressing a key.

HERE IS SOME CODE THAT HAS A LOOP INSIDE A LOOP AND DOES NOT CRASH

***NOTE that open game is in the Global Scripting***
OPEN GAME:

Code: [Select]
``DIM tile\$(90000)DIM colA(90000)DIM colB(90000)DIM colC(90000)FOR a = 1 to 90000   LET RND = RANDOM(5)   IF RND = 1 THEN      LET tile\$(a) = "."      LET colA(a) = 70      LET colB(a) = 220      LET colC(a) = 70   END IF   IF RND = 2 THEN      LET tile\$(a) = "."      LET colA(a) = 220      LET colB(a) = 170      LET colC(a) = 70   END IF   IF RND = 3 THEN      LET tile\$(a) = "f"      LET colA(a) = 70      LET colB(a) = 220      LET colC(a) = 70   END IF   IF RND = 4 THEN      LET tile\$(a) = "T"      LET colA(a) = 70      LET colB(a) = 220      LET colC(a) = 70   END IF   IF RND = 5 THEN      LET tile\$(a) = "S"      LET colA(a) = 90      LET colB(a) = 90      LET colC(a) = 170   END IF   NEXT``

KEY DOWN:

Code: [Select]
``IF UPKEY = TRUE THEN   LET screenPos = screenPos - 30   GOTOCARD 1END IFIF DOWNKEY = TRUE THEN   LET screenPos = screenPos + 30   GOTOCARD 1END IFIF RIGHTKEY = TRUE THEN   LET screenPos = screenPos + 1   GOTOCARD 1END IFIF LEFTKEY = TRUE THEN   LET screenPos = screenPos - 1   GOTOCARD 1END IF``

PAINT:

Code: [Select]
``LET fontSize = 12LET border = 40LET tilePadding = 10LET tileNum = 0LET ty = borderFOR j = 1 to 30   LET ty = ty + tilePadding   LET tx = border   FOR a = 1 to 30      LET tileNum = tileNum + 1      LET square = tileNum + screenPos      LET tx = tx + tilePadding      SETPENCOLOR colA(square), colB(square), colC(square)      DRAWSTRING tile\$(square), tx, ty, "Courier", fontSize   NEXTNEXT``

#### GMG Mike

• GMG-er

• Posts: 536
##### Re: Help with SC testplay crashing
« Reply #3 on: June 27, 2020, 01:29:20 AM »
If you could upload here a project that shows the crashing then I would still like to look into it.

No projects should ever crash so I would like to fix that bug.

#### Johna100

• GMG Newbie

• Posts: 70

• Gan is so awesome.
##### Re: Help with SC testplay crashing
« Reply #4 on: July 03, 2020, 01:11:57 AM »
The test play window closes when the array is lower or higher than the amount. I will get a file uploaded soon.