Author Topic: I need help with my Sorry! board game  (Read 10015 times)

0 Members and 1 Guest are viewing this topic.

Offline Donald Foster

  • Newbie
  • Posts: 63
    • View Profile
I need help with my Sorry! board game
« on: April 22, 2020, 02:08:24 am »
Hello Everyone,

I'm working on my Sorry game and ran into a problem that I can't figure out. I have put it a side and have been working on other parts of the game. But, even when the rest of the game is complete, I will still have this issue. So, I decided to see if some can figure why the code doesn't work correctly.

I have striped down the code to make it easier to follow. If anyone is familiar with the Sorry board, there a 4 large circles on the board know as the START area where their  pieces are placed at the start of the game. The game is setup for 4 players and you will see 4 playing pieces in each START area. Player 1 is blue, player 2 is green, player 3 is red and player 4 is gold.

To start a piece onto the board, each player left clicks the mouse pointer inside their START area and a piece moves from the START area and moves to the square next to their START area.

The problem I'm having is when selecting  the Player variable to 1 or 3, the piece moves just fine. But, when selecting 2 or 4, they won't work. I'll present the code and step you through the main areas.


_TITLE "Sorry! Board Game by Donald L. Foster Jr. 2020"

SCREEN _NEWIMAGE(1035, 735, 256)

_PALETTECOLOR 1, _RGB32(20, 255, 255) '       Board Background
_PALETTECOLOR 2, _RGB32(255, 80, 80) '       Lt Red
_PALETTECOLOR 3, _RGB32(255, 189, 51) '      Lt Yellow
_PALETTECOLOR 4, _RGB32(6, 180, 0) '         Lt Green
_PALETTECOLOR 5, _RGB32(0, 144, 183) '       Lt Blue
_PALETTECOLOR 6, _RGB32(205, 60, 60) '       Dk Red
_PALETTECOLOR 7, _RGB32(215, 149, 11) '      DK Yellow
_PALETTECOLOR 8, _RGB32(0, 150, 0) '         Dk Green
_PALETTECOLOR 9, _RGB32(0, 114, 153) '       Dk Blue
_PALETTECOLOR 10, _RGB32(10, 10, 10) '       Lt Black
_PALETTECOLOR 11, _RGB32(5, 5, 5)
_PALETTECOLOR 12, _RGB32(0, 84, 123) '       Blue Piece
_PALETTECOLOR 13, _RGB32(0, 120, 0) '        Green Piece
_PALETTECOLOR 14, _RGB32(175, 30, 30) '      Red Piece
_PALETTECOLOR 16, _RGB32(185, 129, 1) '      Yellow Piece
_PALETTECOLOR 17, _RGB32(2, 2, 2)
_PALETTECOLOR 18, _RGB32(133, 105, 139) '    Background
_PALETTECOLOR 19, _RGB32(111, 111, 111) '    Highlight Piece

RANDOMIZE TIMER

DIM BoardX(60), BoardY(60), BoardPlayer(60), Back(60), BoardPiece(60), BoardSpace(80), BoardPlay(60), Forward(80), Backward(80)
DIM CardEach(12), CardSorted(12), CardDeck(45), CardLines(12), Card$(12), CardText$(12, 5)
DIM P11(1373), P12(1373), P13(1373), P14(1373), P21(1373), P22(1373), P23(1373), P24(1373), P31(1373), P32(1373), P33(1373), P34(1373), P41(1373), P42(1373), P43(1373), P44(1373), Temp(1373)
DIM Box(1373)

FOR Z = 1 TO 60: BoardPlayer(Z) = 0: NEXT
FOR Z = 1 TO 4: FOR Y = 1 TO 4: AtStart(Z, Y) = 1: NEXT: NEXT

Start(1) = 4: Start(2) = 4: Start(3) = 0: Start(4) = 0: Home(1) = 0: Home(2) = 0: Home(3) = 0: Home(4) = 0



StartAreaX(1) = 616: StartAreaY(1) = 216: StartAreaX(2) = 117: StartAreaY(2) = 517: StartAreaX(3) = 216: StartAreaY(3) = 117: StartAreaX(4) = 517: StartAreaY(4) = 616



HomeAreaX(1) = 415: HomeAreaY(1) = 130: HomeAreaX(2) = 320: HomeAreaY(2) = 603: HomeAreaX(3) = 130: HomeAreaY(3) = 320: HomeAreaX(4) = 603: HomeAreaY(4) = 415

BoardStart(1) = 20: BoardStart(2) = 50: BoardStart(3) = 5: BoardStart(4) = 35
BoardHome(1) = 18: BoardHome(2) = 48: BoardHome(3) = 3: BoardHome(4) = 33


CardEach(0) = 4: CardEach(1) = 4: CardEach(2) = 4: CardEach(3) = 4: CardEach(4) = 4: CardEach(5) = 5: CardEach(6) = 4: CardEach(7) = 4: CardEach(8) = 4: CardEach(9) = 4: CardEach(10) = 4
CardLines(0) = 1: CardLines(1) = 3: CardLines(2) = 1: CardLines(3) = 1: CardLines(4) = 1: CardLines(5) = 3: CardLines(6) = 3: CardLines(7) = 3: CardLines(8) = 3: CardLines(9) = 1: CardLines(10) = 5

Card$(0) = "3": Card$(1) = "10": Card$(2) = "5": Card$(3) = "4": Card$(4) = "12": Card$(5) = "1": Card$(6) = "11": Card$(7) = "7": Card$(8) = "2": Card$(9) = "8": Card$(10) = "SORRY!"

CardText$(0, 1) = "   Move forward 3.  "
CardText$(1, 1) = " Move forward 10 or ": CardText$(1, 2) = "                    ": CardText$(1, 3) = "  move backward 1.  "
CardText$(2, 1) = "   Move forward 5.  "
CardText$(3, 1) = "  Move backward 4.  "
CardText$(4, 1) = "  Move forward 12.  "
CardText$(5, 1) = "  Move from Start   ": CardText$(5, 2) = "                    ": CardText$(5, 3) = " or move forward 1. "
CardText$(6, 1) = "  Move forward 11   ": CardText$(6, 2) = "  or change places  ": CardText$(6, 3) = "  with an opponent. "
CardText$(7, 1) = "   Move forward 7   ": CardText$(7, 2) = "  or split between  ": CardText$(7, 3) = "     two pawns.     "
CardText$(8, 1) = "  Move from Start   ": CardText$(8, 2) = " or move forward 2. ": CardText$(8, 3) = "     DRAW AGAIN.    "
CardText$(9, 1) = "   Move forward 8.  "
CardText$(10, 1) = "Move from Start and": CardText$(10, 2) = "   switch places    ": CardText$(10, 3) = "  with an opponent, ": CardText$(10, 4) = "   who you bump   ": CardText$(10, 5) = "   back to Start.   "



' Get Start Pawn X, Y Positions
FOR Z = 1 TO 4
    X1 = StartAreaX(Z): X2 = StartAreaY(Z)
    StartX(Z, 1) = X1 - 19: StartY(Z, 1) = X2 - 19
    StartX(Z, 2) = X1 + 19: StartY(Z, 2) = X2 - 19
    StartX(Z, 3) = X1 - 19: StartY(Z, 3) = X2 + 19
    StartX(Z, 4) = X1 + 19: StartY(Z, 4) = X2 + 19
NEXT



' Get Home Pawn X, Y Positions
FOR Z = 1 TO 4
    X1 = HomeAreaX(Z): X2 = HomeAreaY(Z)
    HomeX(Z, 1) = X1 - 19: HomeY(Z, 1) = X2 - 19
    HomeX(Z, 2) = X1 + 19: HomeY(Z, 2) = X2 - 19
    HomeX(Z, 3) = X1 - 19: HomeY(Z, 3) = X2 + 19
    HomeX(Z, 4) = X1 + 19: HomeY(Z, 4) = X2 + 19
NEXT

CLS , 18

' Draw Board
LINE (0, 0)-(735, 735), 1, BF
X1 = 44: X2 = 689
FOR Z = 1 TO 15
    LINE (X1 - 22, 22)-(X1 + 22, 66), 0, BF: LINE (X1 - 20, 24)-(X1 + 20, 64), 15, BF
    LINE (667, X1 - 22)-(711, X1 + 22), 0, BF: LINE (669, X1 - 20)-(709, X1 + 20), 15, BF
    LINE (X2 - 22, 667)-(X2 + 22, 711), 0, BF: LINE (X2 - 20, 669)-(X2 + 20, 709), 15, BF
    LINE (22, X2 - 22)-(66, X2 + 22), 0, BF: LINE (24, X2 - 20)-(64, X2 + 20), 15, BF
    BoardX(Z) = X1: BoardY(Z) = 44
    BoardX(15 + Z) = 689: BoardY(15 + Z) = X1
    BoardX(30 + Z) = X2: BoardY(30 + Z) = 689
    BoardX(45 + Z) = 44: BoardY(45 + Z) = X2
    X1 = X1 + 43: X2 = X2 - 43
NEXT

' Draw Border
PSET (5, 5), 0: DRAW "D12R12U12L12BF3P3,0BH3BR17C0R690D12L690U12BF3P2,0BH3BR707C0D12L12U12R12BG3P4,0BE3BD17C0D690L12U690R12BG3P5,0"
DRAW "BE3BD707C0L12U12R12D12BH3P2,0BF3BL17C0L690U12R690D12BH3P3,0BF3BL707C0U12R12D12L12BE3P5,0BG3BU17C0U690R12D690L12BE3P4,0"

