File tree Expand file tree Collapse file tree 3 files changed +17
-28
lines changed
Expand file tree Collapse file tree 3 files changed +17
-28
lines changed Original file line number Diff line number Diff line change 1+ import subsets from "@lib/subsets.ts" ;
2+
13type Opponent = {
24 hitPoints : number ;
35 damage : number ;
@@ -74,20 +76,6 @@ function* scenarios() {
7476 }
7577}
7678
77- function * subsets < T > ( set : Set < T > ) {
78- const size = 1 << set . size ;
79- yield new Set < T > ( ) ;
80- for ( let setBits = 1 ; setBits < size ; setBits ++ ) {
81- const subset = new Set < T > ( ) ;
82- let mask = 1 ;
83- for ( const value of set ) {
84- if ( setBits & mask ) subset . add ( value ) ;
85- mask <<= 1 ;
86- }
87- yield subset ;
88- }
89- }
90-
9179function determineWinner ( a : Opponent , b : Opponent ) {
9280 return calculateHitsToWin ( a , b ) <= calculateHitsToWin ( b , a ) ? a : b ;
9381}
Original file line number Diff line number Diff line change 1+ import subsets from "@lib/subsets.ts" ;
2+
13type Opponent = {
24 hitPoints : number ;
35 damage : number ;
@@ -74,20 +76,6 @@ function* scenarios() {
7476 }
7577}
7678
77- function * subsets < T > ( set : Set < T > ) {
78- const size = 1 << set . size ;
79- yield new Set < T > ( ) ;
80- for ( let setBits = 1 ; setBits < size ; setBits ++ ) {
81- const subset = new Set < T > ( ) ;
82- let mask = 1 ;
83- for ( const value of set ) {
84- if ( setBits & mask ) subset . add ( value ) ;
85- mask <<= 1 ;
86- }
87- yield subset ;
88- }
89- }
90-
9179function determineWinner ( a : Opponent , b : Opponent ) {
9280 return calculateHitsToWin ( a , b ) <= calculateHitsToWin ( b , a ) ? a : b ;
9381}
Original file line number Diff line number Diff line change 1+ export default function * subsets < T > ( set : Set < T > ) {
2+ const size = 1 << set . size ;
3+ yield new Set < T > ( ) ;
4+ for ( let setBits = 1 ; setBits < size ; setBits ++ ) {
5+ const subset = new Set < T > ( ) ;
6+ let mask = 1 ;
7+ for ( const value of set ) {
8+ if ( setBits & mask ) subset . add ( value ) ;
9+ mask <<= 1 ;
10+ }
11+ yield subset ;
12+ }
13+ }
You can’t perform that action at this time.
0 commit comments