Files
vb/src/app/screen-basic/screen-basic.component.ts
2026-03-27 07:41:05 +01:00

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;
}
}