' Draw Red Slides
LINE (BoardX(2) - 10, BoardY(2) - 10)-(BoardX(2) + 120, BoardY(2) + 10), 2, BF: LINE (BoardX(2) - 10, BoardY(2) - 10)-(BoardX(2) + 120, BoardY(2) + 10), 0, B
CIRCLE (BoardX(5), BoardY(5)), 16, 10: PAINT (BoardX(5), BoardY(5)), 6, 10: PSET (BoardX(2) + 6, BoardY(2)), 10: DRAW "H21D43E21BL3P6,10"
PSET (BoardX(6), BoardY(6)), 0: DRAW "H9D18E9BL3P6,0"
LINE (BoardX(10) - 10, BoardY(10) - 10)-(BoardX(10) + 165, BoardY(10) + 10), 2, BF: LINE (BoardX(10) - 10, BoardY(10) - 10)-(BoardX(10) + 165, BoardY(10) + 10), 0, B
CIRCLE (BoardX(14), BoardY(14)), 16, 10: PAINT (BoardX(14), BoardY(14)), 6, 10: PSET (BoardX(10) + 6, BoardY(10)), 10: DRAW "H21D43E21BL3P6,10"

' Draw Blue Slides
LINE (BoardX(17) - 10, BoardY(17) - 10)-(BoardX(17) + 10, BoardY(17) + 120), 5, BF: LINE (BoardX(17) - 10, BoardY(17) - 10)-(BoardX(17) + 10, BoardY(17) + 120), 0, B
CIRCLE (BoardX(20), BoardY(20)), 16, 10: PAINT (BoardX(20), BoardY(20)), 9, 10: PSET (BoardX(17), BoardY(17) + 6), 10: DRAW "E21L43F21BU3P9,10"
PSET (BoardX(21), BoardY(21)), 0: DRAW "E9L18F9BU3P9,0"
LINE (BoardX(25) - 10, BoardY(25) - 10)-(BoardX(25) + 10, BoardY(25) + 165), 5, BF: LINE (BoardX(25) - 10, BoardY(25) - 10)-(BoardX(25) + 10, BoardY(25) + 165), 0, B
CIRCLE (BoardX(29), BoardY(29)), 16, 10: PAINT (BoardX(29), BoardY(29)), 9, 10: PSET (BoardX(25), BoardY(25) + 6), 10: DRAW "E21L43F21BU3P9,10"

' Draw Yellow Slides
LINE (BoardX(32) + 10, BoardY(32) - 10)-(BoardX(32) - 120, BoardY(32) + 10), 3, BF: LINE (BoardX(32) + 10, BoardY(32) - 10)-(BoardX(32) - 120, BoardY(32) + 10), 0, B
CIRCLE (BoardX(35), BoardY(35)), 16, 10: PAINT (BoardX(35), BoardY(35)), 7, 10: PSET (BoardX(32) - 6, BoardY(32)), 10: DRAW "E21D43H21BR3P7,10"
PSET (BoardX(36), BoardY(36)), 0: DRAW "E9D18H9BR3P7,0"
LINE (BoardX(40) + 10, BoardY(40) - 10)-(BoardX(40) - 165, BoardY(40) + 10), 3, BF: LINE (BoardX(40) + 10, BoardY(40) - 10)-(BoardX(40) - 165, BoardY(40) + 10), 0, B
CIRCLE (BoardX(44), BoardY(44)), 16, 10: PAINT (BoardX(44), BoardY(44)), 7, 10: PSET (BoardX(40) - 6, BoardY(40)), 10: DRAW "E21D43H21BR3P7,10"

' Draw Green Slides
LINE (BoardX(47) - 10, BoardY(47) + 10)-(BoardX(47) + 10, BoardY(47) - 120), 4, BF: LINE (BoardX(47) - 10, BoardY(47) + 10)-(BoardX(47) + 10, BoardY(47) - 120), 0, B
CIRCLE (BoardX(50), BoardY(50)), 16, 10: PAINT (BoardX(50), BoardY(50)), 8, 10: PSET (BoardX(47), BoardY(47) - 6), 10: DRAW "F21L43E21BD3P8,10"
PSET (BoardX(51), BoardY(51)), 0: DRAW "F9L18E9BD3P8,0"
LINE (BoardX(55) - 10, BoardY(55) + 10)-(BoardX(55) + 10, BoardY(55) - 165), 4, BF: LINE (BoardX(55) - 10, BoardY(55) + 10)-(BoardX(55) + 10, BoardY(55) - 165), 0, B
CIRCLE (BoardX(59), BoardY(59)), 16, 10: PAINT (BoardX(59), BoardY(59)), 8, 10: PSET (BoardX(55), BoardY(55) - 6), 10: DRAW "F21L43E21BD3P8,10"


' Draw Red Arrow to Safe Zone
PSET (BoardX(3) - 20, BoardY(3) + 21), 15: DRAW "R41D1L41BL1" + "C10U12R42D2ND10G21H21D1F21E21U2ND12BL21BD15P15,10"
PSET (BoardX(3) - 37, BoardY(3) - 5), 11: DRAW "NR30F5G5R32D10L7F12E12L7U10"
CIRCLE (BoardX(3) - 5, BoardY(3) + 5), 10, 11, 0, 1.6: PAINT (BoardX(3) - 15, BoardY(3)), 6, 11

' Draw Blue Arrow to Safe Zone
PSET (BoardX(18) - 10, BoardY(18) - 21), 10: DRAW "D42NL12L2H21E21R2NL12L3G21F21BU10P15,10"
PSET (BoardX(18) + 5, BoardY(18) - 37), 11: DRAW "ND30G5H5D32L10U7G12F12U7R10"
CIRCLE (BoardX(18) - 5, BoardY(18) - 5), 10, 11, 4.5, .4: PAINT (BoardX(18), BoardY(18) - 18), 9, 11

' Draw Yellow Arrow to Safe Zone
PSET (BoardX(33) + 21, BoardY(33) - 10), 10: DRAW "L42NU12U2E21F21D2NU12U3H21G21BR10P15,10"
PSET (BoardX(33) + 37, BoardY(33) + 5), 11: DRAW "NL30H5E5L32U10R7H12G12R7D10"
CIRCLE (BoardX(33) + 5, BoardY(33) - 5), 10, 11, 3.0, 4.8: PAINT (BoardX(33) + 18, BoardY(33)), 7, 11

' Draw Green Arrow to Safe Zone
PSET (BoardX(48) + 10, BoardY(48) - 21), 10: DRAW "D42NR12R2E21H21L2NR12R3F21G21BU10P15,10"
PSET (BoardX(48) - 5, BoardY(48) + 37), 11: DRAW "NU30E5F5U32R10D7E12H12D7L10"
CIRCLE (BoardX(48) + 5, BoardY(48) + 5), 10, 11, 1.5, 3.4: PAINT (BoardX(48), BoardY(48) + 18), 8, 11


' Draw Red Home
CIRCLE (130, 320), 50, 15: PAINT (130, 320), 6, 15: CIRCLE (130, 320), 35, 2: PAINT (130, 320), 2

' Draw Blue Home
CIRCLE (415, 130), 50, 15: PAINT (415, 130), 9, 15: CIRCLE (415, 130), 35, 5: PAINT (415, 130), 5

' Draw Yellow Home
CIRCLE (603, 415), 50, 15: PAINT (603, 415), 7, 15: CIRCLE (603, 415), 35, 3: PAINT (603, 415), 3

' Draw Green Home
CIRCLE (320, 603), 50, 15: PAINT (320, 603), 8, 15: CIRCLE (320, 603), 35, 4: PAINT (320, 603), 4


' Draw Red Safe Zone
PSET (130, 87), 10: DRAW "BL21BU21D204F21E21U204BG10P2,10"
X = 87: FOR Z = 1 TO 4: PSET (109, X - 21), 0: DRAW "D42R42U42R1D43L44U44": SafeZoneX(3, Z) = 130: SafeZoneY(3, Z) = X: X = X + 43: NEXT
PSET (109, 238), 0: DRAW "D33F21E21U33R1D34G22H22U34": SafeZoneX(3, 5) = 130: SafeZoneY(3, 5) = 259

' Draw Blue Safe Zone
PSET (646, 130), 10: DRAW "BU21BR21L204G21F21R204BH10P5,10"
X = 646: FOR Z = 1 TO 4: PSET (X + 21, 109), 0: DRAW "L42D42R42D1L43U44R44": SafeZoneX(1, Z) = X: SafeZoneY(1, Z) = 130: X = X - 43: NEXT
PSET (495, 109), 0: DRAW "L33G21F21R33D1L34H22E22R34": SafeZoneX(1, 5) = 474: SafeZoneY(1, 5) = 130

' Draw Yellow Safe Zone
PSET (603, 646), 10: DRAW "BR21UBD21U204H21G21D204BE10P3,10"
X = 646: FOR Z = 1 TO 4: PSET (624, X + 21), 0: DRAW "U42L42D42L1U43R44D44": SafeZoneX(4, Z) = 603: SafeZoneY(4, Z) = X: X = X - 43: NEXT
PSET (624, 495), 0: DRAW "U33H21G21D33L1U34E22F22D34": SafeZoneX(4, 5) = 603: SafeZoneY(4, 5) = 474

