From a06338ad2ec680ac6952fb6d79b049d7f30d0b69 Mon Sep 17 00:00:00 2001 From: bhattjayd Date: Sun, 30 Apr 2023 21:50:53 +0530 Subject: [PATCH] average and total score added --- App.js | 3 + src/assets/all.png | Bin 0 -> 40445 bytes src/assets/score.png | Bin 0 -> 15554 bytes src/screens/Game.js | 41 +++++++-- src/screens/Menu.js | 109 ++++++++++++++---------- src/screens/components/GameOver.js | 23 +++-- src/screens/components/GameTypeModal.js | 21 +++-- src/store/GameStore.js | 84 ++++++++++++++++++ src/utils/IconPack.js | 2 + src/utils/StorageConstants.js | 2 + 10 files changed, 217 insertions(+), 68 deletions(-) create mode 100644 src/assets/all.png create mode 100644 src/assets/score.png diff --git a/App.js b/App.js index c6e9270..9c207d1 100644 --- a/App.js +++ b/App.js @@ -9,6 +9,7 @@ import SplashScreen from 'react-native-splash-screen'; import messaging from '@react-native-firebase/messaging'; import AppStore from './src/store/AppStore'; import AuthStore from './src/store/AuthStore'; +import GameStore from './src/store/GameStore'; const App = () => { const getTheme = async () => { @@ -31,6 +32,8 @@ const App = () => { }; useEffect(() => { SplashScreen.hide(); + GameStore.scoreGraber(); + // AsyncStorage.removeItem(StorageConstants.SCORE); setTimeout(() => { AuthStore.setField('isLoggedin', true); }, 1500); diff --git a/src/assets/all.png b/src/assets/all.png new file mode 100644 index 0000000000000000000000000000000000000000..e7c0cbdbceef94a5dd2535114d72fdc861b77a0b GIT binary patch literal 40445 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 literal 0 HcmV?d00001 diff --git a/src/assets/score.png b/src/assets/score.png new file mode 100644 index 0000000000000000000000000000000000000000..dff8bf5f857d7f476be7d0cd95a857adecbb45f8 GIT binary patch literal 15554 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 DpTH$T literal 0 HcmV?d00001 diff --git a/src/screens/Game.js b/src/screens/Game.js index 4ca03ed..db74ed3 100644 --- a/src/screens/Game.js +++ b/src/screens/Game.js @@ -66,15 +66,7 @@ const Game = () => { source={IconPack.CHESS} /> - - {KEY} - + {KEY} { setShowCords(!showCords); @@ -100,6 +92,10 @@ const Game = () => { var rowValuse = ROW_NAME[secondLatter]; if (colValuse === col + 1 && rowValuse === row + 1) { randomGenrator(); + GameStore.setField( + 'currentScore', + GameStore.currentScore + 1, + ); } else { setColor('red'); setTimeout(() => { @@ -111,6 +107,9 @@ const Game = () => { showCords={showCords} /> + + {GameStore.currentScore} + )} @@ -128,4 +127,28 @@ const styles = StyleSheet.create({ }, eyeImageStyle: {height: 25, width: 25}, tintColorWhite: {tintColor: '#fff'}, + keyText: { + color: '#fff', + fontSize: 37, + fontWeight: '900', + textAlign: 'center', + }, + scoreView: { + padding: 26, + backgroundColor: ThemeStore.darkColor, + borderRadius: 10, + justifyContent: 'center', + alignItems: 'center', + + shadowColor: ThemeStore.lightColor, + shadowOffset: { + width: 0, + height: 4, + }, + shadowOpacity: 0.32, + shadowRadius: 5.46, + + elevation: 9, + }, + scoreText: {color: '#fff', fontSize: 20, fontWeight: 'bold'}, }); diff --git a/src/screens/Menu.js b/src/screens/Menu.js index 20abd0d..764af3a 100644 --- a/src/screens/Menu.js +++ b/src/screens/Menu.js @@ -1,53 +1,71 @@ -import React, {useEffect, useState} from 'react'; -import { - Image, - StyleSheet, - Text, - TouchableHighlight, - View, - // Animated, - ScrollView, -} from 'react-native'; +import React from 'react'; +import {Image, StyleSheet, Text, TouchableHighlight, View} from 'react-native'; import AppStore from '../store/AppStore'; import ThemeStore from '../store/ThemeStore'; import IconPack from '../utils/IconPack'; import GameTypeModal from './components/GameTypeModal'; import GameStore from '../store/GameStore'; import Animated, {FadeIn} from 'react-native-reanimated'; +import {Observer} from 'mobx-react'; const Menu = () => { return ( - - - - - { - AppStore.handelScreenNavigation('Theme'); - }}> - - - Theme - - - { - // AppStore.handelScreenNavigation('Game'); - GameStore.setField('showGameTypeModal', true); - }}> - - - Game + + {() => ( + + + + + { + AppStore.handelScreenNavigation('Theme'); + }}> + + + Theme + + + { + GameStore.setField('showGameTypeModal', true); + }}> + + + Game + + + {GameStore.avgScore > 0 && ( + + + + + + {GameStore.avgScore} + + + + )} + {GameStore.totalScore > 0 && ( + + + + + + {GameStore.totalScore} + + + + )} - + - - + )} + ); }; @@ -68,14 +86,19 @@ const styles = StyleSheet.create({ flexWrap: { flexDirection: 'row', flexWrap: 'wrap', - justifyContent: 'space-between', - paddingHorizontal: 16, + justifyContent: 'space-around', + paddingHorizontal: 10, }, iconStyle: {height: 25, width: 25}, highlightStyle: { - padding: 24, + // padding: 24, + height: 100, + width: 100, + justifyContent: 'center', + alignItems: 'center', backgroundColor: '#414149', marginHorizontal: 10, borderRadius: 10, + marginTop: 10, }, }); diff --git a/src/screens/components/GameOver.js b/src/screens/components/GameOver.js index 6e3ee50..b0719e3 100644 --- a/src/screens/components/GameOver.js +++ b/src/screens/components/GameOver.js @@ -3,8 +3,20 @@ import {View, Text, Modal, TouchableOpacity, StyleSheet} from 'react-native'; import GameStore from '../../store/GameStore'; import {Observer} from 'mobx-react'; import AppStore from '../../store/AppStore'; +import {getFromAsyncStorage, storeToAsyncStorage} from '../../utils/helper'; +import StorageConstants from '../../utils/StorageConstants'; const GameOver = () => { + const onPressRestart = () => { + GameStore.setField('showGameOverModal', false); + GameStore.scoreSaver(); + GameStore.setField('counter', GameStore.selectedGameTime); + }; + const onPressClose = () => { + GameStore.setField('showGameOverModal', false); + GameStore.scoreSaver(); + AppStore.handelScreenGoBack(); + }; return ( {() => ( @@ -15,11 +27,7 @@ const GameOver = () => { transparent={true}> - { - GameStore.setField('showGameOverModal', false); - AppStore.handelScreenGoBack(); - }}> + onPressClose()}> Close @@ -34,10 +42,7 @@ const GameOver = () => { { - GameStore.setField('showGameOverModal', false); - GameStore.setField('counter', GameStore.selectedGameTime); - }}> + onPress={() => onPressRestart()}> Restart diff --git a/src/screens/components/GameTypeModal.js b/src/screens/components/GameTypeModal.js index 0eb3c80..62da718 100644 --- a/src/screens/components/GameTypeModal.js +++ b/src/screens/components/GameTypeModal.js @@ -11,9 +11,21 @@ import GameStore from '../../store/GameStore'; import {Observer} from 'mobx-react'; import AppStore from '../../store/AppStore'; import IconPack from '../../utils/IconPack'; +import {storeToAsyncStorage} from '../../utils/helper'; +import StorageConstants from '../../utils/StorageConstants'; const GameTypeModal = () => { - const TimeData = [30, 60, 120, 180, 240, '∞']; + const TimeData = [5, 30, 60, 120, 180, 240, '∞']; + const onPressTime = i => { + storeToAsyncStorage( + StorageConstants.GAME_PLAYED_TIME, + JSON.stringify(GameStore.gamePlayedTime + 1), + ); + GameStore.setField('showGameTypeModal', false); + GameStore.setField('selectedGameTime', i != '∞' ? i : -1); + GameStore.setField('counter', i != '∞' ? i : -1); + AppStore.handelScreenNavigation('Game'); + }; return ( {() => ( @@ -32,12 +44,7 @@ const GameTypeModal = () => { key={index} style={styles.highlightStyle} underlayColor={'#4141498f'} - onPress={() => { - GameStore.setField('showGameTypeModal', false); - GameStore.setField('selectedGameTime', i != '∞' ? i : -1); - GameStore.setField('counter', i != '∞' ? i : -1); - AppStore.handelScreenNavigation('Game'); - }}> + onPress={() => onPressTime(i)}> { + try { + let score = 0; + try { + score = JSON.parse(await getFromAsyncStorage(StorageConstants.SCORE)); + } catch (error) { + console.log('error getting score', error); + } + + if (score != 0) { + await storeToAsyncStorage( + StorageConstants.SCORE, + JSON.stringify(score + this.currentScore), + ); + this.setField('totalScore', score + this.currentScore); + } else { + await storeToAsyncStorage( + StorageConstants.SCORE, + JSON.stringify(this.currentScore), + ); + this.setField('totalScore', this.currentScore); + } + + let gamePlayedTime = 0; + try { + gamePlayedTime = JSON.parse( + await getFromAsyncStorage(StorageConstants.GAME_PLAYED_TIME), + ); + } catch (error) { + console.log('error getting score', error); + } + if (gamePlayedTime) { + this.gamePlayedTime = gamePlayedTime; + } + + this.setField('avgScore', this.totalScore / this.gamePlayedTime); + + setTimeout(() => { + this.setField('currentScore', 0); + }, 700); + } catch (error) { + console.log(error, 'error scoreSaver'); + } + }; + + scoreGraber = async () => { + try { + let score = 0; + try { + score = JSON.parse(await getFromAsyncStorage(StorageConstants.SCORE)); + } catch (error) { + console.log('error getting score', error); + } + if (score) { + this.totalScore = score; + } + + let gamePlayedTime = 0; + try { + gamePlayedTime = JSON.parse( + await getFromAsyncStorage(StorageConstants.GAME_PLAYED_TIME), + ); + } catch (error) { + console.log('error getting score', error); + } + if (gamePlayedTime) { + this.gamePlayedTime = gamePlayedTime; + } + } catch (error) { + console.log(error, 'error scoreGraber'); + } + }; } + const GameStore = new gameStore(); export default GameStore; diff --git a/src/utils/IconPack.js b/src/utils/IconPack.js index 2d0e4a1..8fc51ff 100644 --- a/src/utils/IconPack.js +++ b/src/utils/IconPack.js @@ -4,4 +4,6 @@ export default { THEME: require('../assets/theme.png'), CHESS: require('../assets/chess.png'), CHESS_CLOCK: require('../assets/chessClock.png'), + SCORE: require('../assets/score.png'), + ALL: require('../assets/all.png'), }; diff --git a/src/utils/StorageConstants.js b/src/utils/StorageConstants.js index 8f5eae0..8e4b5bd 100644 --- a/src/utils/StorageConstants.js +++ b/src/utils/StorageConstants.js @@ -1,3 +1,5 @@ export default { DEFAULT_THEME: 'Default_Theme', + SCORE: 'Score', + GAME_PLAYED_TIME: 'Game_Played_Time', };