File tree 5 files changed +55
-38
lines changed
5 files changed +55
-38
lines changed Original file line number Diff line number Diff line change @@ -29,24 +29,24 @@ function App() {
29
29
return ( ) => subject . detach ( onBoardUpdated ) ;
30
30
} , [ ] )
31
31
32
- useEffect ( ( ) => {
33
- if ( state === STATE . IN_GAME ) {
34
- const interval = setInterval ( ( ) => {
35
- gameController . reorderMoles ( ) ;
36
- } , 1000 ) ;
37
- return ( ) => clearInterval ( interval ) ;
38
- }
39
- } , [ state ] ) ;
32
+ // useEffect(() => {
33
+ // if(state === STATE.IN_GAME) {
34
+ // const interval = setInterval(() => {
35
+ // gameController.reorderMoles();
36
+ // }, 1000);
37
+ // return () => clearInterval(interval);
38
+ // }
39
+ // }, [state]);
40
40
41
- useEffect ( ( ) => {
42
- if ( state === STATE . IN_GAME ) {
43
- const randomTimer = randomIntFromInterval ( 400 , 1200 ) ;
44
- const interval = setInterval ( ( ) => {
45
- gameController . showRandomMole ( ) ;
46
- } , randomTimer ) ;
47
- return ( ) => clearInterval ( interval ) ;
48
- }
49
- } , [ state ] ) ;
41
+ // useEffect(() => {
42
+ // if(state === STATE.IN_GAME) {
43
+ // const randomTimer = randomIntFromInterval(400, 1200);
44
+ // const interval = setInterval(() => {
45
+ // gameController.showRandomMole();
46
+ // }, randomTimer);
47
+ // return () => clearInterval(interval);
48
+ // }
49
+ // }, [state]);
50
50
51
51
return (
52
52
< div className = "App" >
Original file line number Diff line number Diff line change @@ -4,25 +4,30 @@ import { gameController } from './../../controllers/GameController';
4
4
import { randomIntFromInterval } from './../../utils/randomIntFromInterval' ;
5
5
import { Logo } from './../Logo'
6
6
7
+ const useForceRerender = ( ) => React . useReducer ( x => x + 1 , 0 ) [ 1 ]
8
+
7
9
export const Mole = ( { mole} ) => {
8
-
9
- useEffect ( ( ) => {
10
- if ( mole . isVisible ) {
11
- const randomTime = randomIntFromInterval ( mole . peepOutMin , mole . peepOutMax ) ;
12
- const interval = setInterval ( ( ) => {
13
- gameController . hideMole ( mole ) ;
14
- } , randomTime ) ;
15
- return ( ) => clearInterval ( interval ) ;
16
- }
17
- } , [ mole ] )
10
+ const forceRenderer = useForceRerender ( ) ;
11
+
12
+ // useEffect(() => {
13
+ // if(mole.isVisible) {
14
+ // const randomTime = randomIntFromInterval(mole.peepOutMin, mole.peepOutMax);
15
+ // const interval = setInterval(() => {
16
+ // gameController.hideMole(mole);
17
+ // }, randomTime);
18
+ // return () => clearInterval(interval);
19
+ // }
20
+ // }, [mole])
18
21
19
22
return (
20
- mole . live > 0 && mole . isVisible &&
23
+ mole . live > 0 &&
24
+ //mole.isVisible &&
21
25
< Logo
22
26
onClick = { ( ) => {
23
27
scoreController . updateScore ( mole ) ;
24
28
gameController . kickedMole ( mole ) ;
25
29
gameController . continueInGame ( ) ;
30
+ forceRenderer ( ) ;
26
31
} }
27
32
mole = { mole }
28
33
/>
Original file line number Diff line number Diff line change @@ -39,15 +39,17 @@ export class Game {
39
39
}
40
40
41
41
hideMole ( moleToHide ) {
42
- this . board = this . board . map ( ( { id, mole } ) => {
43
- return { id, mole : { ...mole . id === moleToHide . id ? { ...mole , isVisible : false } : mole } }
44
- } )
42
+ moleToHide . hide ( ) ;
43
+ // this.board = this.board.map(({ id, mole }) => {
44
+ // return { id, mole: { ...mole.id === moleToHide.id ? {...mole, isVisible: false } : mole } }
45
+ // })
45
46
}
46
47
47
48
kickedMole ( moleKicked ) {
48
- this . board = this . board . map ( ( { id, mole } ) => {
49
- return { id, mole : { ...mole . id === moleKicked . id ? { ...mole , live : mole . live - 1 } : mole } }
50
- } )
49
+ moleKicked . decrementLive ( ) ;
50
+ // this.board = this.board.map(({ id, mole }) => {
51
+ // return { id, mole: { ...mole.id === moleKicked.id ? {...mole, live: mole.live - 1 } : mole } }
52
+ // })
51
53
}
52
54
53
55
continueInGame ( scoreController ) {
Original file line number Diff line number Diff line change 1
1
import { GenerateUUID } from './GenerateUUID' ;
2
2
3
3
4
- export class Hole extends GenerateUUID {
4
+ export class Hole {
5
5
constructor ( GoldenMole , Mole , index , randomNumber ) {
6
- super ( )
6
+ this . id = new GenerateUUID ( ) . id
7
7
this . mole = index === randomNumber ? new GoldenMole ( ) : new Mole ( ) ;
8
8
}
9
9
}
Original file line number Diff line number Diff line change 1
1
import { GenerateUUID } from './GenerateUUID' ;
2
2
3
- export class Mole extends GenerateUUID {
3
+ export class Mole {
4
4
5
5
constructor ( ) {
6
- super ( )
6
+ this . id = new GenerateUUID ( ) . id ;
7
7
this . isVisible = false ;
8
8
this . live = LIVE . MOLE ;
9
9
this . name = `Mole ${ this . id } ` ;
10
10
this . peepOutMax = 1200 ;
11
11
this . peepOutMin = 200 ;
12
12
this . points = 10 ;
13
13
this . type = 'normal' ;
14
+ this . hide = this . hide ;
15
+ this . decrementLive = this . decrementLive ;
16
+ }
17
+
18
+ hide ( ) {
19
+ this . isVisible = false ;
20
+ }
21
+
22
+ decrementLive ( ) {
23
+ this . live -- ;
14
24
}
15
25
}
16
26
You can’t perform that action at this time.
0 commit comments