' Draw Green Safe Zone
PSET (87, 603), 10: DRAW "BL21BU21R204F21G21L204BE10P4,10"
X = 87: FOR Z = 1 TO 4: PSET (X - 21, 624), 0: DRAW "R42U42L42U1R43D44L44": SafeZoneX(2, Z) = X: SafeZoneY(2, Z) = 603: X = X + 43: NEXT
PSET (238, 624), 0: DRAW "R33E21H21L33U1R34F22G22L34": SafeZoneX(2, 5) = 474: SafeZoneY(2, 5) = 603


' Draw Red Start
CIRCLE (216, 117), 50, 15: PAINT (216, 117), 6, 15: CIRCLE (216, 117), 35, 2: PAINT (216, 117), 2
PSET (216, 86), 0: DRAW "F9L18E9BD3P6,0"

' Draw Blue Start
CIRCLE (616, 216), 50, 15: PAINT (616, 216), 9, 15: CIRCLE (616, 216), 35, 5: PAINT (616, 216), 5
PSET (647, 216), 0: DRAW "H9D18E9BL3P9,0"

' Draw Yellow Start
CIRCLE (517, 616), 50, 15: PAINT (517, 616), 7, 15: CIRCLE (517, 616), 35, 3: PAINT (517, 616), 3
PSET (517, 647), 0: DRAW "E9L18F9BU3P7,0"

' Draw Green Start
CIRCLE (117, 517), 50, 15: PAINT (117, 517), 8, 15: CIRCLE (117, 517), 35, 4: PAINT (117, 517), 4
PSET (86, 517), 0: DRAW "E9D18H9BR3P8,0"



Players = 4



' Place Pawns on Start
FOR Z = 1 TO 4
    X1 = Z: X5 = 1
    X2 = 1: X3 = StartX(1, Z): X4 = StartY(1, Z): GOSUB GetPut: GOSUB DrawPiece
    X2 = 2: X3 = StartX(2, Z): X4 = StartY(2, Z): GOSUB GetPut: GOSUB DrawPiece
    IF Players > 2 THEN X2 = 3: X3 = StartX(3, Z): X4 = StartY(3, Z): Start(3) = 4: GOSUB GetPut: GOSUB DrawPiece
    IF Players = 4 THEN X2 = 4: X3 = StartX(4, Z): X4 = StartY(4, Z): Start(4) = 4: GOSUB GetPut: GOSUB DrawPiece
NEXT



Player = 1



StartGame:
' Draw Player Indicator
X2 = Player: X3 = 885: X4 = 70: GOSUB DrawPiece
COLOR 0, 18: LOCATE 7, 107: PRINT "Player:"; Player;

' Get Next Pawn in Start area
IF AtStart(Player, 1) = 1 THEN NextStart = 1 ELSE IF AtStart(Player, 2) = 1 THEN NextStart = 2 ELSE IF AtStart(Player, 3) = 1 THEN NextStart = 3 ELSE IF AtStart(Player, 4) = 1 THEN NextStart = 4 ELSE NextStart = 0
Card = CardDeck(CardsLeft)



Card = 5



' Draw plying card
X1 = 2: X2 = Card: GOSUB DrawCard



' Check for Playable moves
X = 0: GOSUB Playable


' Get Player Input
GetInput1:
DO WHILE _MOUSEINPUT


    IF CanStart = 1 THEN


        LOCATE 15, 105: PRINT "CanStart ="; CanStart;


        IF _MOUSEX > StartAreaX(Player) - 45 AND _MOUSEX < StartAreaX(Player) + 45 AND _MOUSEX > StartAreaY(Player) - 45 AND _MOUSEY < StartAreaY(Player) + 45 THEN StartSelected = 1 ELSE StartSelected = 0


        LOCATE 18, 102: PRINT "StartSelected ="; StartSelected;


        IF StartSelected = 1 AND _MOUSEBUTTON(1) = -1 THEN
            GOSUB ButtonRelease: StartPawn = 0: Space = BoardStart(Player)
            IF BoardPlayer(Space) > 0 THEN GOSUB BumpPiece
            X1 = NextStart: X2 = Player: X3 = StartX(Player, NextStart): X4 = StartY(Player, NextStart): X5 = 2: X6 = 18: GOSUB GetPut
            AtStart(Player, NextStart) = 0: BoardPlayer(Space) = Player: BoardPiece(Space) = NextStart
            X3 = BoardX(Space): X4 = BoardY(Space): GOSUB DrawPiece: GOTO MakeMove
        END IF
    END IF
LOOP
GOTO GetInput1


MakeMove:
SLEEP

DrawText:
COLOR 15, 0: LOCATE 1, 100: PRINT Text$;
Length = 8 * LEN(Text$)

FOR Height = 0 TO 17
    FOR Width = 0 TO Length
        IF POINT(791 + Width, Height) = 15 THEN PColor = 0 ELSE PColor = 1
        SELECT CASE Rotation
            CASE 1
                IF PColor = 0 THEN LINE (X1 + Width * Size, Y1 + Height * Size)-(X1 + Width * Size + Size, Y1 + Height * Size + Size), 0, BF
            CASE 2
                IF PColor = 0 THEN LINE (X1 - Height * Size, Y1 + Width * Size)-(X1 - Height * Size - Size, Y1 + Width * Size + Size), 0, BF
            CASE 3
                IF PColor = 0 THEN LINE (X1 - Width * Size, Y1 - Height * Size)-(X1 - Width * Size - Size, Y1 - Height * Size - Size), 0, BF
            CASE 4
                IF PColor = 0 THEN LINE (X1 + Height * Size, Y1 - Width * Size)-(X1 + Height * Size + Size, Y1 - Width * Size - Size), 0, BF
        END SELECT
    NEXT
NEXT

COLOR 0, 18: LOCATE 1, 100: PRINT STRING$(15, 32);

RETURN


DrawCard:

IF X1 = 1 THEN
    CIRCLE (805, 145), 15, 0, 1.5, 3.1: CIRCLE (970, 145), 15, 0, 0, 1.6: CIRCLE (805, 355), 15, 0, 3.0, 4.75: CIRCLE (970, 355), 15, 0, 4.5, 0
    LINE (805, 130)-(970, 130), 0: LINE (790, 145)-(790, 355), 0: LINE (985, 145)-(985, 355), 0: LINE (805, 370)-(970, 370), 0: PAINT (805, 145), 15, 0
    Text$ = "SORRY!": Size = 4: X1 = 912: Y1 = 152: Rotation = 2: GOSUB DrawText
END IF

IF X1 = 2 THEN
    CIRCLE (805, 415), 15, 0, 1.5, 3.1: CIRCLE (970, 415), 15, 0, 0, 1.6: CIRCLE (805, 625), 15, 0, 3.0, 4.75: CIRCLE (970, 625), 15, 0, 4.5, 0
    LINE (805, 400)-(970, 400), 0: LINE (790, 415)-(790, 625), 0: LINE (985, 415)-(985, 625), 0: LINE (805, 640)-(970, 640), 0: PAINT (805, 415), 15, 0

    SELECT CASE X2
        CASE 1, 5, 6, 7, 8
            StartText = 32
        CASE 0, 2, 3, 4, 9
            StartText = 33
        CASE ELSE
            StartText = 31
    END SELECT

    FOR Z1 = 1 TO CardLines(X2)
        COLOR 0, 15: LOCATE StartText + Z1 - 1, 102: PRINT CardText$(X2, Z1);
    NEXT

    Text$ = Card$(X2): Size = 3: X1 = 812: Y1 = 420: Rotation = 1: GOSUB DrawText
    Text$ = Card$(X2): Size = 3: X1 = 963: Y1 = 620: Rotation = 3: GOSUB DrawText
END IF
RETURN


Playable:
FOR Z = 1 TO 60: BoardSpace(Z) = 0: NEXT
SELECT CASE Card
    CASE 0
        ' Card - Move Pawn 3 Spaces Forward

    CASE 1
        ' Card - Move Pawn 10 Spaces Forward or 1 Space Backward

    CASE 2
        ' Card - Move Pawn 5 Spaces Forward

    CASE 3
        ' Card - Move Pawn 4 Spaces Backward

    CASE 4
        ' Card - Move Pawn 12 Spaces Forward

    CASE 5
        ' Card - Start Pawn or Move 1 Space Forward
        Forard = 0: CanStart = 0
        IF Start(Player) > 0 AND BoardStart(Player) <> Player THEN X = 1: CanStart = 1
        IF CanStart = 1 THEN COLOR 0, 18: LOCATE 42, 101: PRINT "Select your START area";: LOCATE 43, 97: PRINT "to move your pawn to the board";

    CASE 6
        ' Card - Move Pawn 11 Spaces Forward or Swap With opponent

    CASE 7
        ' Card - Move 1 or 2 Pawns 7 Spaces Forward


    CASE 8
        ' Card - Start Pawn or Move Pawn 2 Spaces Forward
        CanStart = 0: Forward = 0
        IF Start(Player) > 0 AND BoardStart(Player) <> Player THEN X = 1: CanStart = 1
        IF CanStart = 1 THEN COLOR 0, 18: LOCATE 42, 101: PRINT "Select your START area";: LOCATE 43, 97: PRINT "to move your pawn to the board";

    CASE 9
        ' Card - Move Pawn 8 Spaces Forward

    CASE 10
        ' Card - Sorry!

