File tree 3 files changed +17
-28
lines changed
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
+
1
3
type Opponent = {
2
4
hitPoints : number ;
3
5
damage : number ;
@@ -74,20 +76,6 @@ function* scenarios() {
74
76
}
75
77
}
76
78
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
-
91
79
function determineWinner ( a : Opponent , b : Opponent ) {
92
80
return calculateHitsToWin ( a , b ) <= calculateHitsToWin ( b , a ) ? a : b ;
93
81
}
Original file line number Diff line number Diff line change
1
+ import subsets from "@lib/subsets.ts" ;
2
+
1
3
type Opponent = {
2
4
hitPoints : number ;
3
5
damage : number ;
@@ -74,20 +76,6 @@ function* scenarios() {
74
76
}
75
77
}
76
78
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
-
91
79
function determineWinner ( a : Opponent , b : Opponent ) {
92
80
return calculateHitsToWin ( a , b ) <= calculateHitsToWin ( b , a ) ? a : b ;
93
81
}
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