/*import Tile from '@/model/Tile.js'

const COMBINATION_NAME = {
    "0": "Chow",
    "1": "Pung",
    "2": "Kong"
    };
*/
export default class Hand{
    constructor() {
        this.tiles_left = [];
        this.claimed =[];
    }

    discard(tile){
        const tile_ids = this.tiles_left.map(tile => tile.id_tuile);
        var index = tile_ids.indexOf(tile);
        return this.tiles_left.splice(index, 1);
    }

    draw(tile){
        this.tiles_left.push(tile);
    }

    sort(){
        this.tiles_left.sort(function (a, b) {
            return a.id_tuile - b.id_tuile;
          });
    }

    /**
     * Check if 3 tiles of the same family consecutively (winds and dragons excluded)
     */
    //
    checkChow(){
        this.sort();
        const tile_ids = this.tiles_left.map(tile => tile.id_tuile);
        let current_tile = -1;
        tile_ids.forEach(tile_id => {
            if(tile_id>current_tile){
                current_tile=tile_id;
            }
            //WIP
        });
    }

    /**
     * Check if 3 tiles are the same
     */
    checkPung(){
        let pungArray=[];
        const tile_ids = this.tiles_left.map(tile => tile.id_tuile);
        let ids_set = new Set(tile_ids);
        ids_set.forEach(unique_tile => {
            var count = tile_ids.reduce(function(n, val) {
                return n + (val === unique_tile);
            }, 0);
            if(count>=3){
                pungArray.push(unique_tile);
            }
        });
        return pungArray;
    }

    /**
     * Check if 4 tiles are the same
     */
    checkKong(){
        let pungArray=[];
        const tile_ids = this.tiles_left.map(tile => tile.id_tuile);
        let ids_set = new Set(tile_ids);
        ids_set.forEach(unique_tile => {
            var count = tile_ids.reduce(function(n, val) {
                return n + (val === unique_tile);
            }, 0);
            if(count>=4){
                pungArray.push(unique_tile);
            }
        });
        return pungArray;
    }
}