Jump to content

Issue with 'for of' loop over an object to get position on grid PLEASE HELP


Get_Bentley
 Share

Recommended Posts

Hey all,

 

Okay so I am doing a simple Connect 4 game using Phaser in ES6. I am having trouble calculating matches.....well even having trouble getting the position of where the sprite lands when iterating through the grid object. Please have a look and if anyone has any suggestions let me know.

 

//Grid Object 

 

this.grid = {
            column1: {
                x: 263,
                width: 112,
                pos1: {
                    y: 843,
                    player: null,
                    sprite: null,
                },
                pos2: {
                    y: 684,
                    player: null,
                    sprite: null,

                },
                pos3: {
                    y: 523,
                    player: null,
                    sprite: null,

                },
                pos4: {
                    y: 365,
                    player: null,
                    sprite: null,

                },
                pos5: {
                    y: 204,
                    player: null,
                    sprite: null,

                },

            },
            column2: {
                x: 427,
                width: 112,
                pos1: {
                    y: 843,
                    player: null,
                    sprite: null,
                },
                pos2: {
                    y: 684,
                    player: null,
                    sprite: null,

                },
                pos3: {
                    y: 523,
                    player: null,
                    sprite: null,

                },
                pos4: {
                    y: 365,
                    player: null,
                    sprite: null,

                },
                pos5: {
                    y: 204,
                    player: null,
                    sprite: null,

                },

            },
            column3: {
                x: 582,
                width: 112,
                pos1: {
                    y: 843,
                    player: null,
                    sprite: null,
                },
                pos2: {
                    y: 684,
                    player: null,
                    sprite: null,

                },
                pos3: {
                    y: 523,
                    player: null,
                    sprite: null,

                },
                pos4: {
                    y: 365,
                    player: null,
                    sprite: null,

                },
                pos5: {
                    y: 204,
                    player: null,
                    sprite: null,

                },

            },
            column4: {
                x: 743,
                width: 112,
                pos1: {
                    y: 843,
                    player: null,
                    sprite: null,
                },
                pos2: {
                    y: 684,
                    player: null,
                    sprite: null,

                },
                pos3: {
                    y: 523,
                    player: null,
                    sprite: null,

                },
                pos4: {
                    y: 365,
                    player: null,
                    sprite: null,

                },
                pos5: {
                    y: 204,
                    player: null,
                    sprite: null,

                },

            },
            column5: {
                x: 904,
                width: 112,
                pos1: {
                    y: 843,
                    player: null,
                    sprite: null,
                },
                pos2: {
                    y: 684,
                    player: null,
                    sprite: null,

                },
                pos3: {
                    y: 523,
                    player: null,
                    sprite: null,

                },
                pos4: {
                    y: 365,
                    player: null,
                    sprite: null,

                },
                pos5: {
                    y: 204,
                    player: null,
                    sprite: null,

                },

            },
            column6: {
                x: 1062,
                width: 112,
                pos1: {
                    y: 843,
                    player: null,
                    sprite: null,
                },
                pos2: {
                    y: 684,
                    player: null,
                    sprite: null,

                },
                pos3: {
                    y: 523,
                    player: null,
                    sprite: null,

                },
                pos4: {
                    y: 365,
                    player: null,
                    sprite: null,

                },
                pos5: {
                    y: 204,
                    player: null,
                    sprite: null,

                },

            },

        };

 

//Check match function

 

checkMatch() {
        for (let column of this.grid) {
            console.log(column);
            //itterate over each postiion
            for (let position of column) {
                console.log(position);
                //on each position, check direction
                for (var i = 0; i <= 7; i++) {
                    let counter = 0;
                    //on each direction, count 3 in the specific direction
                    //if id's are a match add to the counter
                    for (var t = 0; t <= 2; t++) {
                         if(i = t) {
                         counter++;
                         console.log('this is the counter', counter);
                         }
                         console.log(column, position);
                         console.log(i, t);
                    }
                    if(counter > 3) {
                        console.log('WINNER!!!');
                    }
                }
            }
        }

    }
 

 

// Error I am getting

Grid.js:397 Uncaught TypeError: this.grid[Symbol.iterator] is not a function

 

Thank you very much for anyone who has any input!

 

 

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...