END SELECT
RETURN


GetPut:
SELECT CASE X2
    CASE 1
        SELECT CASE X1
            CASE 1
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P11() ELSE PUT (X3 - X6, X4 - X6), P11(), PSET
            CASE 2
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P12() ELSE PUT (X3 - X6, X4 - X6), P12(), PSET
            CASE 3
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P13() ELSE PUT (X3 - X6, X4 - X6), P13(), PSET
            CASE 4
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P14() ELSE PUT (X3 - X6, X4 - X6), P14(), PSET
        END SELECT
    CASE 2
        SELECT CASE X1
            CASE 1
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P21() ELSE PUT (X3 - X6, X4 - X6), P21(), PSET
            CASE 2
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P22() ELSE PUT (X3 - X6, X4 - X6), P22(), PSET
            CASE 3
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P23() ELSE PUT (X3 - X6, X4 - X6), P23(), PSET
            CASE 4
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P24() ELSE PUT (X3 - X6, X4 - X6), P24(), PSET
        END SELECT
    CASE 3
        SELECT CASE X1
            CASE 1
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P31() ELSE PUT (X3 - X6, X4 - X6), P31(), PSET
            CASE 2
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P32() ELSE PUT (X3 - X6, X4 - X6), P32(), PSET
            CASE 3
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P33() ELSE PUT (X3 - X6, X4 - X6), P33(), PSET
            CASE 4
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P34() ELSE PUT (X3 - X6, X4 - X6), P34(), PSET
        END SELECT
    CASE 4
        SELECT CASE X1
            CASE 1
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P41() ELSE PUT (X3 - X6, X4 - X6), P41(), PSET
            CASE 2
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P42() ELSE PUT (X3 - X6, X4 - X6), P42(), PSET
            CASE 3
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P43() ELSE PUT (X3 - X6, X4 - X6), P43(), PSET
            CASE 4
                IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P44() ELSE PUT (X3 - X6, X4 - X6), P44(), PSET
        END SELECT
END SELECT
RETURN


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


DrawPiece:
SELECT CASE X2
    CASE 1
        CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 12, 17: CIRCLE (X3, X4), 12, 9: PAINT (X3, X4), 9: CIRCLE (X3, X4), 6, 5: PAINT (X3, X4), 5
    CASE 2
        CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 13, 17: CIRCLE (X3, X4), 12, 8: PAINT (X3, X4), 8: CIRCLE (X3, X4), 6, 4: PAINT (X3, X4), 4
    CASE 3
        CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 14, 17: CIRCLE (X3, X4), 12, 6: PAINT (X3, X4), 6: CIRCLE (X3, X4), 6, 2: PAINT (X3, X4), 2
    CASE 4
        CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 16, 17: CIRCLE (X3, X4), 12, 7: PAINT (X3, X4), 7: CIRCLE (X3, X4), 6, 3: PAINT (X3, X4), 3
END SELECT
RETURN


BumpPiece:

RETURN



On line 38, we are setting up the X, Y locations of the center of each player's START area circle for Players 1 to 4.

On lines 68 to 74, a loop is setup to assign the X, Y locations of the center of each of the 4 pieces that are placed in each player's START area with the variable Z representing Player 1 to 4.

On line 210, we set the variable Players = 4 so the game knows to setup pieces at all 4 START areas.

On lines 215 to 221, a loop is setup to place 4 pieces on each player's START area. The variable Z is set for each piece that is placed in each START area. Notice that for Player's 3 and 4, the games checks to see the number of player before placing those pieces. Where as, players 1 and 2 are automatically placed. The game will normally ask for number of players 2 to 4. The number of players is no importance to the problem.

One line 225, we set the variable Player = 1 as to indicate player 1 will be taking their turn.

On line 240, we set the variable Card = 5. This is the card # assigned to Start a piece or move 1 space forward. Card # 8 can also be used. It Starts a piece or move 2 spaces forward. No other are functional in this code, but the cards are displayed. Cards are from 0 to 10.

On line 250, we call a subroutine to check if that card is playable. When Cards 5 or 8 pass the test, variable CanStart = 1.

On line 255, we setup the DO WHILE _MOUSEINPUT loop  to scan the board for moves.

On line 258, the variable CanStart is tested and passes. You can see on line 261, I PRINT the value of variable CanStart on the right side of the screen for proof.

On line 264 is where the problem shows up. The START area circle has a radius of 50 pixels. I'm checking the mouse X, Y location to see if it's inside the StartAreaX and StartAreaY square that is 91 X 91 for the current Player. if the test passes, the variable StartSelected = 1 ELSE StartSelected =0.

On line 267, I PRINT the value of variable StartSelected on the right side of the screen for proof. When the variable Player = 1 or 3 and you're hovering the mouse pointer inside that players START area, StartSelect changes to 1 and goes back to 0 as you leave. But, for Player 2 or 4, StartSelect stays at 0.

Clicking the left mouse button while inside player's 1 and 3 START area will move a piece to it's position on the board. You can change the variable Player on line 255 to represent each player and run the code.

So, why is player's 2 and 4 areas, green and gold, not working?

Thanks, Donald

 

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: I need help with my Sorry! board game
« Reply #1 on: April 22, 2020, 09:22:50 am »
Hi Donald
this time you miss codebox button before to paste your code...

here done!

