diff --git a/bob_party/src/Games/CookieClicker/cookieClicker.tsx b/bob_party/src/Games/CookieClicker/cookieClicker.tsx
new file mode 100644
index 0000000..74b92a9
--- /dev/null
+++ b/bob_party/src/Games/CookieClicker/cookieClicker.tsx
@@ -0,0 +1,216 @@
+import React, { Component, useEffect, useState } from 'react'
+import {
+ StyleSheet,
+ TouchableOpacity,
+ Text,
+ View,
+ Pressable,
+ Image,
+ TouchableHighlight,
+ Alert,
+} from 'react-native'
+import { MANAGER_USER } from '../../../App';
+import { useUserStore } from '../../context/userContext';
+import { Match } from '../../core/match';
+import { User } from '../../core/User/user';
+
+
+function CookieClicker(props: { navigation: any, match:Match}){
+
+ const GAMING_TIME=15;
+
+ const setUser = useUserStore((state) => state.setUser);
+
+ const nav = props.navigation;
+ const match=props.match;
+
+ const [count, setCount] = useState(0);
+ const [money, setMoney] = useState(0);
+ const [clickSpeed, setClickSpeed] = useState(1);
+ const [grandmaCost, setGrandmaCost] = useState(10);
+ const [farmCost, setFarmCost] = useState(250);
+ const [factoryCost, setFactoryCost] = useState(2000);
+ const [wizardCost, setWizardCost] = useState(25000);
+ const [portalCost, setPortalCost] = useState(200000);
+
+ const [timer, setTimer] = useState(GAMING_TIME);
+
+
+ function onPressCookie(){
+ setMoney(money+clickSpeed);
+ setCount(count+clickSpeed);
+ }
+
+ function onPressGrandma(){
+ if (money>=grandmaCost){
+ setMoney(money-grandmaCost);
+ setClickSpeed(clickSpeed+1);
+ setGrandmaCost(grandmaCost+10);
+ }
+ }
+
+ function onPressFarm(){
+ if (money>=farmCost){
+ setMoney(money-farmCost);
+ setClickSpeed(clickSpeed+25);
+ setFarmCost(farmCost+250);
+ }
+ }
+
+ function onPressFactory(){
+ if (money>=factoryCost){
+ setMoney(money-factoryCost);
+ setClickSpeed(clickSpeed+200);
+ setFactoryCost(factoryCost+2000);
+ }
+ }
+
+ function onPressWizard(){
+ if (money>=wizardCost){
+ setMoney(money-wizardCost);
+ setClickSpeed(clickSpeed+2500);
+ setWizardCost(wizardCost+25000);
+ }
+ }
+
+ function onPressPortal(){
+ if (money>=portalCost){
+ setMoney(money-portalCost);
+ setClickSpeed(clickSpeed+20000);
+ setPortalCost(portalCost+200000);
+ }
+ }
+
+ function endGame(){
+ let tmp: User | null;
+ tmp=MANAGER_USER.getCurrentUser();
+ if (tmp!=null){
+ if (match.getTabUsers().includes(tmp)){
+ match.updatePostMatch(tmp, count);
+ setUser(tmp);
+ nav.goBack();
+ }
+ }
+ }
+
+ useEffect(() => {
+ let counter=GAMING_TIME;
+ var oneSecInterval = setInterval(() => {
+ setTimer(timer => timer - 1);
+ counter --;
+
+ if (counter == 0) {
+ clearInterval(oneSecInterval);
+ Alert.alert("fin du jeu");
+ endGame();
+ }
+ }, 1000);
+ },[]);
+
+
+ return (
+
+
+
+ Timer: {timer}
+
+
+
+
+
+ Argent {money}
+
+
+ Points {count}
+
+
+
+
+
+
+
+
+ Cost {grandmaCost}
+
+
+
+
+
+
+
+
+ Cost {farmCost}
+
+
+
+
+
+
+
+
+ Cost {factoryCost}
+
+
+
+
+
+
+
+
+ Cost {wizardCost}
+
+
+
+
+
+
+
+
+ Cost {portalCost}
+
+
+
+
+
+ )
+ }
+
+const styles = StyleSheet.create({
+ container: {
+ top: 5,
+ margin: 10,
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ containerRight: {
+ flex: 1,
+ flexWrap: "wrap",
+ top: 100,
+ marginBottom: 20,
+ left: 100,
+ },
+
+ button: {
+ alignItems: 'center',
+ backgroundColor: '#DDDDDD',
+ padding: 10,
+ marginBottom: 10
+ },
+ button2: {
+ alignItems: 'center',
+ backgroundColor: '#FFDDFF',
+ padding: 10,
+ marginBottom: 10
+ },
+ photo: {
+ width: 50,
+ height: 50
+ },
+ cout: {
+ marginBottom: 20
+ }
+
+})
+
+export default CookieClicker;
\ No newline at end of file
diff --git a/bob_party/src/components/GameComponent.tsx b/bob_party/src/components/GameComponent.tsx
index fdaa8b7..c778e09 100644
--- a/bob_party/src/components/GameComponent.tsx
+++ b/bob_party/src/components/GameComponent.tsx
@@ -19,7 +19,7 @@ FC<{game: Game, nav: any}> =
{
return (
- Alert.alert("Lancement du jeu")}>
+ nav.navigate('')}>
);
+const cookieClicker= new GameSolo("1", "Cookie Clicker", require('../../assets/Icons/UnSelected/Gamepad.png'), "/Games/CookieClicker/cookieClicker.tsx", 1, 1, new Map);
function GameChoice(props: { navigation: any; }) {
const { navigation } = props
return (
@@ -26,7 +26,7 @@ function GameChoice(props: { navigation: any; }) {
/>