47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
// Original Team Generation Screen for arbitrary size and number of teams
|
|
import { Component, inject} from '@angular/core';
|
|
import { FormsModule } from '@angular/forms';
|
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
import { CommonModule } from '@angular/common';
|
|
import { Player } from '../model';
|
|
import { iter } from '../util';
|
|
import { DataService } from '../data.service';
|
|
|
|
@Component({
|
|
selector: 'app-screen-basic',
|
|
imports: [NgbModule, CommonModule, FormsModule],
|
|
templateUrl: './screen-basic.component.html',
|
|
styleUrl: './screen-basic.component.less'
|
|
})
|
|
export class ScreenBasicComponent {
|
|
data = inject(DataService);
|
|
numTeamsSelectorValue = "2";
|
|
numTeamsSelected = 2;
|
|
nTeamsValue = "4";
|
|
|
|
onButtonGenerate(): void{
|
|
if(this.numTeamsSelectorValue === 'n'){
|
|
this.numTeamsSelected = Number(this.nTeamsValue);
|
|
}
|
|
else{
|
|
this.numTeamsSelected = Number(this.numTeamsSelectorValue);
|
|
}
|
|
|
|
let teams = Array.from({ length: this.numTeamsSelected }, () => []);
|
|
// clone array here
|
|
let localPlayers: Player[] = this.data.getPlayers();
|
|
|
|
let nameslen = localPlayers.length;
|
|
let iterator = iter(teams);
|
|
for(let i =0; i < nameslen; i++){
|
|
let index = Math.floor(Math.random()* localPlayers.length);
|
|
let n = localPlayers[index];
|
|
localPlayers.splice(index,1);
|
|
let team = iterator.next().value;
|
|
team.push(n);
|
|
|
|
}
|
|
this.data.teams = teams;
|
|
}
|
|
|
|
} |