commit f89b7df8d9fa89ad344ae094ef4088e1aa8d841a Author: ENSIMAG - NDR Date: Fri Feb 2 13:37:12 2024 +0100 Premier Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..9c96b2b --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..0897082 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8978d23 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..885025e --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,43 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.example.boidelov3' + compileSdk 33 + packagingOptions { resources.excludes.add("META-INF/*") } // This line is added to avoid the error: Duplicate files copied in APK META-INF/LICENSE.txt + defaultConfig { + applicationId "com.example.boidelov3" + minSdk 24 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.9.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + implementation 'com.squareup.okhttp3:okhttp:4.9.1' + implementation 'com.impossibl.pgjdbc-ng:pgjdbc-ng:0.8.3' + implementation 'com.google.code.gson:gson:2.8.8' + +} \ No newline at end of file diff --git a/app/libs/postgresql-42.2.27.jre7.jar b/app/libs/postgresql-42.2.27.jre7.jar new file mode 100644 index 0000000..c4c4591 Binary files /dev/null and b/app/libs/postgresql-42.2.27.jre7.jar differ diff --git a/app/libs/postgresql-42.6.0.jar b/app/libs/postgresql-42.6.0.jar new file mode 100644 index 0000000..02f902a Binary files /dev/null and b/app/libs/postgresql-42.6.0.jar differ diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..10000cb --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/question.json b/app/src/main/assets/question.json new file mode 100644 index 0000000..4545f6e --- /dev/null +++ b/app/src/main/assets/question.json @@ -0,0 +1,813 @@ + +{ + "version": "2", + "questions": [ + { + "id": 1, + "question": "Celles/Ceux qui ont habité dans plus de 3 villes diferentes", + "gorger": 3, + "distribution": true, + "recois": true + + }, + { + "id": 2, + "question": "Ceux qui ont dansé aujourd'hui", + "gorger": 1, + "distribution": true, + "recois": true + }, + { + "id": 3, + "question": "si tu n'as pas ton veritable nom sur insta", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 4, + "question": "si tu a des photos sur insta", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 5, + "question": "Les joueurs de Counter Strike ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 5, + "question": "La dernière personne à avoir vomi en soirée ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 6, + "question": "Toutes celles (ou ceux) qui ont du verni à ongles", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 7, + "question": "Tous les joueurs célibataires", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 8, + "question": "Tous ceux qui ont des lunettes", + "gorger": 2, + "distribution": true, + "recois": true + }, + { + "id": 9, + "question": "Tous ceux qui ont déjà triché à un examen", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 10, + "question": "Le/La plus radin(e)", + "gorger": 4, + "distribution": false, + "recois": true + }, + { + "id": 11, + "question": " a toi de juger : entre et qui stresse le plus pour un rien selon toi? Le perdant ", + "gorger": 5, + "distribution": false, + "recois": true + }, { + "id": 12, + "question": "Le mec qui a le plus gros ventre à bière ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 13, + "question": "Tous ceux qui se sont déjà fait exclure de cours", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 14, + "question": ", donne le nombre d'habitant du/de la ( à 1 000 000 près) Si tu as faux tu bois, sinon tu ", + "gorger": 3, + "distribution": true, + "recois": false, + "variante": ["Tadjikistant", "Monaco", "Belgique", "Suisse", "Allemagne", "Chine", "Inde"] + }, + { + "id": 15, + "question": "Tous ceux qui ont des frères et soeurs", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 16, + "question": " a qui appartient le slogan suivant? ", + "variante": ["Des pâtes oui mais des (panzani)"," Le plaisir pour les petites faims. (Kinder Bueno)","Réveillez le lion qui est en vous. (Cereale lion)","Parce que le monde bouge (CIC)","Ça coule de source ! (Cristaline)", "Pensez différemment (apple)" ], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 17, + "question": "Celles et ceux qui ont eu un Windows phone", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 18, + "question": ", Boire un café fait baisser le taux d'alcool? Si tu as faux ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 19, + "question": "Celles/Ceux qui se sont déjà battus", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 20, + "question": "Celui/Celle qui pèse le plus lourd", + "variante": ["lourd","leger"], + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 21, + "question": "Pour se décoincer, le/la plus ", + "variante": ["timide", "enervé ", "angoissé","aigri"], + "gorger": 2, + "distribution": false, + "recois": true + }, + { + "id": 22, + "question": "Le/La plus ", + "gorger": 3, + "variante": ["jeune","vieille"], + "distribution": false, + "recois": true + }, + { + "id": 23, + "question": "Celles/Ceux qui ont fait des études ", + "gorger": 3, + "variante": ["L","Scientifique", "Bac Professionel", "STMG"], + "distribution": true, + "recois": true + }, + { + "id": 25, + "question": "Celles et ceux qui ont deja joué de maniere recurrente ", + "gorger": 3, + "variante": ["du piano","de la guitare", "du saxophone", "de la batterie"], + "distribution": true, + "recois": true + }, + { + "id": 26, + "question": "Les gens qui se sont masturbés aujourd'hui", + "gorger": 3, + "distribution": true, + "recois": true, + "caliente": true + }, + { + "id": 27, + "question": "Celui ou celle a la meilleure place", + "gorger": 2, + "distribution": false, + "recois": true + }, + { + "id": 28, + "question": "Celles et ceux qui n'ont jamais trompé leur partenaire", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 29, + "question": "Celui/Celle avec les vêtements les plus beaux ", + "gorger": 1, + "distribution": false, + "recois": true + }, + { + "id": 30, + "question": "Celui/Celle qui a les cheveux les plus ", + "gorger": 2, + "variante": ["longs","courts"], + "distribution": true, + "recois": true + }, + { + "id": 31, + "question": "Les végans ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 32, + "question": "La personne la plus maquillé ", + "gorger": 2, + "distribution": true, + "recois": true + }, { + "id": 33, + "question": "Celles/Ceux qui ont déjà appelé leur partenaire par le prénom de leurs ex", + "gorger": 4, + "distribution": false, + "recois": true + }, + { + "id": 34, + "question": "Celles et ceux qui boit de la actuellement", + "gorger": 3, + "distribution": true, + "recois": true, + "variante": ["vodka", "rhum", "tequila", "whisky"] + }, + { + "id": 35, + "question": "Les joueurs qui ont un dans leurs prénom", + "gorger": 3, + "distribution": false, + "recois": true, + "variante": ["a","e","i","o","u","y"] + }, + { + "id": 36, + "question": "Le/La joueur/euse avec le plus gros cul", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 37, + "question": "Celles/Ceux qui ont moins de ans", + "gorger": 3, + "distribution": false, + "recois": true, + "variante": ["21","22","23","24","25","26"] + }, + { + "id": 38, + "question": "Celui/celle avec le plus gros appetit sexuel", + "gorger": 3, + "distribution": false, + "recois": true, + "caliente": true + }, + { + "id": 39, + "question": "Ceux/Celles qui fumes (VapeNation compris)", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 40, + "question": "Celles et ceux qui ont au moins un BAC +", + "gorger": 1, + "distribution": true, + "recois": true, + "variante": [0,1,2,3,4,5] + }, + { + "id": 41, + "question": "Le premier joueur à se lever", + "doubledistribution": true, + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 42, + "question": "Ceux qui n'ont jamais eu l'occasion de faire un strip tease", + "gorger": 3, + "distribution": false, + "recois": true, + "caliente": true + }, + { + "id": 43, + "question": "Le premier joueur à enlever un vêtements", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 44, + "question": "Tous ceux qui ont déjà uriné dans une piscine ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 30, + "question": "Celui/Celle avec le plus de follow sur ", + "gorger": 3, + "distribution": true, + "recois": true, + "variante": ["instagram","facebook","tik-tok"] + }, + { + "id": 31, + "question": "Celui/Celle avec le nom de famille le plus compliqué", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 32, + "question": "Les joueurs qui n'ont pas encore distribué de gorgées", + "gorger": 3, + "distribution": false, + "recois": true + }, { + "id": 33, + "question": "Le premier joueur à donner l'heure", + "doubledistribution": true, + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 34, + "question": "Celles et ceux qui ont déjà dépenser plus de 2000 euros en un achat", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 35, + "question": "La personne la moins courageuse", + "gorger": 1, + "distribution": false, + "recois": true + }, + { + "id": 36, + "question": "Celles/Ceux qui rentre chez eux à la fin de la soirée", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 37, + "question": "Celles et ceux dont le jour d'anniversaire est un nombre ", + "gorger": 3, + "distribution": true, + "recois": true, + "variante": ["impaire","paire"] + }, + { + "id": 38, + "question": "Si tu as un téléphone qui a un prix supperieur d'achat a 1000Euros, tu est riche donc en tant que personne généreuse", + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 39, + "question": "Tous ceux qui ont fait plus de 100km pour venir ici ", + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 40, + "jeux": true, + "question": "Le jeu du revolver: Chaque joueur a maintenant 7 balles, une balle correspondant à une gorgée. Les joueurs ont la capacité de tirer des balles à tout moment du jeu.", + "distribution": false, + "recois": false + }, + { + "id": 41, + "question": "", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 42, + "jeux": true, + "question": " est le vieu/vieille briscard ! Interdiction de montrer tes dents pendant manches", + "manches": true, + "arret": "Tu peux arreter de cacher tes belles dents" + + }, + { + "id": 43, + "jeux": true, + "question": " et liser le premier SMS qui s'affiche quand on tape dans la barre de recherche. le plus marrant", + "gorger": 3, + "variante": ["désolé","caca","bourré","mine","nazi"], + "distribution": true, + "recois": false + }, { + "id": 44, + "jeux": true, + "question": "A tour de role, vous avez exactement 3 secondes pour donner un mot en rapport avec le mots dit precedemment. tu commences en choissisant un mot. Le perdant", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 45, + "jeux": true, + "question": "Le jeu du PIM PAM POUM. Le premier qui perd ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 46, + "jeux": true, + "question": " defie au chifoumi ! Le perdant", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 47, + "jeux": true, + "question": " est dans le ! Tu dois parler au pendant manches ", + "variante": ["passé", "futur"], + "manches": true, + "arret": "Tu est revenu dans le present", + "distribution": false, + "recois": false, + "caliente": false + }, + { + "id": 48, + "question": " tu bois autant de gorgées que tu as d'années d'études après le BAC" + }, + { + "id": 49, + "jeux": true, + "question": " et ferment leurs yeux ! Ils/Elles doivent deviner la couleur des yeux de l'autre. ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 50, + "jeux": true, + "question": " est manchot ! Il/Elle ne peut plus utiliser ses doigts durant manches . Si il/elle s'en sert, il/elle devra boire autant de gorgées qu'il/elle a utilisé de doigts", + "distribution": false, + "arret": "Tu n'es plus manchot", + "recois": true + }, + { + "id": 51, + "jeux": true, + "question": " et , si vous êtes ensemble dans la vraie vie, vous pouvez distribuer 2 gorgées , autrement buvez-les" + + }, + { + "id": 52, + "jeux": true, + "question": " a la tourette ! A chaque fois que tu bois une gorgée, tu dois CRIER une insulte. C'est un stade avancé, ça dure manches", + "manches": true, + "arret": "Tu n'as plus tourette." + + }, + { + "id": 53, + "jeux": true, + "question": ", donne la couleur préférée de si tu te trompes", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 54, + "jeux": true, + "question": " à l'oeil de serpent ! Dès qu'un joueur te regarde dans les yeux, il/elle boit. Si tu es arrivé a faire boire personne avant manches, tu ", + "gorger": 4, + "distribution": false, + "recois": true + }, { + "id": 55, + "jeux": true, + "question": " et se mesurent ! Le/la plus ", + "gorger": 3, + "variante": ["petit","grand"], + "distribution": true, + "recois": true + }, + { + "id": 56, + "jeux": true, + "question": " doit terminer toutes ses phrases par - pendant manches", + "variante": ["C'est clair","han","quoicoubeh"] + }, + { + "id": 57, + "jeux": true, + "question": " et se défient au 'je te tiens, tu me tiens', le premier qui rit sera dechiré, et ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 58, + "jeux": true, + "question": " et n'ont plus le droit d'utiliser leur téléphone pendant manches !", + "manches": "true", + "arret": "vous pouvez enfin utiliser vos téléphone bande de geek" + }, + { + "id": 59, + "jeux": true, + "question": " et racontent une anecdote, celui/celle qui sort la plus ", + "variante": ["banale","incroyable","marrante"], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 60, + "jeux": true, + "question": ", Si on te dit Marco? ... Si tu as dis Polo ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 61, + "jeux": true, + "question": " est l'aigris pendant manches ! Dès que tu souris ou rigoles,", + "gorger": 1, + "manches": true, + "distribution": false, + "arret": "Tu n'es plus aigris!", + "recois": true + }, + { + "id": 62, + "jeux": true, + "question": " fait un geste, le suivant répète et en ajoute un. Le perdant ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 63, + "question": ", et vont désigner quelqu'un qui doit terminer son verre", + "jeux": true + }, + { + "id": 64, + "question": "Récitez l'alphabet en énonçant une lettre à tour de rôle. Si finit son verre avant, cul sec pour tout le monde !", + "jeux": true + }, + { + "id": 65, + "question": "Si arrive a finir son verre en moins de 5 secondes, il/elle ", + "gorger": 6, + "distribution": true, + "recois": false, + "jeux": true + }, + { + "id": 66, + "jeux": true, + "question": " et sont lies, si l'un boit alors l'autre aussi, et ce pendant manches", + "manches": true, + "arret": "Vous n'etes plus liés par le verre de l'amitié et plus.." + }, + { + "id": 67, + "question": " dit un mot, la personne suivante le répète et en ajoute un nouveau, ainsi de suite jusqu'a ce que quelqu'un se trompe. Le perdant boit autant de gorgées qu'il y a eu de personne avant lui", + "jeux": true + }, + { + "id": 68, + "question": " doit choisir un mot que tout le monde devra dire à chaque fois qu'une personne boit. Pendant manches", + "jeux": false, + "manches": true, + "arret": "Plus besoin de dire le mots avant de boire" + }, + { + "id": 69, + "question": "Quand l'heure affichera un multiple de 10 (22h, 22h10 ...) le premier a crier 'merde j'ai oublié mon chat'", + "gorger": 3, + "distribut":false, + "manches": true, + "arret": "Vous avez retrouver le chat!" + }, + { + "id": 70, + "question": "Plutôt ne plus avoir de mains ou de jambes? les perdants ", + "gorger": 3, + "jeux": false, + "distribution": false, + "recois": true + }, + { + "id": 71, + "question": "Vive la poésie ! Nos phrases doivent rimer sous peine d'une gorgée pendant manches", + "manches": true, + "arret": "Vous ne devez plus faire de rime." + }, + { + "id": 72, + "question": "Choisissez le joueur le drôle d'entre vous, ce dernier ", + "variante": ["moins", "plus"], + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 73, + "question": "Les ", + "variante": ["filles","garçons","couples","celibataires"], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 74, + "jeux": true, + "question": "Plutôt avoir un tapis volant, ou un frigo qui se remplit tout seul ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true, + "manches": false + }, + { + "id": 75, + "question": "Plutôt avoir du temps ou de l'argent ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + + }, + { + "id": 76, + "question": "Le premier joueur qui en embrasse un autre sur la bouche", + "gorger": 5, + "distribution": true, + "recois": false, + "caliente": true + }, + { + "id": 77, + "question": "Plutôt série ou film ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 78, + "question": "Plutôt jeux-videos ou livre ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + + { + "id": 79, + "question": "Plutôt anime ou jeux-videos ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 80, + "question": "Elisez le plus d'entre vous, ce dernier ", + "variante": ["con", "intelligent", "beau", "gentil","dragueur","timide"], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 81, + "question": "Le premier qui donne un film de ", + "gorger": 3, + "distribution": true, + "recois": false, + "variante": ["Christopher Nolan","James Cameron","Tim Burton","Quentin tarantino","Steven Spielberg"] + }, + { + "id": 82, + "question": "Le premier qui donne un film avec ", + "variante": ["Christian Clavier","Morgan freeman","Brad Pitt", "Jean Reno","Marion Cotillard"], + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 83, + "question": "La première personne qui désigne le/la plus ", + "gorger": 3, + "distribution": true, + "recois": false, + "variante": ["jeune", "vieille"] + }, + { + "id": 84, + "question": "Plutôt avoir des connaissances illimitées ou diriger le monde ? Votez tous en même temps. La minorité", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 85, + "question": "Plutôt n'avoir aucun ami ou ne plus pouvoir utiliser d'appareil électronique ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 86, + "question": "Plutot vaincre le patrikaka ou la polution dans le monde? Votez tous en meme temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 87, + "question": "Jeu du LUTIN : Pendant manches. Vous devez enlever le lutin de votre verre pour pouvoir boire et le remettre ensuite sinon vous devait reboire", + "gorger": 3, + "distribution": false, + "recois": false, + "manches": true, + "arret": "Le Lutin est parti. Vous pouvez boire normalement" + }, + { + "id": 88, + "question": "Le premier joueur à ramener un objet (pas de vêtements) ", + "gorger": 3, + "distribution": true, + "variante": ["rouge","vert","bleu","jaune"], + "recois": false, + "manches": false + }, + { + "id": 89, + "question": "Le premier joueur qui dévoile un de ses secrets et que personne ne sait ", + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 90, + "question": "Jeu des peaux! Triez vous du joueur le plus bronzé au joueur le moins bronzé. Le plus bronzé prend 1 gorgée, le second 2 gorgées, etc.", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 91, + "question": "Plutôt avoir du pouvoir ou de la connaissance ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 92, + "question": "Il est désormais interdit de se tutoyer pendant manches", + "manches": true, + "arret":"Vous pouvez vous enfin vous tutoyer" + + }, + { + "id": 93, + "question": "Vaccin contre le COVID19 : Le DR Raoul à dit que boire un cul sec avait les mêmes effets que le vaccin. Tout le monde bois sont verre cul sec" + }, + { + "id": 94, + "question": "Faites un concours de clash : Rap contenders entre et le perdant ", + "gorger": 3, + "distribution": false, + "recois": true + } + + ] +} diff --git a/app/src/main/assets/questionOLD.json b/app/src/main/assets/questionOLD.json new file mode 100644 index 0000000..0cb1b00 --- /dev/null +++ b/app/src/main/assets/questionOLD.json @@ -0,0 +1,809 @@ +{ + "version": "2", + "questions": [ + { + "id": 1, + "question": "Celles/Ceux qui ont habité dans plus de 3 villes diferentes", + "gorger": 3, + "distribution": true, + "recois": true + + }, + { + "id": 2, + "question": "Ceux qui ont dansé aujourd'hui", + "gorger": 1, + "distribution": true, + "recois": true + }, + { + "id": 3, + "question": "si tu n'as pas ton veritable nom sur insta", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 4, + "question": "si tu a des photos sur insta", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 5, + "question": "Les joueurs de Counter Strike ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 5, + "question": "La dernière personne à avoir vomi en soirée ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 6, + "question": "Toutes celles (ou ceux) qui ont du verni à ongles", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 7, + "question": "Tous les joueurs célibataires", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 8, + "question": "Tous ceux qui ont des lunettes", + "gorger": 2, + "distribution": true, + "recois": true + }, + { + "id": 9, + "question": "Tous ceux qui ont déjà triché à un examen", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 10, + "question": "Le/La plus radin(e)", + "gorger": 4, + "distribution": false, + "recois": true + }, + { + "id": 11, + "question": " a toi de juger : entre et qui stresse le plus pour un rien selon toi? Le perdant ", + "gorger": 5, + "distribution": false, + "recois": true + }, { + "id": 12, + "question": "Le mec qui a le plus gros ventre à bière ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 13, + "question": "Tous ceux qui se sont déjà fait exclure de cours", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 14, + "question": ", donne le nombre d'habitant du/de la ( à 1 000 000 près) Si tu as faux tu bois, sinon tu ", + "gorger": 3, + "distribution": true, + "recois": false, + "variante": ["Tadjikistant", "Monaco", "Belgique", "Suisse", "Allemagne", "Chine", "Inde"] + }, + { + "id": 15, + "question": "Tous ceux qui ont des frères et soeurs", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 16, + "question": " a qui appartient le slogan suivant? ", + "variante": ["Des pâtes oui mais des (panzani)"," Le plaisir pour les petites faims. (Kinder Bueno)","Réveillez le lion qui est en vous. (Cereale lion)","Parce que le monde bouge (CIC)","Ça coule de source ! (Cristaline)", "Pensez différemment (apple)" ], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 17, + "question": "Celles et ceux qui ont eu un Windows phone", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 18, + "question": ", Boire un café fait baisser le taux d'alcool? Si tu as faux ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 19, + "question": "Celles/Ceux qui se sont déjà battus", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 20, + "question": "Celui/Celle qui pèse le plus lourd", + "variante": ["lourd","leger"], + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 21, + "question": "Pour se décoincer, le/la plus ", + "variante": ["timide", "enervé ", "angoissé","aigri"], + "gorger": 2, + "distribution": false, + "recois": true + }, + { + "id": 22, + "question": "Le/La plus ", + "gorger": 3, + "variante": ["jeune","vieille"], + "distribution": false, + "recois": true + }, + { + "id": 23, + "question": "Celles/Ceux qui ont fait des études ", + "gorger": 3, + "variante": ["L","Scientifique", "Bac Professionel", "STMG"], + "distribution": true, + "recois": true + }, + { + "id": 25, + "question": "Celles et ceux qui ont deja joué de maniere recurrente ", + "gorger": 3, + "variante": ["du piano","de la guitare", "du saxophone", "de la batterie"], + "distribution": true, + "recois": true + }, + { + "id": 26, + "question": "Les gens qui se sont masturbés aujourd'hui", + "gorger": 3, + "distribution": true, + "recois": true, + "caliente": true + }, + { + "id": 27, + "question": "Celui ou celle a la meilleure place", + "gorger": 2, + "distribution": false, + "recois": true + }, + { + "id": 28, + "question": "Celles et ceux qui n'ont jamais trompé leur partenaire", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 29, + "question": "Celui/Celle avec les vêtements les plus beaux ", + "gorger": 1, + "distribution": false, + "recois": true + }, + { + "id": 30, + "question": "Celui/Celle qui a les cheveux les plus ", + "gorger": 2, + "variante": ["longs","courts"], + "distribution": true, + "recois": true + }, + { + "id": 31, + "question": "Les végans ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 32, + "question": "La personne la plus maquillé ", + "gorger": 2, + "distribution": true, + "recois": true + }, { + "id": 33, + "question": "Celles/Ceux qui ont déjà appelé leur partenaire par le prénom de leurs ex", + "gorger": 4, + "distribution": false, + "recois": true + }, + { + "id": 34, + "question": "Celles et ceux qui boit de la actuellement", + "gorger": 3, + "distribution": true, + "recois": true, + "variante": ["vodka", "rhum", "tequila", "whisky"] + }, + { + "id": 35, + "question": "Les joueurs qui ont un dans leurs prénom", + "gorger": 3, + "distribution": false, + "recois": true, + "variante": ["a","e","i","o","u","y"] + }, + { + "id": 36, + "question": "Le/La joueur/euse avec le plus gros cul", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 37, + "question": "Celles/Ceux qui ont moins de ans", + "gorger": 3, + "distribution": false, + "recois": true, + "variante": ["21","22","23","24","25","26"] + }, + { + "id": 38, + "question": "Celui/celle avec le plus gros appetit sexuel", + "gorger": 3, + "distribution": false, + "recois": true, + "caliente": true + }, + { + "id": 39, + "question": "Ceux/Celles qui fumes (VapeNation compris)", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 40, + "question": "Celles et ceux qui ont au moins un BAC +", + "gorger": 1, + "distribution": true, + "recois": true, + "variante": [0,1,2,3,4,5] + }, + { + "id": 41, + "question": "Le premier joueur à se lever", + "doubledistribution": true, + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 42, + "question": "Ceux qui n'ont jamais eu l'occasion de faire un strip tease", + "gorger": 3, + "distribution": false, + "recois": true, + "caliente": true + }, + { + "id": 43, + "question": "Le premier joueur à enlever un vêtements", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 44, + "question": "Tous ceux qui ont déjà uriné dans une piscine ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 30, + "question": "Celui/Celle avec le plus de follow sur ", + "gorger": 3, + "distribution": true, + "recois": true, + "variante": ["instagram","facebook","tik-tok"] + }, + { + "id": 31, + "question": "Celui/Celle avec le nom de famille le plus compliqué", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 32, + "question": "Les joueurs qui n'ont pas encore distribué de gorgées", + "gorger": 3, + "distribution": false, + "recois": true + }, { + "id": 33, + "question": "Le premier joueur à donner l'heure", + "doubledistribution": true, + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 34, + "question": "Celles et ceux qui ont déjà dépenser plus de 2000 euros en un achat", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 35, + "question": "La personne la moins courageuse", + "gorger": 1, + "distribution": false, + "recois": true + }, + { + "id": 36, + "question": "Celles/Ceux qui rentre chez eux à la fin de la soirée", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 37, + "question": "Celles et ceux dont le jour d'anniversaire est un nombre ", + "gorger": 3, + "distribution": true, + "recois": true, + "variante": ["impaire","paire"] + }, + { + "id": 38, + "question": "Si tu as un téléphone qui a un prix supperieur d'achat a 1000Euros, tu est riche donc en tant que personne généreuse", + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 39, + "question": "Tous ceux qui ont fait plus de 100km pour venir ici ", + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 40, + "jeux": true, + "question": "Le jeu du revolver: Chaque joueur a maintenant 7 balles, une balle correspondant à une gorgée. Les joueurs ont la capacité de tirer des balles à tout moment du jeu.", + "distribution": false, + "recois": false + }, + { + "id": 41, + "question": "", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 42, + "jeux": true, + "question": " est le vieu/vieille briscard ! Interdiction de montrer tes dents pendant manches", + "manche": true, + "arret": "Tu peux arreter de cacher tes belles dents" + + }, + { + "id": 43, + "jeux": true, + "question": " et liser le premier SMS qui s'affiche quand on tape dans la barre de recherche. le plus marrant", + "gorger": 3, + "variante": ["désolé","caca","bourré","mine","nazi"], + "distribution": true, + "recois": false + }, { + "id": 44, + "jeux": true, + "question": "A tour de role, vous avez exactement 3 secondes pour donner un mot en rapport avec le mots dit precedemment. tu commences en choissisant un mot. Le perdant", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 45, + "jeux": true, + "question": "Le jeu du PIM PAM POUM. Le premier qui perd ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 46, + "jeux": true, + "question": " defie au chifoumi ! Le perdant", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 47, + "jeux": true, + "question": " est dans le ! Tu dois parler au pendant manches ", + "variante": ["passé", "futur"], + "manche": true, + "arret": "Tu est revenu dans le present", + "distribution": false, + "recois": false, + "caliente": false + }, + { + "id": 48, + "question": " tu bois autant de gorgées que tu as d'années d'études après le BAC" + }, + { + "id": 49, + "jeux": true, + "question": " et ferment leurs yeux ! Ils/Elles doivent deviner la couleur des yeux de l'autre. ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 50, + "jeux": true, + "question": " est manchot ! Il/Elle ne peut plus utiliser ses doigts durant manches . Si il s'en sert, il/elle devra boire autant de gorgées qu'il/elle a utilisé de doigts", + "distribution": false, + "arret": "Tu n'es plus manchot", + "recois": false + }, + { + "id": 51, + "jeux": true, + "question": " et , si vous êtes ensemble dans la vraie vie, vous pouvez distribuer 2 gorgées , autrement buvez-les" + + }, + { + "id": 52, + "jeux": true, + "question": " a la tourette ! A chaque fois que tu bois une gorgée, tu dois CRIER une insulte. C'est un stade avancé, ça dure manches", + "manches": true, + "arret": "Tu n'as plus tourette." + + }, + { + "id": 53, + "jeux": true, + "question": ", donne la couleur préférée de si tu te trompes", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 54, + "jeux": true, + "question": " à l'oeil de serpent ! Dès qu'un joueur te regarde dans les yeux, il/elle boit. Si tu es arrivé a faire boire personne avant manches, tu ", + "gorger": 4, + "distribution": false, + "recois": true + }, { + "id": 55, + "jeux": true, + "question": " et se mesurent ! Le/la plus ", + "gorger": 3, + "variante": ["petit","grand"], + "distribution": true, + "recois": true + }, + { + "id": 56, + "jeux": true, + "question": " doit terminer toutes ses phrases par - pendant manches", + "variante": ["C'est clair","han","quoicoubeh"] + }, + { + "id": 57, + "jeux": true, + "question": " et se défient au 'je te tiens, tu me tiens', le premier qui rit sera dechiré, et ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 58, + "jeux": true, + "question": " et n'ont plus le droit d'utiliser leur téléphone pendant manches !", + "manches": "true" + }, + { + "id": 59, + "jeux": true, + "question": " et racontent une anecdote, celui/celle qui sort la plus ", + "variante": ["banale","incroyable","marrante"], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 60, + "jeux": true, + "question": ", Si on te dit Marco? ... Si tu as dis Polo ", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 61, + "jeux": true, + "question": " est l'aigris pendant manches ! Dès que tu souris ou rigoles,", + "gorger": 1, + "manches": true, + "distribution": false, + "arret": "Tu n'es plus aigris!", + "recois": true + }, + { + "id": 62, + "jeux": true, + "question": " fait un geste, le suivant répète et en ajoute un. Le perdant ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 63, + "question": ", et vont désigner quelqu'un qui doit terminer son verre", + "jeux": true + }, + { + "id": 64, + "question": "Récitez l'alphabet en énonçant une lettre à tour de rôle. Si finit son verre avant, cul sec pour tout le monde !", + "jeux": true + }, + { + "id": 65, + "question": "Si arrive a finir son verre en moins de 5 secondes, il/elle ", + "gorger": 6, + "distribution": true, + "recois": false, + "jeux": true + }, + { + "id": 66, + "jeux": true, + "question": " et sont lies, si l'un boit alors l'autre aussi, et ce pendant manches", + "manches": true + }, + { + "id": 67, + "question": " dit un mot, la personne suivante le répète et en ajoute un nouveau, ainsi de suite jusqu'a ce que quelqu'un se trompe. Le perdant boit autant de gorgées qu'il y a eu de personne avant lui", + "jeux": true + }, + { + "id": 68, + "question": " doit choisir un mot que tout le monde devra dire à chaque fois qu'une personne boit. Pendant manches", + "jeux": false, + "manches": true, + "arret": "Plus besoin de dire le mots avant de boire" + }, + { + "id": 69, + "question": "Quand l'heure affichera un multiple de 10 (22h, 22h10 ...) le premier a crier 'merde j'ai oublié mon chat'", + "gorger": 3, + "distribut":false, + "manches": true, + "arret": "Vous avez retrouver le chat!" + }, + { + "id": 70, + "question": "Plutôt ne plus avoir de mains ou de jambes? les perdants ", + "gorger": 3, + "jeux": false, + "distribution": false, + "recois": true + }, + { + "id": 71, + "question": "Vive la poésie ! Nos phrases doivent rimer sous peine d'une gorgée pendant manches", + "manches": true, + "arret": "Vous ne devez plus faire de rime." + }, + { + "id": 72, + "question": "Choisissez le joueur le drôle d'entre vous, ce dernier ", + "variante": ["moins", "plus"], + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 73, + "question": "Les ", + "variante": ["filles","garçons","couples","celibataires"], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 74, + "jeux": true, + "question": "Plutôt avoir un tapis volant, ou un frigo qui se remplit tout seul ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true, + "manches": false + }, + { + "id": 75, + "question": "Plutôt avoir du temps ou de l'argent ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + + }, + { + "id": 76, + "question": "Le premier joueur qui en embrasse un autre sur la bouche", + "gorger": 5, + "distribution": true, + "recois": false, + "caliente": true + }, + { + "id": 77, + "question": "Plutôt série ou film ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 78, + "question": "Plutôt jeux-videos ou livre ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + + { + "id": 79, + "question": "Plutôt anime ou jeux-videos ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 80, + "question": "Elisez le plus d'entre vous, ce dernier ", + "variante": ["con", "intelligent", "beau", "gentil","dragueur","timide"], + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 81, + "question": "Le premier qui donne un film de ", + "gorger": 3, + "distribution": true, + "recois": false, + "variante": ["Christopher Nolan","James Cameron","Tim Burton","Quentin tarantino","Steven Spielberg"] + }, + { + "id": 82, + "question": "Le premier qui donne un film avec ", + "variante": ["Christian Clavier","Morgan freeman","Brad Pitt", "Jean Reno","Marion Cotillard"], + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 83, + "question": "La première personne qui désigne le/la plus ", + "gorger": 3, + "distribution": true, + "recois": false, + "variante": ["jeune", "vieille"] + }, + { + "id": 84, + "question": "Plutôt avoir des connaissances illimitées ou diriger le monde ? Votez tous en même temps. La minorité", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 85, + "question": "Plutôt n'avoir aucun ami ou ne plus pouvoir utiliser d'appareil électronique ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 86, + "question": "Plutot vaincre le patrikaka ou la polution dans le monde? Votez tous en meme temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 87, + "question": "Jeu du LUTIN : Pendant manches. Vous devez enlever le lutin de votre verre pour pouvoir boire et le remettre ensuite sinon vous devait reboire", + "gorger": 3, + "distribution": false, + "recois": false, + "manches": true, + "arret": "Le Lutin est parti. Vous pouvez boire normalement" + }, + { + "id": 88, + "question": "Le premier joueur à ramener un objet (pas de vêtements) ", + "gorger": 3, + "distribution": true, + "variante": ["rouge","vert","bleu","jaune"], + "recois": false, + "manches": false + }, + { + "id": 89, + "question": "Le premier joueur qui dévoile un de ses secrets et que personne ne sait ", + "gorger": 3, + "distribution": true, + "recois": false + }, + { + "id": 90, + "question": "Jeu des peaux! Triez vous du joueur le plus bronzé au joueur le moins bronzé. Le plus bronzé prend 1 gorgée, le second 2 gorgées, etc.", + "gorger": 3, + "distribution": true, + "recois": true + }, + { + "id": 91, + "question": "Plutôt avoir du pouvoir ou de la connaissance ? Votez tous en même temps. La minorité ", + "gorger": 3, + "distribution": false, + "recois": true + }, + { + "id": 92, + "question": "Il est désormais interdit de se tutoyer pendant manches", + "manches": true, + "arret":"Vous pouvez vous tutoyer" + + }, + { + "id": 93, + "question": "Vaccin contre le COVID19 : Le DR Raoul à dit que boire un cul sec avait les mêmes effets que le vaccin. Tout le monde bois sont verre cul sec" + }, + { + "id": 94, + "question": "Faites un concours de clash : Rap contenders entre et le perdant ", + "gorger": 3, + "distribution": false, + "recois": true + } + ] +} diff --git a/app/src/main/java/com/example/boidelov3/ChatGPTTask.java b/app/src/main/java/com/example/boidelov3/ChatGPTTask.java new file mode 100644 index 0000000..e71b9d5 --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/ChatGPTTask.java @@ -0,0 +1,85 @@ +package com.example.boidelov3; + +//public class ChatGPTTask extends AsyncTask { +//// private Jeux jeuxActivity; +//// private String keyOpenai; +//// +//// public ChatGPTTask(Jeux jeuxActivity, String keyOpenai) { +//// this.jeuxActivity = jeuxActivity; +//// this.keyOpenai = keyOpenai; +//// } +//// +//// +//// @Override +//// protected String doInBackground(Void... voids) { +//// String url = "https://api.openai.com/v1/chat/completions"; +//// String apiKey = keyOpenai; +//// System.out.println("apiKey de ChatGPTTASK.java: " + apiKey); +//// String model = "gpt-3.5-turbo"; +//// +//// String prompt = "Tu es une IA française qui génère des questions ainsi que la categories de la question. Voici des exemples :" + +//// "Celles/Ceux qui ont habité dans plus de 3 villes diferentes';'La vie" + +//// "Ceux qui ont dansé aujourd'hui' ; 'Soirée'" + +//// "'Pour se décoincer, le/la plus timide' ; 'Caractère'" + +//// "'Celles et ceux qui ont déjà dépenser plus de 2000 euros en un achat' ; 'Dépense'" + +//// "'Le/La plus radin(e)' ; 'Caractère'"; +// +//// try { +//// URL obj = new URL(url); +//// HttpURLConnection connection = (HttpURLConnection) obj.openConnection(); +//// connection.setRequestMethod("POST"); +//// connection.setRequestProperty("Authorization", "Bearer " + apiKey); +//// connection.setRequestProperty("Content-Type", "application/json"); +//// +//// // The request body +//// String body = "{\"model\": \"" + model + "\", \"messages\": [{\"role\": \"user\", \"content\": \"" + prompt + "\"}]}"; +//// System.out.println("body: " + body); +//// connection.setDoOutput(true); +//// OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); +//// writer.write(body); +//// writer.flush(); +//// writer.close(); +//// +//// // Response from ChatGPT +//// BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); +//// String line; +//// +//// StringBuffer response = new StringBuffer(); +//// +//// while ((line = br.readLine()) != null) { +//// response.append(line); +//// } +//// br.close(); +//// +//// // calls the method to extract the message. +//// return extractMessageFromJSONResponse(response.toString()); +//// +//// } catch (IOException e) { +//// System.out.println("Il y a eu une erreur" + e); +//// throw new RuntimeException(e); +//// +//// } +//// } +//// +//// public String extractMessageFromJSONResponse(String response) { +//// int start = response.indexOf("content") + 11; +//// int end = response.indexOf("\"", start); +//// String extractedMessage = response.substring(start, end); +//// System.out.println("extractedMessage: " + extractedMessage); +//// return extractedMessage; +//// } +//// +//// @Override +//// protected void onPostExecute(String result) { +//// if (result != null) { +//// // Handle the extracted message here +//// jeuxActivity.handleExtractedMessage(result); +//// } else { +//// Toast.makeText(jeuxActivity.getApplicationContext(), "Échec de la communication avec l'API !", Toast.LENGTH_SHORT).show(); +//// jeuxActivity.navigateToJeuxParametres(); +//// } +//// } +// +// +// return url; +// }} \ No newline at end of file diff --git a/app/src/main/java/com/example/boidelov3/DatabaseConnection.java b/app/src/main/java/com/example/boidelov3/DatabaseConnection.java new file mode 100644 index 0000000..4e3db86 --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/DatabaseConnection.java @@ -0,0 +1,40 @@ +package com.example.boidelov3; + +import android.os.AsyncTask; + +import com.impossibl.postgres.api.jdbc.PGConnection; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DatabaseConnection extends AsyncTask { + private static final String DB_URL = "jdbc:postgresql://82.65.214.214:5432/boidelo"; + private static final String USER = "Tux2543"; + private static final String PASSWORD = "6wa*teCnuxsG#grAc5HzC!Rh%#@c&"; + + @Override + protected PGConnection doInBackground(Void... params) { + PGConnection connection = null; + try { + // Code de connexion à la base de données PostgreSQL + String url = DB_URL; + String username = USER; + String password = PASSWORD; + connection = (PGConnection) DriverManager.getConnection(url, username, password); + } catch (SQLException e) { + e.printStackTrace(); + } + return connection; + } + + + protected void onPostExecute(Connection connection) { + // Traitez le résultat de la connexion ici + if (connection != null) { + // Connexion réussie + } else { + // Échec de la connexion + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/boidelov3/Jeux.java b/app/src/main/java/com/example/boidelov3/Jeux.java new file mode 100644 index 0000000..00258f8 --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/Jeux.java @@ -0,0 +1,261 @@ +package com.example.boidelov3; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Bundle; +import android.text.Html; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.google.gson.Gson; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import java.util.Set; + +public class Jeux extends AppCompatActivity { + private TextView questionTextView; + private Button suivantButton; + private Questions questions; + + private List toutlesjoueurs; + private int nombreQuestions; + private int ajoutGorgees; + boolean openAI; + int ratiOpenai; + String keyOpenai, phraseGPTString; + + private List questionsAvecManches = new ArrayList<>(); + + + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_jeux); + + // Récupération des données passées par l'activité précédente + toutlesjoueurs = getIntent().getStringArrayListExtra("EXTRA_LIST_JOUEUR"); + nombreQuestions = getIntent().getIntExtra("EXTRA_NOMBRE_QUESTIONS", 50); + ajoutGorgees = getIntent().getIntExtra("EXTRA_AJOUT_GORGEE", 0); + openAI = getIntent().getBooleanExtra("EXTRA_OPENAI", false); + ratiOpenai = getIntent().getIntExtra("EXTRA_RATIO_OPENAI", 0); + keyOpenai = getIntent().getStringExtra("EXTRA_KEY_OPENAI"); + + + questionTextView = findViewById(R.id.textView1); + suivantButton = findViewById(R.id.button); + + // Lecture du fichier JSON et conversion en objet Questions + try { + InputStream is = getAssets().open("question.json"); + int size = is.available(); + byte[] buffer = new byte[size]; + is.read(buffer); + is.close(); + String json = new String(buffer, "UTF-8"); + + Gson gson = new Gson(); + questions = gson.fromJson(json, Questions.class); + } catch (IOException ex) { + ex.printStackTrace(); + } + + // Affichage d'une question au lancement de l'activité + updateQuestion(); + + suivantButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + updateQuestion(); + } + }); + } + + // Méthode pour mettre à jour la question affichée + private void updateQuestion() { + + // Mettre à jour le compte des manches pour toutes les questions avec manches + Iterator iterator = questionsAvecManches.iterator(); + while (iterator.hasNext()) { + Question mancheQuestion = iterator.next(); + mancheQuestion.setManchesRestantes(mancheQuestion.getManchesRestantes() - 1); + System.out.println("Nombre de manches restantes : " + mancheQuestion.getManchesRestantes() + " pour l'arret : " + mancheQuestion.getArretMessageManche()); + + + if (mancheQuestion.getManchesRestantes() <= 0) { + // Afficher le message d'arrêt pour cette question + questionTextView.setText(mancheQuestion.getArretMessageManche()); + iterator.remove(); // Retirer la question de la liste des manches actives + //fond d'ecran en jaune + View view = this.getWindow().getDecorView(); + view.setBackgroundColor (0xFFFFFF00); + return; // Arrêter la mise à jour ici pour afficher le message d'arrêt + } + } + Question question = getRandomQuestion(); + if (question != null) { + questionTextView.setText(Html.fromHtml(question.getQuestion(), Html.FROM_HTML_MODE_LEGACY)); + } else { + questionTextView.setText("Toutes les questions ont été posées."); + suivantButton.setEnabled(false); + } + } + + // Méthode pour naviguer vers l'activité JeuxParametres en cas d'échec de la communication avec l'API + public void navigateToJeuxParametres() { + Intent intent = new Intent(Jeux.this, JeuxParametres.class); + Toast.makeText(getApplicationContext(), "Échec de la communication avec l'API !", Toast.LENGTH_SHORT).show(); + startActivity(intent); + } + + // Méthode pour sélectionner trois joueurs aléatoires différents + public List TroisJoueurAleatoire(List toutlesjoueurs) { + Set setJoueur = new HashSet<>(); + Random rand = new Random(); + + while (setJoueur.size() < 3) { + setJoueur.add(toutlesjoueurs.get(rand.nextInt(toutlesjoueurs.size()))); + } + + return new ArrayList<>(setJoueur); + } + + + private String getArretById(int id) { + for (Question question : questions.getQuestions()) { + if (question.getId() == id) { + return question.getArret(); + } + } + return null; // Retourne null si aucun objet Question avec l'ID donné n'est trouvé + } + + // Méthode pour obtenir une question aléatoire qui n'a pas encore été posée + private Question getRandomQuestion() { + if (questions != null) { + + SharedPreferences prefs = getSharedPreferences("app", Context.MODE_PRIVATE); + Set askedQuestions = prefs.getStringSet("askedQuestions", new HashSet()); + + List unaskedQuestions = new ArrayList<>(); + for (Question question : questions.getQuestions()) { + if (!askedQuestions.contains(String.valueOf(question.getId()))) { + unaskedQuestions.add(question); + } + } + + if (unaskedQuestions.isEmpty()) { + questionTextView.setText("Toutes les questions ont été posées."); + //remplacement du fond d'écran en Rouge + View view = this.getWindow().getDecorView(); + view.setBackgroundColor (0xFFFF0000); + + suivantButton.setEnabled(false); + return null; // Aucune question n'est disponible + } + + Random random = new Random(); + Question question = unaskedQuestions.get(random.nextInt(unaskedQuestions.size())); + askedQuestions.add(String.valueOf(question.getId())); + SharedPreferences.Editor editor = prefs.edit(); + editor.putStringSet("askedQuestions", askedQuestions); + editor.apply(); + //fond d'ecran en blanc pour la question suivante + View view = this.getWindow().getDecorView(); + view.setBackgroundColor (0xFFFFFFFF); + + String questionText = question.getQuestion(); + + // Choix d'une variante aléatoire si elle existe + if (question.getVariante() != null && !question.getVariante().isEmpty()) { + String chosenVariante = question.getVariante().get(random.nextInt(question.getVariante().size())); + questionText = questionText.replace("", chosenVariante); + } + + // Définir le nombre de manches + if (questionText.contains("")) { + //fond d'ecran en bleu pour la question suivante + View view1 = this.getWindow().getDecorView(); + view1.setBackgroundColor (0xFF0000FF); + int nbaleatoiremanches = random.nextInt(10) + 5; + questionText = questionText.replace("", String.valueOf(nbaleatoiremanches)); + question.setManchesRestantes(nbaleatoiremanches); + //System.out.println("Nombre de manches : " + nbaleatoiremanches); + + //System.out.println("Message d'arrêt pour la question : " + question.getArretMessage()); + String stopid = getArretById(question.getId()); + //System.out.println("Message d'arrêt : " + stopid); + //System.out.println("affiche l'id de la question : " + question.getId()); + //enregistrement du message d'arrêt pour la question + + + question.setArretMessageManche("Fin de défi! \n"+ stopid); // message d'arret pour la question avec manches + questionsAvecManches.add(question); + } + // Définir les joueurs + boolean isJoueurs1 = questionText.contains(""); + boolean isJoueurs2 = questionText.contains(""); + boolean isJoueurs3 = questionText.contains(""); + List aleatoirejoueurs = TroisJoueurAleatoire(toutlesjoueurs); + if (isJoueurs1 && isJoueurs2 && isJoueurs3) { + //fond d'ecran en vert foncé pour la question suivante + View view2 = this.getWindow().getDecorView(); + view2.setBackgroundColor (Color.argb(255, 0, 100, 0)); + questionText = questionText.replace("", String.valueOf(aleatoirejoueurs.get(0))); + questionText = questionText.replace("", String.valueOf(aleatoirejoueurs.get(1))); + questionText = questionText.replace("", String.valueOf(aleatoirejoueurs.get(2))); + } else if (isJoueurs1 && isJoueurs2) { + //fond d'ecran en vert pour la question suivante + View view2 = this.getWindow().getDecorView(); + view2.setBackgroundColor (Color.argb(255, 0, 255, 0)); + questionText = questionText.replace("", String.valueOf(aleatoirejoueurs.get(0))); + questionText = questionText.replace("", String.valueOf(aleatoirejoueurs.get(1))); + } else if (isJoueurs1) { + //fond d'ecran en vert clair pour la question suivante + View view2 = this.getWindow().getDecorView(); + view2.setBackgroundColor (Color.argb(255, 144, 238, 144)); + questionText = questionText.replace("", String.valueOf(aleatoirejoueurs.get(0))); + } + + // Ajouter les gorgés + if (question.isDistribution() || question.isRecois()) { + if (question.isRecois() && question.isDistribution()) { + boolean rand = random.nextBoolean(); + if (rand) { + questionText = questionText.concat(" bois"); + } else { + questionText = questionText.concat(" distribue"); + } + } else if (question.isRecois()) { + questionText = questionText.concat(" bois"); + } else if (question.isDistribution()) { + //mot en bold pour le concat "distribue" + + questionText = questionText.concat(" distribue"); + } + + questionText = questionText.concat(" " + (question.getGorger() + ajoutGorgees) + " gorger."); + } + + question.setQuestion(questionText); + //System.out.println(questionText); + return question; + } + + + return null; + } +} diff --git a/app/src/main/java/com/example/boidelov3/JeuxParametres.java b/app/src/main/java/com/example/boidelov3/JeuxParametres.java new file mode 100644 index 0000000..89840f5 --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/JeuxParametres.java @@ -0,0 +1,324 @@ +package com.example.boidelov3; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Build; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.SeekBar; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +public class JeuxParametres extends AppCompatActivity { + + private SeekBar seekBar1, seekBar2, seekBar3; + private TextView textView1, textView2, textView5, textViewRatioGen; + private CheckBox checkBox, checkBoxGPT; + private EditText editText, editTextKeyGPT; + private String keyGPT; + private int nbQuestions; + + private List toutlesjoueurs; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + toutlesjoueurs = getIntent().getStringArrayListExtra("EXTRA_LIST_JOUEUR"); + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_jeux_parametres); + + // Initialisation des vues + seekBar1 = findViewById(R.id.seekBar1); + seekBar2 = findViewById(R.id.seekBar2); + seekBar3 = findViewById(R.id.seekBar3); + textView1 = findViewById(R.id.textView1); + textView2 = findViewById(R.id.textView2); + textView5 = findViewById(R.id.textView5); + editTextKeyGPT = findViewById(R.id.editTextGPT); + textViewRatioGen = findViewById(R.id.textViewRatioGen); + + Button buttonTestApi = findViewById(R.id.ButtonTestApi); + + // Configuration de la seekBar1 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + seekBar1.setMin(20); + } + seekBar1.setMax(150); + seekBar1.setProgress(50); + + // Configuration de la seekBar2 + seekBar2.setMax(20); + seekBar2.setProgress(0); + + // Configuration de la seekBar3 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + seekBar2.setMin(0); + seekBar3.setMin(1); + } + seekBar3.setMax(15); + seekBar3.setProgress(8); + + // Configuration des listeners pour les seekBars + seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + // Ajustement de la valeur au multiple de 10 le plus proche + int adjustedProgress = Math.round(progress / 10) * 10; + seekBar.setProgress(adjustedProgress); + textView1.setText("Nombre de questions avant la fin de partie : " + adjustedProgress); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + }); + + seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + // Mise à jour du textView2 en fonction de la valeur de la seekBar2 + textView2.setText("Ajout de gorgées : " + progress); + // Mise à jour du textView5 en fonction de la valeur de la seekBar2 + switch (progress) { + case 0: + textView5.setText("Palier : Grosse merde"); + break; + case 2: + textView5.setText("Palier : Petite merde"); + break; + case 4: + textView5.setText("Palier : Petit joueur"); + break; + case 6: + textView5.setText("Palier : Un p'tit verre ?!"); + break; + case 8: + textView5.setText("Palier : ça commence à aller"); + break; + case 10: + textView5.setText("Palier : Alcoolique"); + break; + case 12: + textView5.setText("Palier : COMA ETHYLIX"); + break; + case 13: + textView5.setText("Palier : APÉROOOOO !!"); + break; + case 14: + textView5.setText("Palier : LA J'SUIS BIENG"); + break; + case 15: + textView5.setText("Palier : J'VOIS PLUS RIENG"); + break; + case 17: + textView5.setText("Palier : J'AI PLUS DE VERRES"); + break; + case 18 : + textView5.setText("Palier : Soirée Murge"); + break; + case 19: + textView5.setText("Palier : Soirée Pétée"); + break; + case 20: + textView5.setText("Palier : L'ENDER DRAGON"); + break; + } + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + }); + + // Configuration du checkBox // Q : IL sert a quoi ? + // R : Il sert à activer/désactiver les vues en dessous + + checkBox = findViewById(R.id.checkBoxGPT); + checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + // Activation/désactivation des vues en fonction de l'état du checkBox + editTextKeyGPT.setEnabled(isChecked); + //editText.setEnabled(isChecked); + textViewRatioGen.setEnabled(isChecked); + seekBar3.setEnabled(isChecked); + buttonTestApi.setEnabled(isChecked); + } + }); + + // Configuration de la seekBar3 + seekBar3.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar3, int progress, boolean fromUser) { + textViewRatioGen.setText("Ratio BDD/OPENAI : 1/" + progress); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar3) { + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar3) { + } + }); + + // Partie OpenAI : enregistrement de la clé en dur. + checkBoxGPT = findViewById(R.id.checkBoxGPT); + // Récupérer une instance des SharedPreferences + SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE); + final SharedPreferences.Editor editor = sharedPreferences.edit(); + // Récupérer l'EditText + final EditText editText = findViewById(R.id.editTextGPT); + // Récupérer la valeur enregistrée dans les SharedPreferences + String apiKey = editText.getText().toString(); + + // Récupérer la valeur enregistrée dans les SharedPreferences + String savedText = sharedPreferences.getString("savedText", ""); + editText.setText(savedText); + + // Enregistrer le contenu de l'EditText lorsque l'utilisateur modifie le texte + editText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + // Enregistrer le texte dans les SharedPreferences + editor.putString("savedText", editText.getText().toString()); + editor.apply(); + } + }); + } + + public void onClickButtonTestAPI(View view) { + + String apiKey = editTextKeyGPT.getText().toString(); + // Créer un client OkHttpClient pour effectuer la requête + OkHttpClient client = new OkHttpClient(); + + // Construire la requête d'essai vers l'API + Request request = new Request.Builder() + .url("https://api.openai.com/v1/engines/davinci") // Endpoint d'essai, vous pouvez le modifier selon vos besoins + .header("Authorization", "Bearer " + apiKey) // Ajouter la clé API dans l'en-tête de la requête + .build(); + + // Exécuter la requête de test + client.newCall(request).enqueue(new Callback() { + @Override + public void onFailure(@NonNull Call call, IOException e) { + // Gérer les erreurs de requête + e.printStackTrace(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getApplicationContext(), "Échec de la communication avec l'API !", Toast.LENGTH_SHORT).show(); + } + }); + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + // Vérifier le code de réponse de la requête + if (response.isSuccessful()) { + // La clé API est valide et l'API a répondu avec succès + // Vous pouvez effectuer d'autres opérations ici + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getApplicationContext(), "Communication avec l'API réussie !", Toast.LENGTH_SHORT).show(); + } + }); + } else { + // La clé API est invalide ou il y a eu une erreur de communication avec l'API + System.out.println("Échec de la communication avec l'API !"); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getApplicationContext(), "Échec de la communication avec l'API !", Toast.LENGTH_SHORT).show(); + } + }); + } + response.close(); + } + }); + } + + public void onClickButtonStart(View view) { + // Récupérer les paramètres de la partie + int nombreQuestions = seekBar1.getProgress(); + int ajoutGorgees = seekBar2.getProgress(); + int ratioBddOpenAI = seekBar3.getProgress(); + checkBoxGPT = findViewById(R.id.checkBoxGPT); + boolean openAI = checkBoxGPT.isChecked(); + + toutlesjoueurs = getIntent().getStringArrayListExtra("EXTRA_LIST_JOUEUR"); + // Récupérer les joueurs (vous devrez définir comment vous les récupérez) + SharedPreferences sharedPreferences = getSharedPreferences("Joueurs", Context.MODE_PRIVATE); + ArrayList joueurs = new ArrayList<>(); + + for (int i = 1; i <= 3; i++) { + String joueur = sharedPreferences.getString("J" + i, ""); + if (!joueur.isEmpty()) { + joueurs.add(joueur); + } + } + + // Récupérer les joueurs supplémentaires en utilisant une boucle + int i = 4; + String nomJoueur = sharedPreferences.getString("J" + i, ""); + while (!nomJoueur.isEmpty()) { + joueurs.add(nomJoueur); + i++; + nomJoueur = sharedPreferences.getString("J" + i, ""); + } + + // Créer une instance de la classe Jeux avec les paramètres récupérés + Jeux jeux = new Jeux(); + + // Lancer l'activité Jeux avec les paramètres + Intent intent = new Intent(this, Jeux.class); + intent.putExtra("EXTRA_NOMBRE_QUESTIONS", nombreQuestions); + intent.putExtra("EXTRA_AJOUT_GORGEE", ajoutGorgees); + intent.putExtra("EXTRA_RATIO_OPENAI", ratioBddOpenAI); + intent.putExtra("EXTRA_OPENAI", openAI); + final EditText editText = findViewById(R.id.editTextGPT); + intent.putExtra("EXTRA_KEY_OPENAI",editText.getText().toString() ); + + toutlesjoueurs = getIntent().getStringArrayListExtra("EXTRA_LIST_JOUEUR"); + intent.putStringArrayListExtra("EXTRA_LIST_JOUEUR", (ArrayList) toutlesjoueurs); + startActivity(intent); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/boidelov3/Jeuxold.java b/app/src/main/java/com/example/boidelov3/Jeuxold.java new file mode 100644 index 0000000..3050b05 --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/Jeuxold.java @@ -0,0 +1,350 @@ +package com.example.boidelov3; + +import android.content.Intent; +import android.content.res.Configuration; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + + +public class Jeuxold extends AppCompatActivity { + private List toutlesjoueurs, phraseGPT; + private int nombreQuestions; + private int ajoutGorgees; + boolean openAI; + int ratiOpenai; + String keyOpenai, phraseGPTString; + + + public Jeuxold() { + //System.out.println("Je suis dans le constructeur jeux"); + } + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_jeux); + //Recuperation des valeurs des activités précédentes + toutlesjoueurs = getIntent().getStringArrayListExtra("EXTRA_LIST_JOUEUR"); + nombreQuestions = getIntent().getIntExtra("EXTRA_NOMBRE_QUESTIONS", 75); + ajoutGorgees = getIntent().getIntExtra("EXTRA_AJOUT_GORGEE", 0); + openAI = getIntent().getBooleanExtra("EXTRA_OPENAI", false); + ratiOpenai = getIntent().getIntExtra("EXTRA_RATIO_OPENAI", 0); + keyOpenai = getIntent().getStringExtra("EXTRA_KEY_OPENAI"); + + + + System.out.println("ACTJeux all player : " + toutlesjoueurs); + System.out.println("ACTJeux nombre de questions : " + nombreQuestions); + System.out.println("ACTJeux ajout de gorgées : " + ajoutGorgees); + System.out.println("ACTJeux openAI : " + openAI); + System.out.println("ACTJeux ratio openAI : " + ratiOpenai); + System.out.println("ACTJeux key openAI : " + keyOpenai); + + + + + + //Parti OpenAI ; keyOpenai ; ratiOpenai, openAI + //new DatabaseConnection().execute(); + +// if(openAI) { +// ChatGPTTask chatGPTTask = new ChatGPTTask( this, keyOpenai); +// chatGPTTask.execute(); +// +// } + + //Phrase avec nom ou pas? +/* if(JoueurOuPas()){ + PhraseAvecNom(toutlesjoueurs); + }else{ + PhraseSansNom(); + } + }*/ + } + + + public void handleExtractedMessage(String phraseGPTString) { + // Traitez la réponse extraite ici + System.out.println(phraseGPTString); + // Par exemple, affichez-la dans une TextView ou effectuez une action en fonction de la réponse +} + + public void navigateToJeuxParametres() { + Intent intent = new Intent(Jeuxold.this, JeuxParametres.class); + Toast.makeText(getApplicationContext(), "Échec de la communication avec l'API !", Toast.LENGTH_SHORT).show(); + startActivity(intent); + } + + /*public void PhraseAvecNom(List toutlesjoueurs){ + //System.out.println("Je suis dans phrase avec pseudo"); + List phraseAvecNom = new ArrayList(); + List aleatoirejoueurs = TroisJoueurAleatoire(toutlesjoueurs); + phraseAvecNom.add(ChoixJoueurAleatoire(toutlesjoueurs) + " dois boire " + Gorgeesaleatoire(2, 4)+ " Gorgées"); + phraseAvecNom.add(ChoixJoueurAleatoire((toutlesjoueurs))+ " est le vieux briscard ! Interdiction de montrer tes dents pendant 5 manches"); + phraseAvecNom.add(aleatoirejoueurs.get(0) + " et "+ aleatoirejoueurs.get(1) +" liser le premier SMS qui s'affiche quand on tape désolé dans la barre de recherche. Refusez pour 5 gorgées"); + phraseAvecNom.add( "A tour de role, vous avez exactement 3 secondes pour donner un mot en rapport avec le mots dit precedemment. Le joueur qui perd boit "+ Gorgeesaleatoire(2, 4) + " Gorgées! "+ aleatoirejoueurs.get(2)+" tu commences en choissisant un mot."); + phraseAvecNom.add(aleatoirejoueurs.get(0)+ " defie "+ aleatoirejoueurs.get(1) + " au chifoumi ! Le joueur qui gagne distribue 5 Gorgées"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+ " a toi de juger : entre "+aleatoirejoueurs.get(1)+ " et "+ aleatoirejoueurs.get(2) + " qui stresse le plus pour un rien selon toi? Cette personne se detendra en buvant " + Gorgeesaleatoire(3, 5 ) + " Gorgées"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" est dans le futur ! Tu dois parler au futur pendant 4 tours Une gorgées a chaque manque."); + phraseAvecNom.add("Les joueurs de Counter Strike peuvent distribuer" + GorgeesaleatoireAmeliorer(1, 4)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" tu bois autant de gorgées que tu as d'années d'études après le BAC"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" et "+aleatoirejoueurs.get(1)+" ferment leurs yeux ! Ils/Elles doivent deviner la couleur des yeux de l'autre. Si ils/elles se trompent, c'est "+GorgeesaleatoireAmeliorer(2, 4)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" est manchot ! Il/Elle ne peut plus utiliser ses doigts durant 3 tours . Si il/elle s'en sert, il/elle devra boire autant de gorgées qu'il/elle a utilisé de doigts"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" et "+ aleatoirejoueurs.get(1)+" , si vous êtes ensemble dans la vraie vie, vous pouvez distribuer 2 gorgées , autrement buvez-les"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", donne le nombre d'habitant du Tadjikistant ( à 1 000 000 près) ou boit "+GorgeesaleatoireAmeliorer(2, 4)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" a la tourette ! A chaque fois que tu bois une gorgée, tu dois CRIER une insulte. C'est un stade avancé, ça dure 3 tours"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", donne la couleur préférée de "+aleatoirejoueurs.get(1)+" si tu te trompes, c'est 2 gorgées"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" à l'oeil de serpent pendant 5 tours ! Dès qu'un joueur te regarde dans les yeux, il/elle boit. Si personne ne t'as regardé tu bois"+GorgeesaleatoireAmeliorer(5, 9)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" et "+ aleatoirejoueurs.get(1)+"se mesurent ! Le plus petit peut bois"+GorgeesaleatoireAmeliorer(3, 5)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" doit terminer toutes ses phrases par - C'est clair pendant 7 tours"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" distribue"+GorgeesaleatoireAmeliorer(2,5)+" à la personne que tu trouves la mieux foutue"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" distribue"+GorgeesaleatoireAmeliorer(2,5)+" à qui tu veux."); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" et "+aleatoirejoueurs.get(1)+" se défient au 'je te tiens, tu me tiens', le premier qui rit sera une tapette, et devra boire"+GorgeesaleatoireAmeliorer(4,6)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" et "+aleatoirejoueurs.get(1)+"n'ont plus le droit d'utiliser leur téléphone jusqu'à la fin du jeu ! A chaque manque c'est"+GorgeesaleatoireAmeliorer(1,3)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" et "+aleatoirejoueurs.get(1)+ "racontent une anecdote, celui/celle qui sort la plus banale boit "+GorgeesaleatoireAmeliorer(3, 6)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", pour"+GorgeesaleatoireAmeliorer(2,4)+", a qui est ce slogan? Y a pas plus fort. (Vigor)"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", Vrai ou faux? L'eau est bleu car elle reflète le ciel? (Non) Si tu as repondu faux tu devras boire : "+GorgeesaleatoireAmeliorer(2,4)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", Si on te dit Marco? ... Si tu as dis Polo tu bois "+GorgeesaleatoireAmeliorer(1,3)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", Boire un café fait baisser le taux d'alcool? "+GorgeesaleatoireAmeliorer(5, 8)+"en jeu (FAUX)"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" est l'aigris pendant 5tours ! Dès que tu souris ou rigoles, tu bois "+GorgeesaleatoireAmeliorer(2,3)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" fait un geste, le suivant répète et en ajoute un. Le perdant boit"+GorgeesaleatoireAmeliorer(3,5)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", "+aleatoirejoueurs.get(2)+" et "+aleatoirejoueurs.get(1)+" vont désigner quelqu'un qui doit terminer son verre "); + phraseAvecNom.add("Récitez l'alphabet en énonçant une lettre à tour de rôle. Si "+aleatoirejoueurs.get(0)+" finit son verre avant, cul sec pour tout le monde !"); + phraseAvecNom.add("Si"+aleatoirejoueurs.get(0)+" arrive a finir son verre en moins de 5 secondes, il/elle peut distribuer"+ GorgeesaleatoireAmeliorer(5, 8)); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" et "+ aleatoirejoueurs.get(1)+"sont lies, si l'un boit alors l'autre aussi, et ce pendant 5 tours"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+", "+aleatoirejoueurs.get(2)+" et "+ aleatoirejoueurs.get(1)+"sont lies, si l'un boit alors les autres aussi, et ce pendant 5 tours"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" dit un mot, la personne suivante le répète et en ajoute un nouveau, ainsi de suite jusqu'a ce que quelqu'un se trompe. Le perdant boit autant de gorgées qu'il y a eu de personne avant lui"); + phraseAvecNom.add(aleatoirejoueurs.get(0)+" doit choisir un mot que tout le monde devra dire à chaque fois qu'une personne boit."); + //phraseAvecNom.add(aleatoirejoueurs.get(0)+""); + //phraseAvecNom.add(aleatoirejoueurs.get(0)+""); + //phraseAvecNom.add(aleatoirejoueurs.get(0)+""); + //Affichage : + TextView textView1 = (TextView) findViewById(R.id.textView1); + textView1.setText(Nbaleatoirelist(phraseAvecNom)); + } + public void PhraseSansNom(){ + //System.out.println("Je suis dans phrase sans pseudo"); + List phraseSansNom = new ArrayList(); + //Ajout de defis + phraseSansNom.add("Tout le monde boit "+ Gorgeesaleatoire(1, 2)+" gorgée(s)"); + phraseSansNom.add("Quand l'heure affichera un multiple de 10 (22h, 22h10 ...) le premier a crier \"merde j'ai oublié mon chat\" distribura " + Gorgeesaleatoire(10, 12)+ " Gorgées"); + phraseSansNom.add("Ceux qui ont dansé aujourd'hui boivent 4 gorgées"); + phraseSansNom.add("Bois "+ Gorgeesaleatoire(2, 6)+ " Gorgées si tu n'as pas ton veritable nom sur insta"); + phraseSansNom.add("Bois "+ Gorgeesaleatoire(2, 3)+ " Gorgées si tu a des photos sur insta."); + phraseSansNom.add("Plutôt ne plus avoir de mains ou de jambes? les perdants boivent "+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Celles/Ceux qui ont habité dans plus de 3 villes boivent "+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Vive la poésie ! Nos phrases doivent rimer sous peine d'une gorgée"); + phraseSansNom.add("Elisez le joueur le moins drôle d'entre vous, ce dernier boit" + GorgeesaleatoireAmeliorer(1,4 )); + phraseSansNom.add("Elisez le joueur le plus drôle d'entre vous, ce dernier distribue" + GorgeesaleatoireAmeliorer(1,4 )); + phraseSansNom.add("La dernière personne à avoir vomi en soirée distribue" + GorgeesaleatoireAmeliorer(2,4)); + phraseSansNom.add("Les filles peuvent distribuer"+ GorgeesaleatoireAmeliorer(1, 2)); + phraseSansNom.add("Les garçons peuvent distribuer"+ GorgeesaleatoireAmeliorer(1, 2)); + phraseSansNom.add("Toutes celles (ou ceux) qui ont du verni à ongles boivent"+GorgeesaleatoireAmeliorer(1,2)); + phraseSansNom.add("Tous les joueurs célibataires boivent"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Tous ceux qui ont des lunettes boivent"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Le premier joueur qui arrive à mettre son doigt dans le nez d'un autre joueur peut distribuer"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Tous ceux qui ont déjà triché à un examen boivent "+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Plutôt avoir un tapis volant, ou un frigo qui se remplit tout seul ? Votez tous en même temps. La minorité boit "+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Les couples trinquer ensemble "+ GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Le/La plus radin(e) boit"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Le mec qui a le plus gros ventre à bière boit"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Tous ceux qui se sont déjà fait exclure de cours boivent"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Tous ceux qui ont des frères et soeurs boivent"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Celles et ceux qui ont un Windows phone peuvent distribuer"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Celles/Ceux qui se sont déjà battus boivent"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Celui/Celle qui pèse le plus lourd boit "+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Pour se décoincer, le/la plus timide boit"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Le/La plus jeune boit"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Plutôt avoir du temps ou de l'argent ? Votez tous en même temps. La minorité boit"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Celles/Ceux qui ont fait des études de L boivent"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Le premier joueur qui en embrasse un autre sur la bouche pourra distribuer"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Celles et ceux qui joue de la guitare peuvent distribuer"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Celles et ceux qui joue du piano peuvent distribuer"+GorgeesaleatoireAmeliorer(1,4)); + phraseSansNom.add("Les gens qui se sont masturbés aujourd'hui peuvent distribuer"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Celui ou celle a la meilleure place boit"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Celles et ceux qui n'ont jamais trompé leur partenaire (c'est bien) peuvent distribuer"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Celui/Celle avec les vêtements les plus moches boit"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Celui/Celle qui a les cheveux les plus longs boit"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("On doit doser son Alcool les yeux fermés"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Plutôt série ou film ? Votez tous en même temps. La minorité boit"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Elisez le plus débile d'entre vous, ce dernier boit"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Le premier qui donne un film de - Christopher Nolan - pourra distribuer"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Le premier qui donne un film avec Christian Clavier pourra boire"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Les végans boivent "+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("La fille la plus maquillé boit"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Celles/Ceux qui ont déjà appelé leur partenaire par le prénom de leurs ex boivent"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("La première personne qui désigne le plus jeune peut distribuer"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Plutôt avoir des connaissances illimitées ou dirigier le monde ? Votez tous en même temps. La minorité boit"+GorgeesaleatoireAmeliorer(1, 4)); + phraseSansNom.add("Plutôt n'avoir aucun ami ou ne plus pouvoir utiliser d'appareil électronique ? Votez tous en même temps. La minorité boit"+ GorgeesaleatoireAmeliorer(2, 5)); + phraseSansNom.add("Plutot vaincre le patrikaka ou la polution dans le monde? Votez tous en meme temps. La minorité boit"+GorgeesaleatoireAmeliorer(1, 2)); + phraseSansNom.add("Jeu du LUTIN : Jusqu'a la fin du jeu. Vous devez enlever le lutin de votre verre pour pouvoir boire et le remettre ensuite sinon vous devait reboire"); + phraseSansNom.add("Celles et ceux qui boivent de la Vodka peuvent distribuer "+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Les joueurs qui ont un A dans leur prénom boivent "+GorgeesaleatoireAmeliorer(3,5)); + phraseSansNom.add("Les joueurs qui ont un P dans le prénom distribue"+GorgeesaleatoireAmeliorer(1, 3)); + phraseSansNom.add("Le premier joueur à ramener un objet rouge (pas de vêtements) peut distribuer"+GorgeesaleatoireAmeliorer(3,5)); + phraseSansNom.add("Le premier joueur qui dévoile un de ses secrets et que personne autour ne sait peut distribuer"+ GorgeesaleatoireAmeliorer(3, 6)); + phraseSansNom.add("Chaque joueur doit lire à haute voix le dernier SMS qu'il a reçu. Si il/elle refuse, c'est"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Le joueur avec le plus gros cul boit"+ GorgeesaleatoireAmeliorer(2, 6)); + phraseSansNom.add("Celles/Ceux qui ont moins de 20ans boivent"+ GorgeesaleatoireAmeliorer(2, 7)); + phraseSansNom.add("Celui ou celle avec le plus gros appetit sexuel boit"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Ceux/Celles qui fumes boivent "+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Celles et ceux qui ont au moins un BAC +3 peuvent distribuer"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Le premier joueur à se lever peut donner"+ GorgeesaleatoireAmeliorer(6, 7)); + phraseSansNom.add("Celles et ceux qui n'ont jamais fait de strip tease boivent"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Le premier joueur à enlever un vêtements pourra distribuer"+ GorgeesaleatoireAmeliorer(5, 7)); + phraseSansNom.add("Jeu des peaux ! Triez vous du joueur le plus bronzé au joueur le moins bronzé. Le plus bronzé prend 1 gorgée, le second 2 gorgées, etc."); + phraseSansNom.add("Tous ceux qui ont déjà uriné dans une piscine boivent"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Celui/Celle avec le plus d'amis sur Facebook boit"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Celui/Celle avec le nom de famille le plus compliqué boit"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Les joueurs qui n'ont pas encore distribué de gorgées boivent"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Plutôt avoir du pouvoir ou de la connaissance ? Votez tous en même temps. La minorité boit"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("le plus gros dalleux avec les filles boit"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Le premier joueur à donner l'heure pourra distribuer"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Celles et ceux qui ont déjà dépenser plus de 2000 euros en un achat peuvent distribuer"+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Le mec le moins courageux boit "+ GorgeesaleatoireAmeliorer(2, 4)); + phraseSansNom.add("Celles/Ceux qui rentre chez eux à la fin de la soirée boivent"+ GorgeesaleatoireAmeliorer(8, 12)); + phraseSansNom.add("Il est désormais interdit de se tutoyer"); + phraseSansNom.add("Toutes les règles existantes sont annulées"); + phraseSansNom.add("Celles et ceux dont le jour d'anniversaire est un nombre impair boivent"+ GorgeesaleatoireAmeliorer(2, 4)); + //phraseSansNom.add(""); + //phraseSansNom.add(""); + //phraseSansNom.add(""); + //phraseSansNom.add(""); + //phraseSansNom.add(""); + //phraseSansNom.add(""); + //phraseSansNom.add(""); + //phraseSansNom.add(""); + //phraseSansNom.add("");*/ + + + // + + //Affichage : + TextView textView1 = (TextView) findViewById(R.id.textView1); + //textView1.setText(Nbaleatoirelist(phraseSansNom)); + //} + + public int Gorgeesaleatoire(int Min, int Max){ + int offset = ajoutGorgees; + int nbgorgées; + Random rand = new Random(); + if (Min == 1 && Max == 2){ + nbgorgées = rand.nextInt(Max + Min); + }else { + nbgorgées = Min+rand.nextInt(Max - Min); + } + if(nbgorgées == 0){ + nbgorgées = 1; + } + nbgorgées = nbgorgées + offset; + return nbgorgées; + } + public String GorgeesaleatoireAmeliorer(int Min, int Max){ + int offset = ajoutGorgees; + int nbgorgées; + Random rand = new Random(); + if (Min == 1 && Max == 2){ + nbgorgées = rand.nextInt(Max + Min); + }else { + nbgorgées = Min+rand.nextInt(Max - Min); + } + if(nbgorgées == 0){ + nbgorgées = 1; + } + nbgorgées = nbgorgées + offset; + String debut; + + String nbgorgéesstr; + String nbgorgéesstr1; + debut = " "; + nbgorgéesstr1 = " Gorgée(s)"; + nbgorgéesstr = debut + Integer.toString(nbgorgées) + nbgorgéesstr1; + return nbgorgéesstr; + } + + public String Nbaleatoirelist(List list){ + Random rand = new Random(); + String phrase = (String) list.get(rand.nextInt(list.size())); + return phrase; + } + public int Nbaleatoire(){ + int Max = 100; + int Min = 0; + Random rand = new Random(); + int nbaleatoire = rand.nextInt(Max - Min); + return nbaleatoire; + } + public boolean JoueurOuPas(){ + boolean TrueFalse; + int nbaleatoire = Nbaleatoire(); + int pourcentage = 40; + //System.out.println(nbaleatoire); + if(nbaleatoire >= pourcentage){ + TrueFalse = false;} + else{ + TrueFalse = true; + } + //System.out.println(TrueFalse); + return TrueFalse; + } + public List TroisJoueurAleatoire(List toutlesjoueurs){ + List listJoueur = new ArrayList(); + while (true){ + Random rand = new Random(); + String joueur1 = (String) toutlesjoueurs.get(rand.nextInt(toutlesjoueurs.size())); + String joueur2 = (String) toutlesjoueurs.get(rand.nextInt(toutlesjoueurs.size())); + String joueur3 = (String) toutlesjoueurs.get(rand.nextInt(toutlesjoueurs.size())); + if(joueur1 == joueur2 ){ + }else{ + if (joueur1 == joueur3){ + }else { + if (joueur2 == joueur3) { + }else{ + listJoueur.add(joueur1); + listJoueur.add(joueur2); + listJoueur.add(joueur3); + return listJoueur; + } + + } + } + } + } + + public String ChoixJoueurAleatoire( List toutlesjoueurs){ + //System.out.println(inttoutlesjoueurs); + Random rand = new Random(); + String joueur = (String) toutlesjoueurs.get(rand.nextInt(toutlesjoueurs.size())); + //System.out.println(joueur); + //int nbaleatoire = rand.nextInt(max -min + 1 ) + min; + //int nbaleatoire2 = nbaleatoire - 1; + //if(nbaleatoire2 == -1 ){ + // nbaleatoire2 = 0; + //} + //System.out.println( "nb aleatoire " + nbaleatoire) ; + //joueur = (String) toutlesjoueurs.get(nbaleatoire2); + //System.out.println(joueur); + return joueur ; + + } + public void OnClickButton1(View v){ + finish(); + startActivity(getIntent()); + + } + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + // Votre code pour gérer les modifications d'orientation ici + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/boidelov3/MainActivity.java b/app/src/main/java/com/example/boidelov3/MainActivity.java new file mode 100644 index 0000000..fda055b --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/MainActivity.java @@ -0,0 +1,193 @@ +package com.example.boidelov3; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.text.InputType; +import android.view.View; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import java.util.ArrayList; +import java.util.List; + + +public class MainActivity extends AppCompatActivity { + //public static final List EXTRA_LIST_JOUEUR = Collections.singletonList("com.example.piccolov2.jeux.EXTRA_LISTJOUEUR"); + + String J1S,J2S,J3S; + private int offset; + private List toutlesjoueurs; + private List PhraseSansNom; + EditText J1; + EditText J2; + EditText J3; + + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } + private List editTextList = new ArrayList<>(); + public void onClickButton1(View view) { + LinearLayout namesContainer = findViewById(R.id.namesContainer); // Récupère le conteneur des noms + + EditText newEditText = new EditText(this); // Crée un nouvel EditText + newEditText.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); // Définit les paramètres de mise en page + newEditText.setHint("Nom"); // Définit le texte d'indication + newEditText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS); // Définit le type d'entrée (texte avec majuscule au début des mots) + editTextList.add(newEditText); // Ajoute l'EditText à la liste des EditText + namesContainer.addView(newEditText); // Ajoute le nouvel EditText au conteneur des noms + } + + + public void onClickButtonStart(View view) { + J1 = (EditText) findViewById(R.id.J1); + J1S = J1.getText().toString(); + + J2 = (EditText) findViewById(R.id.J2); + J2S = J2.getText().toString(); + + J3 = (EditText) findViewById(R.id.J3); + J3S = J3.getText().toString(); + + + + //Creation d'une liste avec tt les j et verif si elle est completé + toutlesjoueurs = new ArrayList(); + if (J1S.isEmpty()) { + //System.out.println("J1S A pas de valeur"); + }else toutlesjoueurs.add(J1S); + if (J2S.isEmpty()) { + //System.out.println("J2S a pas de valeur"); + }else toutlesjoueurs.add(J2S); + if (J3S.isEmpty()) { + //System.out.println("J3S a pas de valeur"); + }else toutlesjoueurs.add(J3S); + + // + int nbnom = editTextList.size(); + //String test = editTextList.get(0).getText().toString(); + //System.out.println(test); + System.out.println(nbnom); + for (int i = 0; i < nbnom; i++) { + String nom = editTextList.get(i).getText().toString(); + System.out.println(nom); + if (nom.isEmpty()) { + System.out.println("Nom vide"); + } else { + toutlesjoueurs.add(nom); + } + } + //TestListe + //System.out.println(toutlesjoueurs); + + openParametres(); + } + public void openParametres(){ + //enregistrement des joueurs dans les shared preferences Joueurs + SharedPreferences sharedPreferences = getSharedPreferences("Joueurs", Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + + editor.putString("J1", J1S); + editor.putString("J2", J2S); + editor.putString("J3", J3S); + + for (int i = 0; i < editTextList.size(); i++) { + String nom = editTextList.get(i).getText().toString(); + editor.putString("J" + (i + 4), nom); + } + + editor.apply(); + //Lancement de l'activité (Jeux_parametres) + + Intent intent = new Intent(this, JeuxParametres.class); + //Regarde si le pseudo est vide et envoie a l'activité jeux + if (toutlesjoueurs.isEmpty()){ + Context context = getApplicationContext(); + CharSequence text = "Merci de rentrer des joueurs"; + int duration = Toast.LENGTH_SHORT; + + Toast toast = Toast.makeText(context, text, duration); + toast.show(); + } + else { + if (toutlesjoueurs.size() >= 3) { + intent.putStringArrayListExtra("EXTRA_LIST_JOUEUR", (ArrayList) toutlesjoueurs); + //intent.putStringArrayListExtra("EXTRA_LIST_DEFI_NON_JOUEUR", (ArrayList) PhraseSansNom); + intent.putExtra("EXTRA_OFFSET", offset); + startActivity(intent); + } else { + Context context = getApplicationContext(); + CharSequence text = "La partie ne peux pas commencer avec moins de 3 joueurs"; + int duration = Toast.LENGTH_SHORT; + Toast toast = Toast.makeText(context, text, duration); + toast.show(); + + } + }}} + //Lancement de la fonction activité (Jeux) + // openJeux(); + // } + + //Lancement de l'activité (Jeux) +// public void openJeux(){ +// +// Intent intent = new Intent(this, Jeux.class); +// //Regarde si le pseudo est vide et envoie a l'activité jeux +// if (toutlesjoueurs.isEmpty()){ +// Context context = getApplicationContext(); +// CharSequence text = "Merci de rentrer des joueurs"; +// int duration = Toast.LENGTH_SHORT; +// +// Toast toast = Toast.makeText(context, text, duration); +// toast.show(); +// } +// else{ +// if(toutlesjoueurs.size() >= 3){ +// intent.putStringArrayListExtra("EXTRA_LIST_JOUEUR", (ArrayList) toutlesjoueurs); +// //intent.putStringArrayListExtra("EXTRA_LIST_DEFI_NON_JOUEUR", (ArrayList) PhraseSansNom); +// intent.putExtra("EXTRA_OFFSET", offset); +// startActivity(intent); +// }else{ +// Context context = getApplicationContext(); +// CharSequence text = "La partie ne peux pas commencer avec moins de 3 joueurs"; +// int duration = Toast.LENGTH_SHORT; +// Toast toast = Toast.makeText(context, text, duration); +// toast.show(); +// +// } +// +// +// +// } +// +// } +// +// public void OnCheckboxClicked1(View view) { +// boolean checked = ((CheckBox) view).isChecked(); +// if (checked){ +// offset = 2; +// //System.out.println("OFFSET DE 2"); +// }else { +// //System.out.println("DESACTIVER : OFFSET DE 2"); +// offset = 0; +// }} +// +// public void OnCheckboxClicked2(View view) { +// boolean checked = ((CheckBox) view).isChecked(); +// if (checked){ +// offset = 4; +// //System.out.println("OFFSET DE 4"); +// }else { +// //System.out.println("DESACTIVER : OFFSET DE 4"); +// offset = 0; +// }} +//} \ No newline at end of file diff --git a/app/src/main/java/com/example/boidelov3/Question.java b/app/src/main/java/com/example/boidelov3/Question.java new file mode 100644 index 0000000..c21eff7 --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/Question.java @@ -0,0 +1,109 @@ +package com.example.boidelov3; + +import java.util.List; + +public class Question { + private int id; + private String question; + private int gorger; + private boolean distribution; + private List variante; + private boolean recois; + private boolean manches; + private String arret; // mise à jour du type de données + private int manchesRestantes; // pour le nombre de manches restantes + private String arretMessage; // pour le message d'arrêt + private String arretMessageManche; // pour le message d'arrêt pour les manches + + // Constructeur par défaut + public Question() { + } + + // Getters et setters pour tous les champs + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } + + public int getGorger() { + return gorger; + } + + public void setGorger(int gorger) { + this.gorger = gorger; + } + + public boolean isDistribution() { + return distribution; + } + + public void setDistribution(boolean distribution) { + this.distribution = distribution; + } + + public List getVariante() { + return variante; + } + + public void setVariante(List variante) { + this.variante = variante; + } + + public boolean isRecois() { + return recois; + } + + public void setRecois(boolean recois) { + this.recois = recois; + } + + public boolean isManches() { + return manches; + } + + public void setManches(boolean manches) { + this.manches = manches; + } + + public String getArret() { + return arret; + } + + public void setArret(String arret) { + this.arret = arret; + } + + public int getManchesRestantes() { + return manchesRestantes; + } + + public void setManchesRestantes(int manchesRestantes) { + this.manchesRestantes = manchesRestantes; + } + + public String getArretMessage() { + return arretMessage; + } + + public void setArretMessage(String arretMessage) { + this.arretMessage = arretMessage; + } + public String getArretMessageManche() { + return arretMessageManche; + } + + public void setArretMessageManche(String arretMessageManche) { + this.arretMessageManche = arretMessageManche; + } +} diff --git a/app/src/main/java/com/example/boidelov3/Questions.java b/app/src/main/java/com/example/boidelov3/Questions.java new file mode 100644 index 0000000..363e23f --- /dev/null +++ b/app/src/main/java/com/example/boidelov3/Questions.java @@ -0,0 +1,15 @@ +package com.example.boidelov3; + +import java.util.List; + +public class Questions { + private String version; + private List questions; + + // Getters et setters pour chaque champ + public List getQuestions() { + return questions; + } + + // autres getters et setters... +} diff --git a/app/src/main/res/anim/color_transition.xml b/app/src/main/res/anim/color_transition.xml new file mode 100644 index 0000000..3b33fbf --- /dev/null +++ b/app/src/main/res/anim/color_transition.xml @@ -0,0 +1,8 @@ + + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_jeux.xml b/app/src/main/res/layout/activity_jeux.xml new file mode 100644 index 0000000..a0b9056 --- /dev/null +++ b/app/src/main/res/layout/activity_jeux.xml @@ -0,0 +1,44 @@ + + + + + +