Code: QB64: [Select]
  1. _TITLE "Sorry! Board Game by Donald L. Foster Jr. 2020"
  2.  
  3. SCREEN _NEWIMAGE(1035, 735, 256)
  4.  
  5. _PALETTECOLOR 1, _RGB32(20, 255, 255) '       Board Background
  6. _PALETTECOLOR 2, _RGB32(255, 80, 80) '       Lt Red
  7. _PALETTECOLOR 3, _RGB32(255, 189, 51) '      Lt Yellow
  8. _PALETTECOLOR 4, _RGB32(6, 180, 0) '         Lt Green
  9. _PALETTECOLOR 5, _RGB32(0, 144, 183) '       Lt Blue
  10. _PALETTECOLOR 6, _RGB32(205, 60, 60) '       Dk Red
  11. _PALETTECOLOR 7, _RGB32(215, 149, 11) '      DK Yellow
  12. _PALETTECOLOR 8, _RGB32(0, 150, 0) '         Dk Green
  13. _PALETTECOLOR 9, _RGB32(0, 114, 153) '       Dk Blue
  14. _PALETTECOLOR 10, _RGB32(10, 10, 10) '       Lt Black
  15. _PALETTECOLOR 11, _RGB32(5, 5, 5)
  16. _PALETTECOLOR 12, _RGB32(0, 84, 123) '       Blue Piece
  17. _PALETTECOLOR 13, _RGB32(0, 120, 0) '        Green Piece
  18. _PALETTECOLOR 14, _RGB32(175, 30, 30) '      Red Piece
  19. _PALETTECOLOR 16, _RGB32(185, 129, 1) '      Yellow Piece
  20. _PALETTECOLOR 17, _RGB32(2, 2, 2)
  21. _PALETTECOLOR 18, _RGB32(133, 105, 139) '    Background
  22. _PALETTECOLOR 19, _RGB32(111, 111, 111) '    Highlight Piece
  23.  
  24.  
  25. DIM BoardX(60), BoardY(60), BoardPlayer(60), Back(60), BoardPiece(60), BoardSpace(80), BoardPlay(60), Forward(80), Backward(80)
  26. DIM CardEach(12), CardSorted(12), CardDeck(45), CardLines(12), Card$(12), CardText$(12, 5)
  27. DIM P11(1373), P12(1373), P13(1373), P14(1373), P21(1373), P22(1373), P23(1373), P24(1373), P31(1373), P32(1373), P33(1373), P34(1373), P41(1373), P42(1373), P43(1373), P44(1373), Temp(1373)
  28. DIM Box(1373)
  29.  
  30. FOR Z = 1 TO 60: BoardPlayer(Z) = 0: NEXT
  31. FOR Z = 1 TO 4: FOR Y = 1 TO 4: AtStart(Z, Y) = 1: NEXT: NEXT
  32.  
  33. Start(1) = 4: Start(2) = 4: Start(3) = 0: Start(4) = 0: Home(1) = 0: Home(2) = 0: Home(3) = 0: Home(4) = 0
  34.  
  35.  
  36.  
  37. StartAreaX(1) = 616: StartAreaY(1) = 216: StartAreaX(2) = 117: StartAreaY(2) = 517: StartAreaX(3) = 216: StartAreaY(3) = 117: StartAreaX(4) = 517: StartAreaY(4) = 616
  38.  
  39.  
  40.  
  41. HomeAreaX(1) = 415: HomeAreaY(1) = 130: HomeAreaX(2) = 320: HomeAreaY(2) = 603: HomeAreaX(3) = 130: HomeAreaY(3) = 320: HomeAreaX(4) = 603: HomeAreaY(4) = 415
  42.  
  43. BoardStart(1) = 20: BoardStart(2) = 50: BoardStart(3) = 5: BoardStart(4) = 35
  44. BoardHome(1) = 18: BoardHome(2) = 48: BoardHome(3) = 3: BoardHome(4) = 33
  45.  
  46.  
  47. CardEach(0) = 4: CardEach(1) = 4: CardEach(2) = 4: CardEach(3) = 4: CardEach(4) = 4: CardEach(5) = 5: CardEach(6) = 4: CardEach(7) = 4: CardEach(8) = 4: CardEach(9) = 4: CardEach(10) = 4
  48. CardLines(0) = 1: CardLines(1) = 3: CardLines(2) = 1: CardLines(3) = 1: CardLines(4) = 1: CardLines(5) = 3: CardLines(6) = 3: CardLines(7) = 3: CardLines(8) = 3: CardLines(9) = 1: CardLines(10) = 5
  49.  
  50. Card$(0) = "3": Card$(1) = "10": Card$(2) = "5": Card$(3) = "4": Card$(4) = "12": Card$(5) = "1": Card$(6) = "11": Card$(7) = "7": Card$(8) = "2": Card$(9) = "8": Card$(10) = "SORRY!"
  51.  
  52. CardText$(0, 1) = "   Move forward 3.  "
  53. CardText$(1, 1) = " Move forward 10 or ": CardText$(1, 2) = "                    ": CardText$(1, 3) = "  move backward 1.  "
  54. CardText$(2, 1) = "   Move forward 5.  "
  55. CardText$(3, 1) = "  Move backward 4.  "
  56. CardText$(4, 1) = "  Move forward 12.  "
  57. CardText$(5, 1) = "  Move from Start   ": CardText$(5, 2) = "                    ": CardText$(5, 3) = " or move forward 1. "
  58. CardText$(6, 1) = "  Move forward 11   ": CardText$(6, 2) = "  or change places  ": CardText$(6, 3) = "  with an opponent. "
  59. CardText$(7, 1) = "   Move forward 7   ": CardText$(7, 2) = "  or split between  ": CardText$(7, 3) = "     two pawns.     "
  60. CardText$(8, 1) = "  Move from Start   ": CardText$(8, 2) = " or move forward 2. ": CardText$(8, 3) = "     DRAW AGAIN.    "
  61. CardText$(9, 1) = "   Move forward 8.  "
  62. CardText$(10, 1) = "Move from Start and": CardText$(10, 2) = "   switch places    ": CardText$(10, 3) = "  with an opponent, ": CardText$(10, 4) = "   who you bump   ": CardText$(10, 5) = "   back to Start.   "
  63.  
  64.  
  65.  
  66. ' Get Start Pawn X, Y Positions
  67. FOR Z = 1 TO 4
  68.     X1 = StartAreaX(Z): X2 = StartAreaY(Z)
  69.     StartX(Z, 1) = X1 - 19: StartY(Z, 1) = X2 - 19
  70.     StartX(Z, 2) = X1 + 19: StartY(Z, 2) = X2 - 19
  71.     StartX(Z, 3) = X1 - 19: StartY(Z, 3) = X2 + 19
  72.     StartX(Z, 4) = X1 + 19: StartY(Z, 4) = X2 + 19
  73.  
  74.  
  75.  
  76. ' Get Home Pawn X, Y Positions
  77. FOR Z = 1 TO 4
  78.     X1 = HomeAreaX(Z): X2 = HomeAreaY(Z)
  79.     HomeX(Z, 1) = X1 - 19: HomeY(Z, 1) = X2 - 19
  80.     HomeX(Z, 2) = X1 + 19: HomeY(Z, 2) = X2 - 19
  81.     HomeX(Z, 3) = X1 - 19: HomeY(Z, 3) = X2 + 19
  82.     HomeX(Z, 4) = X1 + 19: HomeY(Z, 4) = X2 + 19
  83.  
  84. CLS , 18
  85.  
  86. ' Draw Board
  87. LINE (0, 0)-(735, 735), 1, BF
  88. X1 = 44: X2 = 689
  89. FOR Z = 1 TO 15
  90.     LINE (X1 - 22, 22)-(X1 + 22, 66), 0, BF: LINE (X1 - 20, 24)-(X1 + 20, 64), 15, BF
  91.     LINE (667, X1 - 22)-(711, X1 + 22), 0, BF: LINE (669, X1 - 20)-(709, X1 + 20), 15, BF
  92.     LINE (X2 - 22, 667)-(X2 + 22, 711), 0, BF: LINE (X2 - 20, 669)-(X2 + 20, 709), 15, BF
  93.     LINE (22, X2 - 22)-(66, X2 + 22), 0, BF: LINE (24, X2 - 20)-(64, X2 + 20), 15, BF
  94.     BoardX(Z) = X1: BoardY(Z) = 44
  95.     BoardX(15 + Z) = 689: BoardY(15 + Z) = X1
  96.     BoardX(30 + Z) = X2: BoardY(30 + Z) = 689
  97.     BoardX(45 + Z) = 44: BoardY(45 + Z) = X2
  98.     X1 = X1 + 43: X2 = X2 - 43
  99.  
  100. ' Draw Border
  101. PSET (5, 5), 0: DRAW "D12R12U12L12BF3P3,0BH3BR17C0R690D12L690U12BF3P2,0BH3BR707C0D12L12U12R12BG3P4,0BE3BD17C0D690L12U690R12BG3P5,0"
  102. DRAW "BE3BD707C0L12U12R12D12BH3P2,0BF3BL17C0L690U12R690D12BH3P3,0BF3BL707C0U12R12D12L12BE3P5,0BG3BU17C0U690R12D690L12BE3P4,0"
  103.  
  104. ' Draw Red Slides
  105. LINE (BoardX(2) - 10, BoardY(2) - 10)-(BoardX(2) + 120, BoardY(2) + 10), 2, BF: LINE (BoardX(2) - 10, BoardY(2) - 10)-(BoardX(2) + 120, BoardY(2) + 10), 0, B
  106. CIRCLE (BoardX(5), BoardY(5)), 16, 10: PAINT (BoardX(5), BoardY(5)), 6, 10: PSET (BoardX(2) + 6, BoardY(2)), 10: DRAW "H21D43E21BL3P6,10"
  107. PSET (BoardX(6), BoardY(6)), 0: DRAW "H9D18E9BL3P6,0"
  108. LINE (BoardX(10) - 10, BoardY(10) - 10)-(BoardX(10) + 165, BoardY(10) + 10), 2, BF: LINE (BoardX(10) - 10, BoardY(10) - 10)-(BoardX(10) + 165, BoardY(10) + 10), 0, B
  109. CIRCLE (BoardX(14), BoardY(14)), 16, 10: PAINT (BoardX(14), BoardY(14)), 6, 10: PSET (BoardX(10) + 6, BoardY(10)), 10: DRAW "H21D43E21BL3P6,10"
  110.  
  111. ' Draw Blue Slides
  112. LINE (BoardX(17) - 10, BoardY(17) - 10)-(BoardX(17) + 10, BoardY(17) + 120), 5, BF: LINE (BoardX(17) - 10, BoardY(17) - 10)-(BoardX(17) + 10, BoardY(17) + 120), 0, B
  113. CIRCLE (BoardX(20), BoardY(20)), 16, 10: PAINT (BoardX(20), BoardY(20)), 9, 10: PSET (BoardX(17), BoardY(17) + 6), 10: DRAW "E21L43F21BU3P9,10"
  114. PSET (BoardX(21), BoardY(21)), 0: DRAW "E9L18F9BU3P9,0"
  115. LINE (BoardX(25) - 10, BoardY(25) - 10)-(BoardX(25) + 10, BoardY(25) + 165), 5, BF: LINE (BoardX(25) - 10, BoardY(25) - 10)-(BoardX(25) + 10, BoardY(25) + 165), 0, B
  116. CIRCLE (BoardX(29), BoardY(29)), 16, 10: PAINT (BoardX(29), BoardY(29)), 9, 10: PSET (BoardX(25), BoardY(25) + 6), 10: DRAW "E21L43F21BU3P9,10"
  117.  
  118. ' Draw Yellow Slides
  119. LINE (BoardX(32) + 10, BoardY(32) - 10)-(BoardX(32) - 120, BoardY(32) + 10), 3, BF: LINE (BoardX(32) + 10, BoardY(32) - 10)-(BoardX(32) - 120, BoardY(32) + 10), 0, B
  120. CIRCLE (BoardX(35), BoardY(35)), 16, 10: PAINT (BoardX(35), BoardY(35)), 7, 10: PSET (BoardX(32) - 6, BoardY(32)), 10: DRAW "E21D43H21BR3P7,10"
  121. PSET (BoardX(36), BoardY(36)), 0: DRAW "E9D18H9BR3P7,0"
  122. LINE (BoardX(40) + 10, BoardY(40) - 10)-(BoardX(40) - 165, BoardY(40) + 10), 3, BF: LINE (BoardX(40) + 10, BoardY(40) - 10)-(BoardX(40) - 165, BoardY(40) + 10), 0, B
  123. CIRCLE (BoardX(44), BoardY(44)), 16, 10: PAINT (BoardX(44), BoardY(44)), 7, 10: PSET (BoardX(40) - 6, BoardY(40)), 10: DRAW "E21D43H21BR3P7,10"
  124.  
  125. ' Draw Green Slides
  126. LINE (BoardX(47) - 10, BoardY(47) + 10)-(BoardX(47) + 10, BoardY(47) - 120), 4, BF: LINE (BoardX(47) - 10, BoardY(47) + 10)-(BoardX(47) + 10, BoardY(47) - 120), 0, B
  127. CIRCLE (BoardX(50), BoardY(50)), 16, 10: PAINT (BoardX(50), BoardY(50)), 8, 10: PSET (BoardX(47), BoardY(47) - 6), 10: DRAW "F21L43E21BD3P8,10"
  128. PSET (BoardX(51), BoardY(51)), 0: DRAW "F9L18E9BD3P8,0"
  129. LINE (BoardX(55) - 10, BoardY(55) + 10)-(BoardX(55) + 10, BoardY(55) - 165), 4, BF: LINE (BoardX(55) - 10, BoardY(55) + 10)-(BoardX(55) + 10, BoardY(55) - 165), 0, B
  130. CIRCLE (BoardX(59), BoardY(59)), 16, 10: PAINT (BoardX(59), BoardY(59)), 8, 10: PSET (BoardX(55), BoardY(55) - 6), 10: DRAW "F21L43E21BD3P8,10"
  131.  
  132.  
  133. ' Draw Red Arrow to Safe Zone
  134. PSET (BoardX(3) - 20, BoardY(3) + 21), 15: DRAW "R41D1L41BL1" + "C10U12R42D2ND10G21H21D1F21E21U2ND12BL21BD15P15,10"
  135. PSET (BoardX(3) - 37, BoardY(3) - 5), 11: DRAW "NR30F5G5R32D10L7F12E12L7U10"
  136. CIRCLE (BoardX(3) - 5, BoardY(3) + 5), 10, 11, 0, 1.6: PAINT (BoardX(3) - 15, BoardY(3)), 6, 11
  137.  
  138. ' Draw Blue Arrow to Safe Zone
  139. PSET (BoardX(18) - 10, BoardY(18) - 21), 10: DRAW "D42NL12L2H21E21R2NL12L3G21F21BU10P15,10"
  140. PSET (BoardX(18) + 5, BoardY(18) - 37), 11: DRAW "ND30G5H5D32L10U7G12F12U7R10"
  141. CIRCLE (BoardX(18) - 5, BoardY(18) - 5), 10, 11, 4.5, .4: PAINT (BoardX(18), BoardY(18) - 18), 9, 11
  142.  
  143. ' Draw Yellow Arrow to Safe Zone
  144. PSET (BoardX(33) + 21, BoardY(33) - 10), 10: DRAW "L42NU12U2E21F21D2NU12U3H21G21BR10P15,10"
  145. PSET (BoardX(33) + 37, BoardY(33) + 5), 11: DRAW "NL30H5E5L32U10R7H12G12R7D10"
  146. CIRCLE (BoardX(33) + 5, BoardY(33) - 5), 10, 11, 3.0, 4.8: PAINT (BoardX(33) + 18, BoardY(33)), 7, 11
  147.  
  148. ' Draw Green Arrow to Safe Zone
  149. PSET (BoardX(48) + 10, BoardY(48) - 21), 10: DRAW "D42NR12R2E21H21L2NR12R3F21G21BU10P15,10"
  150. PSET (BoardX(48) - 5, BoardY(48) + 37), 11: DRAW "NU30E5F5U32R10D7E12H12D7L10"
  151. CIRCLE (BoardX(48) + 5, BoardY(48) + 5), 10, 11, 1.5, 3.4: PAINT (BoardX(48), BoardY(48) + 18), 8, 11
  152.  
  153.  
  154. ' Draw Red Home
  155. CIRCLE (130, 320), 50, 15: PAINT (130, 320), 6, 15: CIRCLE (130, 320), 35, 2: PAINT (130, 320), 2
  156.  
  157. ' Draw Blue Home
  158. CIRCLE (415, 130), 50, 15: PAINT (415, 130), 9, 15: CIRCLE (415, 130), 35, 5: PAINT (415, 130), 5
  159.  
  160. ' Draw Yellow Home
  161. CIRCLE (603, 415), 50, 15: PAINT (603, 415), 7, 15: CIRCLE (603, 415), 35, 3: PAINT (603, 415), 3
  162.  
  163. ' Draw Green Home
  164. CIRCLE (320, 603), 50, 15: PAINT (320, 603), 8, 15: CIRCLE (320, 603), 35, 4: PAINT (320, 603), 4
  165.  
  166.  
  167. ' Draw Red Safe Zone
  168. PSET (130, 87), 10: DRAW "BL21BU21D204F21E21U204BG10P2,10"
  169. X = 87: FOR Z = 1 TO 4: PSET (109, X - 21), 0: DRAW "D42R42U42R1D43L44U44": SafeZoneX(3, Z) = 130: SafeZoneY(3, Z) = X: X = X + 43: NEXT
  170. PSET (109, 238), 0: DRAW "D33F21E21U33R1D34G22H22U34": SafeZoneX(3, 5) = 130: SafeZoneY(3, 5) = 259
  171.  
  172. ' Draw Blue Safe Zone
  173. PSET (646, 130), 10: DRAW "BU21BR21L204G21F21R204BH10P5,10"
  174. X = 646: FOR Z = 1 TO 4: PSET (X + 21, 109), 0: DRAW "L42D42R42D1L43U44R44": SafeZoneX(1, Z) = X: SafeZoneY(1, Z) = 130: X = X - 43: NEXT
  175. PSET (495, 109), 0: DRAW "L33G21F21R33D1L34H22E22R34": SafeZoneX(1, 5) = 474: SafeZoneY(1, 5) = 130
  176.  
  177. ' Draw Yellow Safe Zone
  178. PSET (603, 646), 10: DRAW "BR21UBD21U204H21G21D204BE10P3,10"
  179. X = 646: FOR Z = 1 TO 4: PSET (624, X + 21), 0: DRAW "U42L42D42L1U43R44D44": SafeZoneX(4, Z) = 603: SafeZoneY(4, Z) = X: X = X - 43: NEXT
  180. PSET (624, 495), 0: DRAW "U33H21G21D33L1U34E22F22D34": SafeZoneX(4, 5) = 603: SafeZoneY(4, 5) = 474
  181.  
  182. ' Draw Green Safe Zone
  183. PSET (87, 603), 10: DRAW "BL21BU21R204F21G21L204BE10P4,10"
  184. X = 87: FOR Z = 1 TO 4: PSET (X - 21, 624), 0: DRAW "R42U42L42U1R43D44L44": SafeZoneX(2, Z) = X: SafeZoneY(2, Z) = 603: X = X + 43: NEXT
  185. PSET (238, 624), 0: DRAW "R33E21H21L33U1R34F22G22L34": SafeZoneX(2, 5) = 474: SafeZoneY(2, 5) = 603
  186.  
  187.  
  188. ' Draw Red Start
  189. CIRCLE (216, 117), 50, 15: PAINT (216, 117), 6, 15: CIRCLE (216, 117), 35, 2: PAINT (216, 117), 2
  190. PSET (216, 86), 0: DRAW "F9L18E9BD3P6,0"
  191.  
  192. ' Draw Blue Start
  193. CIRCLE (616, 216), 50, 15: PAINT (616, 216), 9, 15: CIRCLE (616, 216), 35, 5: PAINT (616, 216), 5
  194. PSET (647, 216), 0: DRAW "H9D18E9BL3P9,0"
  195.  
  196. ' Draw Yellow Start
  197. CIRCLE (517, 616), 50, 15: PAINT (517, 616), 7, 15: CIRCLE (517, 616), 35, 3: PAINT (517, 616), 3
  198. PSET (517, 647), 0: DRAW "E9L18F9BU3P7,0"
  199.  
  200. ' Draw Green Start
  201. CIRCLE (117, 517), 50, 15: PAINT (117, 517), 8, 15: CIRCLE (117, 517), 35, 4: PAINT (117, 517), 4
  202. PSET (86, 517), 0: DRAW "E9D18H9BR3P8,0"
  203.  
  204.  
  205.  
  206. Players = 4
  207.  
  208.  
  209.  
  210. ' Place Pawns on Start
  211. FOR Z = 1 TO 4
  212.     X1 = Z: X5 = 1
  213.     X2 = 1: X3 = StartX(1, Z): X4 = StartY(1, Z): GOSUB GetPut: GOSUB DrawPiece
  214.     X2 = 2: X3 = StartX(2, Z): X4 = StartY(2, Z): GOSUB GetPut: GOSUB DrawPiece
  215.     IF Players > 2 THEN X2 = 3: X3 = StartX(3, Z): X4 = StartY(3, Z): Start(3) = 4: GOSUB GetPut: GOSUB DrawPiece
  216.     IF Players = 4 THEN X2 = 4: X3 = StartX(4, Z): X4 = StartY(4, Z): Start(4) = 4: GOSUB GetPut: GOSUB DrawPiece
  217.  
  218.  
  219. Player = 1
  220.  
  221.  
  222.  
  223. StartGame:
  224. ' Draw Player Indicator
  225. X2 = Player: X3 = 885: X4 = 70: GOSUB DrawPiece
  226. COLOR 0, 18: LOCATE 7, 107: PRINT "Player:"; Player;
  227. ' Get Next Pawn in Start area
  228. IF AtStart(Player, 1) = 1 THEN NextStart = 1 ELSE IF AtStart(Player, 2) = 1 THEN NextStart = 2 ELSE IF AtStart(Player, 3) = 1 THEN NextStart = 3 ELSE IF AtStart(Player, 4) = 1 THEN NextStart = 4 ELSE NextStart = 0
  229. Card = CardDeck(CardsLeft)
  230.  
  231.  
  232.  
  233. Card = 5
  234.  
  235.  
  236.  
  237. ' Draw plying card
  238. X1 = 2: X2 = Card: GOSUB DrawCard
  239.  
  240.  
  241.  
  242. ' Check for Playable moves
  243. X = 0: GOSUB Playable
  244.  
  245.  
  246. ' Get Player Input
  247. GetInput1:
  248.  
  249.  
  250.     IF CanStart = 1 THEN
  251.  
  252.  
  253.         LOCATE 15, 105: PRINT "CanStart ="; CanStart;
  254.  
  255.  
  256.         IF _MOUSEX > StartAreaX(Player) - 45 AND _MOUSEX < StartAreaX(Player) + 45 AND _MOUSEX > StartAreaY(Player) - 45 AND _MOUSEY < StartAreaY(Player) + 45 THEN StartSelected = 1 ELSE StartSelected = 0
  257.  
  258.  
  259.         LOCATE 18, 102: PRINT "StartSelected ="; StartSelected;
  260.  
  261.  
  262.         IF StartSelected = 1 AND _MOUSEBUTTON(1) = -1 THEN
  263.             GOSUB ButtonRelease: StartPawn = 0: Space = BoardStart(Player)
  264.             IF BoardPlayer(Space) > 0 THEN GOSUB BumpPiece
  265.             X1 = NextStart: X2 = Player: X3 = StartX(Player, NextStart): X4 = StartY(Player, NextStart): X5 = 2: X6 = 18: GOSUB GetPut
  266.             AtStart(Player, NextStart) = 0: BoardPlayer(Space) = Player: BoardPiece(Space) = NextStart
  267.             X3 = BoardX(Space): X4 = BoardY(Space): GOSUB DrawPiece: GOTO MakeMove
  268.         END IF
  269.     END IF
  270. GOTO GetInput1
  271.  
  272.  
  273. MakeMove:
  274.  
  275. DrawText:
  276. COLOR 15, 0: LOCATE 1, 100: PRINT Text$;
  277. Length = 8 * LEN(Text$)
  278.  
  279. FOR Height = 0 TO 17
  280.     FOR Width = 0 TO Length
  281.         IF POINT(791 + Width, Height) = 15 THEN PColor = 0 ELSE PColor = 1
  282.         SELECT CASE Rotation
  283.             CASE 1
  284.                 IF PColor = 0 THEN LINE (X1 + Width * Size, Y1 + Height * Size)-(X1 + Width * Size + Size, Y1 + Height * Size + Size), 0, BF
  285.             CASE 2
  286.                 IF PColor = 0 THEN LINE (X1 - Height * Size, Y1 + Width * Size)-(X1 - Height * Size - Size, Y1 + Width * Size + Size), 0, BF
  287.             CASE 3
  288.                 IF PColor = 0 THEN LINE (X1 - Width * Size, Y1 - Height * Size)-(X1 - Width * Size - Size, Y1 - Height * Size - Size), 0, BF
  289.             CASE 4
  290.                 IF PColor = 0 THEN LINE (X1 + Height * Size, Y1 - Width * Size)-(X1 + Height * Size + Size, Y1 - Width * Size - Size), 0, BF
  291.         END SELECT
  292.     NEXT
  293.  
  294. COLOR 0, 18: LOCATE 1, 100: PRINT STRING$(15, 32);
  295.  
  296.  
  297.  
  298. DrawCard:
  299.  
  300. IF X1 = 1 THEN
  301.     CIRCLE (805, 145), 15, 0, 1.5, 3.1: CIRCLE (970, 145), 15, 0, 0, 1.6: CIRCLE (805, 355), 15, 0, 3.0, 4.75: CIRCLE (970, 355), 15, 0, 4.5, 0
  302.     LINE (805, 130)-(970, 130), 0: LINE (790, 145)-(790, 355), 0: LINE (985, 145)-(985, 355), 0: LINE (805, 370)-(970, 370), 0: PAINT (805, 145), 15, 0
  303.     Text$ = "SORRY!": Size = 4: X1 = 912: Y1 = 152: Rotation = 2: GOSUB DrawText
  304.  
  305. IF X1 = 2 THEN
  306.     CIRCLE (805, 415), 15, 0, 1.5, 3.1: CIRCLE (970, 415), 15, 0, 0, 1.6: CIRCLE (805, 625), 15, 0, 3.0, 4.75: CIRCLE (970, 625), 15, 0, 4.5, 0
  307.     LINE (805, 400)-(970, 400), 0: LINE (790, 415)-(790, 625), 0: LINE (985, 415)-(985, 625), 0: LINE (805, 640)-(970, 640), 0: PAINT (805, 415), 15, 0
  308.  
  309.     SELECT CASE X2
  310.         CASE 1, 5, 6, 7, 8
  311.             StartText = 32
  312.         CASE 0, 2, 3, 4, 9
  313.             StartText = 33
  314.         CASE ELSE
  315.             StartText = 31
  316.     END SELECT
  317.  
  318.     FOR Z1 = 1 TO CardLines(X2)
  319.         COLOR 0, 15: LOCATE StartText + Z1 - 1, 102: PRINT CardText$(X2, Z1);
  320.     NEXT
  321.  
  322.     Text$ = Card$(X2): Size = 3: X1 = 812: Y1 = 420: Rotation = 1: GOSUB DrawText
  323.     Text$ = Card$(X2): Size = 3: X1 = 963: Y1 = 620: Rotation = 3: GOSUB DrawText
  324.  
  325.  
  326. Playable:
  327. FOR Z = 1 TO 60: BoardSpace(Z) = 0: NEXT
  328.     CASE 0
  329.         ' Card - Move Pawn 3 Spaces Forward
  330.  
  331.     CASE 1
  332.         ' Card - Move Pawn 10 Spaces Forward or 1 Space Backward
  333.  
  334.     CASE 2
  335.         ' Card - Move Pawn 5 Spaces Forward
  336.  
  337.     CASE 3
  338.         ' Card - Move Pawn 4 Spaces Backward
  339.  
  340.     CASE 4
  341.         ' Card - Move Pawn 12 Spaces Forward
  342.  
  343.     CASE 5
  344.         ' Card - Start Pawn or Move 1 Space Forward
  345.         Forard = 0: CanStart = 0
  346.         IF Start(Player) > 0 AND BoardStart(Player) <> Player THEN X = 1: CanStart = 1
  347.         IF CanStart = 1 THEN COLOR 0, 18: LOCATE 42, 101: PRINT "Select your START area";: LOCATE 43, 97: PRINT "to move your pawn to the board";
  348.  
  349.     CASE 6
  350.         ' Card - Move Pawn 11 Spaces Forward or Swap With opponent
  351.  
  352.     CASE 7
  353.         ' Card - Move 1 or 2 Pawns 7 Spaces Forward
  354.  
  355.  
  356.     CASE 8
  357.         ' Card - Start Pawn or Move Pawn 2 Spaces Forward
  358.         CanStart = 0: Forward = 0
  359.         IF Start(Player) > 0 AND BoardStart(Player) <> Player THEN X = 1: CanStart = 1
  360.         IF CanStart = 1 THEN COLOR 0, 18: LOCATE 42, 101: PRINT "Select your START area";: LOCATE 43, 97: PRINT "to move your pawn to the board";
  361.  
  362.     CASE 9
  363.         ' Card - Move Pawn 8 Spaces Forward
  364.  
  365.     CASE 10
  366.         ' Card - Sorry!
  367.  
  368.  
  369.  
  370. GetPut:
  371. ' preferirei
  372. ' if x5 = 1 then
  373. '     select case X2
  374. '               select case x1
  375.  
  376.     CASE 1
  377.         SELECT CASE X1
  378.             CASE 1
  379.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P11() ELSE PUT (X3 - X6, X4 - X6), P11(), PSET
  380.             CASE 2
  381.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P12() ELSE PUT (X3 - X6, X4 - X6), P12(), PSET
  382.             CASE 3
  383.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P13() ELSE PUT (X3 - X6, X4 - X6), P13(), PSET
  384.             CASE 4
  385.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P14() ELSE PUT (X3 - X6, X4 - X6), P14(), PSET
  386.         END SELECT
  387.     CASE 2
  388.         SELECT CASE X1
  389.             CASE 1
  390.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P21() ELSE PUT (X3 - X6, X4 - X6), P21(), PSET
  391.             CASE 2
  392.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P22() ELSE PUT (X3 - X6, X4 - X6), P22(), PSET
  393.             CASE 3
  394.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P23() ELSE PUT (X3 - X6, X4 - X6), P23(), PSET
  395.             CASE 4
  396.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P24() ELSE PUT (X3 - X6, X4 - X6), P24(), PSET
  397.         END SELECT
  398.     CASE 3
  399.         SELECT CASE X1
  400.             CASE 1
  401.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P31() ELSE PUT (X3 - X6, X4 - X6), P31(), PSET
  402.             CASE 2
  403.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P32() ELSE PUT (X3 - X6, X4 - X6), P32(), PSET
  404.             CASE 3
  405.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P33() ELSE PUT (X3 - X6, X4 - X6), P33(), PSET
  406.             CASE 4
  407.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P34() ELSE PUT (X3 - X6, X4 - X6), P34(), PSET
  408.         END SELECT
  409.     CASE 4
  410.         SELECT CASE X1
  411.             CASE 1
  412.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P41() ELSE PUT (X3 - X6, X4 - X6), P41(), PSET
  413.             CASE 2
  414.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P42() ELSE PUT (X3 - X6, X4 - X6), P42(), PSET
  415.             CASE 3
  416.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P43() ELSE PUT (X3 - X6, X4 - X6), P43(), PSET
  417.             CASE 4
  418.                 IF X5 = 1 THEN GET (X3 - 18, X4 - 18)-(X3 + 18, X4 + 18), P44() ELSE PUT (X3 - X6, X4 - X6), P44(), PSET
  419.         END SELECT
  420.  
  421.  
  422. ButtonRelease:
  423.     IF _MOUSEBUTTON(1) = 0 THEN RETURN
  424. GOTO ButtonRelease
  425.  
  426.  
  427. DrawPiece:
  428.     CASE 1
  429.         CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 12, 17: CIRCLE (X3, X4), 12, 9: PAINT (X3, X4), 9: CIRCLE (X3, X4), 6, 5: PAINT (X3, X4), 5
  430.     CASE 2
  431.         CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 13, 17: CIRCLE (X3, X4), 12, 8: PAINT (X3, X4), 8: CIRCLE (X3, X4), 6, 4: PAINT (X3, X4), 4
  432.     CASE 3
  433.         CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 14, 17: CIRCLE (X3, X4), 12, 6: PAINT (X3, X4), 6: CIRCLE (X3, X4), 6, 2: PAINT (X3, X4), 2
  434.     CASE 4
  435.         CIRCLE (X3, X4), 18, 17: PAINT (X3, X4), 16, 17: CIRCLE (X3, X4), 12, 7: PAINT (X3, X4), 7: CIRCLE (X3, X4), 6, 3: PAINT (X3, X4), 3
  436.  
  437.  
  438. BumpPiece:
  439.  
  440.  
  441.  
IMHO I have trouble to understand why fixed X3 X4 changes the position of player symbol on the board at this point

Code: QB64: [Select]
  1. Player = 1  ' <-- here you suggest to change to try with players 2 and 4 that have troubles
  2.  
  3.  
  4.  
  5. StartGame:
  6. ' Draw Player Indicator
  7. X2 = Player: X3 = 885: X4 = 70: GOSUB DrawPiece 'here x3 and x4 have fixed equals for all players but works only for player 1 and 3
  8. COLOR 0, 18: LOCATE 7, 107: PRINT "Player:"; Player;
Programming isn't difficult, only it's  consuming time and coffee

Offline Donald Foster

  • Newbie
  • Posts: 63
    • View Profile
Re: I need help with my Sorry! board game
« Reply #2 on: April 22, 2020, 10:18:11 am »
Sorry for not posting the code properly. I'm also not good at inseting quotes.

Player = 1  ' <-- here you suggest to change to try with players 2 and 4 that have troubles
Yes, this is the line to change the player number.

X2 = Player: X3 = 885: X4 = 70: GOSUB DrawPiece 'here x3 and x4 have fixed equals for all players but works only for player 1 and 3
This line of code draws the playing piece of the player who's turn it is in the upper right area of the screen. This code does work properly and is unrelated to the problem.
« Last Edit: April 22, 2020, 10:20:14 am by Donald Foster »

Offline Richard

  • Seasoned Forum Regular
  • Posts: 364
    • View Profile
Re: I need help with my Sorry! board game
« Reply #3 on: April 22, 2020, 10:44:22 am »
It may not be relevant for this topic but :-

If you used the newer Windows 10 builds - with EDGE you cannot use the code, quote, etc, etc buttons.

Very old Windows 10 builds (EDGE), Internet Explorer, etc allow proper use of the Code, Quote, Bold, etc buttons.

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: I need help with my Sorry! board game
« Reply #4 on: April 22, 2020, 03:58:41 pm »
@Donald Foster you're right I have given just a quick look at the code...
but I think to be lucky in the second time!

I've found a mistyping that is rised out from the logic of your constructed statement

see here the results:
player 2

  [ You are not allowed to view this attachment ]  

player 4
  [ You are not allowed to view this attachment ]  

here the fixed code
Code: QB64: [Select]
  1.        IF _MOUSEX > StartAreaX(Player) - 45 AND _MOUSEX < StartAreaX(Player) + 45 AND _MOUSEY > StartAreaY(Player) - 45 AND _MOUSEY < StartAreaY(Player) + 45 THEN StartSelected = 1 ELSE StartSelected = 0
where is the problem? After a correct test of X vs _mouseX there is a incorrect test of Y vs _mouseX (1st control) e vs _mouseY (2nd control) at line 263

Thanks to share!
I find your applications well suited! I have thinked that is not possible to get clear graphics using internal statement of graphic on fly.
And you prove the contrary
« Last Edit: April 22, 2020, 04:00:56 pm by TempodiBasic »
Programming isn't difficult, only it's  consuming time and coffee

Offline Donald Foster

  • Newbie
  • Posts: 63
    • View Profile
Re: I need help with my Sorry! board game
« Reply #5 on: April 22, 2020, 05:33:35 pm »
TempodiBasic,

Thank you very much! I had studied and studied that line knowing that's where the problem was a didn't spot that. I am so grateful. I try not have to ask or help, but I thank you.

I very much enjoy hand drawing my board and pieces using graphics statements. It can be challenging sometimes and it doesn't always come out the way I pictured it in my mind before I start.

Thanks again, Donald

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: I need help with my Sorry! board game
« Reply #6 on: April 22, 2020, 07:48:17 pm »
Maybe that third _MOUSEX was just self-identifying as _MOUSEY.

Nice Find, TB!

Pete

PS: Gorgeous graphics, Donald.
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline Donald Foster

  • Newbie
  • Posts: 63
    • View Profile
Re: I need help with my Sorry! board game
« Reply #7 on: April 23, 2020, 12:01:01 am »
Pete,

Yes the third _MOUSEX was suppose to be _MOUSEY. You don't know how many times I followed every character on that line and still missed.
 
Thank you Pete on the compliment on the graphics. That took almost a week just to make the board, but I didn't mind.

Thanks again Everyone, Donald

Offline Dav

  • Forum Resident
  • Posts: 792
    • View Profile
Re: I need help with my Sorry! board game
« Reply #8 on: April 23, 2020, 09:08:36 pm »
I'm late to the thread, but just wanted to tag along to what Pete said - the hand-coded QB graphics are beautiful, Donald.  Great work.

- Dav

Offline Donald Foster

  • Newbie
  • Posts: 63
    • View Profile
Re: I need help with my Sorry! board game
« Reply #9 on: April 25, 2020, 01:08:15 am »
Thank you Dav and I've been working hard to get this game up and running. I still have sections not completed yet and a lot of bugs to iron out still. I will be uploading it as soon as it's complete.

Take care Donald

Offline Qwerkey

  • Forum Resident
  • Posts: 755
    • View Profile
Re: I need help with my Sorry! board game
« Reply #10 on: April 25, 2020, 04:59:37 am »
Donald, when you have finished the project, please remember to place it in Programs, not QB64 Discussion.  When there, the Librarians may wish to place it in Games.

Offline Donald Foster

  • Newbie
  • Posts: 63
    • View Profile
Re: I need help with my Sorry! board game
« Reply #11 on: April 25, 2020, 09:55:22 am »
Thank you very much Qwerkey for the info, that's the plan.

Donald

Offline STxAxTIC

  • Library Staff
  • Forum Resident
  • Posts: 1091
  • he lives
    • View Profile
Re: I need help with my Sorry! board game
« Reply #12 on: April 25, 2020, 10:05:24 am »
On that note Donald, I remember you have quite the game portfolio at this point. Can you point us to each of them so that they may be properly immortalized on this forum?
« Last Edit: April 25, 2020, 10:13:09 am by STxAxTIC »
You're not done when it works, you're done when it's right.

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: I need help with my Sorry! board game
« Reply #13 on: April 25, 2020, 12:06:57 pm »
Sorry Bill, QB64 doesn't have pointers. Maybe he could link them?

You know at QBF, we had a section called: Programs I Am Proud Of. It allowed every contributor to have a sub-section of the the forum, under his/her name, so they could showcase their finished works. Maybe something the Odin Trinity would want to consider here?

If not, don't mind me, I just like to throw stuff out once in awhile. Hey, has anyone seen Clippy, lately?
 
Pete
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline Donald Foster

  • Newbie
  • Posts: 63
    • View Profile
Re: I need help with my Sorry! board game
« Reply #14 on: April 25, 2020, 01:25:45 pm »
Only small handful of my games on this forum. I've been meaning to port the rest of them here, but haven't done it. Most of my games are on [abandoned, outdated and now likely malicious qb64 dot net website - don’t go there] and Walter's website. Here's a link to all of my games at Walter's site: https://qb64.thejoyfulprogrammer.com/forumdisplay.php?fid=461

I will port them here, but I'll copy the text from Walters site and past into each as I port them.

Thank you for the continued interest in my games. Donald


Never mind, I was in this tread when I searched.
« Last Edit: April 25, 2020, 06:04:22 pm by Donald Foster »