Aller au contenu

Leaderboard

Popular Content

Showing content with the highest reputation on 26/03/2014 in all areas

  1. Salut all, j'avais fais un beau tuto bien long et bien expliqué mais je me suis fail et tout a disparu en enfer... D: Donc je fais une version abrégée, le mySQL est différent des autres oui, par exemple cette saloperie de SQLite ne prend pas le caractère " ` " pour isoler les variables même si il n'est pas obligatoire de plus certaines fonctions ne sont pas disponible. bref mySQL c'est bien et gratuit. ^-^ je vais pas refaire tout un truc sur la structure... il était tellement bien mon autre tuto disparu :'( la structure de la commande se compose d'une action, une cible, de valeur(s)(optionnel), de condition(s)(optionnel), d'un ordre(optionnel) et une limite(optionnel). exemple pour un ajout on utilise: une action, une cible et des valeurs:: #syntaxe: INSERT INTO [CIBLE] ([VARIABLE(S)]) VALUES([VALEURS]); INSERT INTO `ma_table` (`texte`, `chiffre`) VALUES('Coucou', 123); Donc:- la "cible" c'est la table que vous voulez affecter vous pouvez la sélectionner aussi à travers une db (ex: `db_forum`.`ma_table`). - les variables sont les noms des colonnes dans votre table. - les valeurs sont les valeurs (._.) que vous donnez aux variables. > Documentation Mysql::INSERT si la valeur est un chiffre vous n'êtes pas obligé de mettre de guillemets mais si vous désirez mettre un guillemet dans une phrase vous devait mettre un anti-slash devant (ex: 'C\'est bon le chocolat!'). il existe une syntaxe où vous n'êtes pas obligé de donner le nom des variables mais alors vous devez donner les valeurs pour toutes les variables dans l'ordre. #dans le contexte il y a une variable guid qui sert d'index et l'ordre est: guid, texte, chiffre INSERT INTO `ma_table` VALUES(NULL, 'Coucou', 123); "NULL" retourne la valeur par défaut (ou une case vide) si la variable est un index avec une AI (auto-incrémentation) la valeur sera égale à l’incrémentation actuel de l'index de l'IA ._. EDIT: je viens de me relire après ~8mois et je viens de voir que je n'ai pas indiqué comment ajouter plusieurs lignes en une commande, c'est simple il suffit de mettre une virgule entre les paquets de valeurs (les parenthèses). Ce qui donne: #syntaxe: INSERT INTO [CIBLE] ([VARIABLE(S)]) VALUES([VALEURS]); INSERT INTO `ma_table` (`texte`, `chiffre`) VALUES('Coucou', 123), ('tu veux?', 456); vous pouvez en mettre plus mais je ne connais pas la limite maintenant pour modifier des variables: action, cible, variables, nouvelles valeurs, limite (non obligatoire mais c'est une petite sécurité):: #syntaxe: UPDATE [CIBLE] SET [VARIABLES] = [VALEURS] WHERE [CONDITION] LIMIT 1 #dans le contexte notre commande précédente, a affecté la valeur 58 à `guid` UPDATE `ma_table` SET `texte` = 'Au revoir', `chiffre` = (`chiffre` + 250) WHERE `guid`= 58 LIMIT 1; quand vous avez plusieurs variables à mettre à jour vous n'avez cas les séparer par une virgule et vous pouvez aussi réutiliser les variables dans votre ligne comme par exemple pour augmenter la valeur d'un chiffre de 250. Vous pouvez appliquez une modification à toutes lignes en supprimant "WHERE [CONDITION]" et la limite.> Documentation Mysql::UPDATE pour bien illustrer le "WHERE" dans mon exemple précédent je vais vous expliquer le "SELECT" (la sélection, impressionnant non?), la syntace: SELECT [COLONNE] FROM [CIBLE] WHERE [CONDITION] ORDER BY [ORDRE] LIMIT [LIMIT]; -[COLONNE] : Les informations que vous souhaites récupérer, j'aurais pu aussi mettre [VARIABLES]comme au dessus mais bon ça reste une légende.-[CIBLE] : La table dans la quelle vous désirez faire votre recherche. -[CONDITION] : La condition pour que la donnée soit sélectionnée. -[ORDRE] : Ordre croissant (ASC) ou décroissant (DESC). -[LIMIT] : La limite de la sélection. > Documentation Mysql::SELECT Premier exemple, nous allons sélectionner l'utilisateur dont l' "ID" est 169 dans une table du nom de "users": SELECT * FROM `users` WHERE `ID` = 169 LIMIT 1; Comme vous avez pu le constater j'ai mis un * dans les colonnes que je veux récupérer, celà signifie que je veux récupérer tout les colonnes de la ligne mais attention il n'est pas disponible dans toute les variantes SQL, le "LIMIT 1" est optionnel et inutile mais je le mets par hygiène de code maintenant nous allons faire un truc un peu plus compliqué, nous allons chercher dans une table du nom de "news" si le mot "patate" est présent dans la colonne "title" (titre) ou "content" (le contenu) et nous allons récupérer que le titre, le contenu et sont "guid" (qui correspond à son numéro d'index dans la table) dans l'ordre croissant selon le titre, mais vous vous dites pour trouver le mot ça va être compliqué non en faite regardez : SELECT `guid`, `title`, `content` FROM `news` WHERE (`title` LIKE '%patate%') OR (`cotent` LIKE '%patate%`) ORDER BY `title` ASC; Comme vous pouvez le voir le "LIKE" est apparu, il est utilisé au même titre que le caractère "=", et il est complémenté par le caractère "%" qui dans la recherche signifie qu'il peut s'agir de n'importe quel caractère ou même de plusieurs mais vous désirez avoir qu'une possibilité que de 1 caractère il suffit de mettre un "_" à la place du "%".il y a aussi l’apparition du "OR" qui signifie "ou", je dis donc à la requête que c'est ça ou ça pour être sélectionné, je mets des parenthèses pour bien séparer les conditions, vous pouvez aussi mettre un "AND" ("et" en français) si vous désirez que les deux conditions soient remplies. pour un peu mieux illustrer l'exemple au dessus je vais le "traduite" dans un langage plus un langage plus "humain": Sélectionne le `guid`, `title`, `content` dans les `news` où dans le `title` ressemble à '[n'importe]patate[n'importe]' ou dans le `content` si il y a une ressemblance à '[n'importe]patate[n'importe]' dans l'ordre de `title` en croissant. c'est moche et pire à comprendre mais bon il existe des langages en français... ^-^ maintenant la suppression <3 rien de plus simple de mettre fin aux jours de sa création, comme exemple je vais reprendre l'exemple de l'users 169 ci-dessus et vu qu'il est méchant on va le supprimer: #content: l'user (utilisateur) dont le `guid` (numéro index unique donné) est 169 est méchant donc on le supprime. #syntaxe: DELETE FROM [CIBLE] WHERE [CONDITION]; DELETE FROM `users` WHERE `guid`= 169 LIMIT 1; /!\ Attention, avec les commandes il n'est jamais possible de revenir en arrière sauf si vous avez une bonne mémoire ou une sauvegarde.Le "LIMIT 1" est présent non pas pour hygiène mais par sécurité car une faute de syntaxe et vous risquez de grave perte si vous ne mettez pas de conditions c'est tout le mode qui disparait. > Documentation Mysql::DELETE La remise à zéro, la commande "DELETE" c'est bien mais la commande "TRUNCATE" c'est mieux, quand vous utilisez la commande "DELETE" si votre table à un ou plusieurs index il(s) reste(nt) marqué(s) donc si vous voulez tout effacer et repartir à zéro (0) vous devez utiliser la commande "TRUNCATE": #context: vous avez un vieux site et vous désire l'utiliser avec ses dbs mais ils y a plein de vieux users à supprimer. #syntaxe: TRUNCATE TABLE [CIBLE] TRUNCATE TABLE `cible`; une raison de plus de ne pas avoir de faille sql dans son serveur...> Documentation Mysql::TRUNCATE Je pense avoir expliquer les commandes le plus utilisés, je ferais un autre topic sur la gestion des tables elle même, les comptes mysql et autre si j'en ai le courage x') Bonne programmation à tous même si je considère par le SQL comme de la prog, Mars073.
    2 points
  2. Shalut all, Je vais vous expliquer comment faire des tests et c'est super simple Il y a juste plein de façon de le faire! xD Pour faire un test simple, on fait comme ceci: If ([valeur à tester] [symbôle du test (voir le bas)] [La valeur à la quelle elle est comparée]) { [Le code à exécuter si le test se révèle positif]; } exemple: If ($check == true) { include("W\tourbilol.php"); } // ou If ($check == true): include("W\tourbilol.php"); endif; // ou If ($check == true) { include("W\tourbilol.php"); } // ou If ($check == true) {include("W\tourbilol.php");} // ou If ($check == true) include("W\tourbilol.php"); // Ces systaxes ont exactement le même effet // version courte souvent utilisée dans la syntaxe: <?=([condition]) ? 'oui' : 'non'?> : include ($check == true) ? "W\tourbilol.php" : "W\tourbilol_v2.php"; Imaginons que nous programmons un jeu et que vous voulons tester la position_X soit 3 et que le position_Y soit 5 on va faire comme cela: If (($position_X=3) AND ($position_Y=5)) { [Le code à exécuter si le test se révèle positif]; } // ou If (($position_X=3) && ($position_Y=5)) { [Le code à exécuter si le test se révèle positif]; } Il suffit juste de mettre les 2valeurs entre parenthèse et de mettre un "And"(et) ou "&&" entre les deux.^^ Toujours facile.. alors on va compliquer les choses x) Imaginons toujours notre petit jeux, cette fois je veux que la position_X soit 3 ou 5 et que que la position_Y soit 5 toujours simple mais bon : If ((($position_X=3) OR ($position_X=5)) AND ($position_Y=5)) { [Le code à exécuter si le test se révèle positif]; } // ou If ((($position_X=3) || ($position_X=5)) && ($position_Y=5)) { [Le code à exécuter si le test se révèle positif]; } on ajoute encore des parenthèses et on met un "Or"(ou) ou "||" même principe que le "And" On monte encore un peu dans la difficulté Cette fois la position_X doit être compris entre 3 et 5 et la position_Y doit doit être 5. è_é If ((($position_X>3) AND ($position_X<5)) && ($position_Y==5)) { [Le code à exécuter si le test se révèle positif]; } Cette fois le test demande si le nombre est supérieur et si il est inférieur ^^ Maintenant on va demander que si number est 1 il envoie un message "c'est 1!"; si c'est 2 un message "c'est deux" et si ce n'est pas un des deux, le programme envoie un message "chiffre inconnu", et pour cela on va mettre un "ElseIf": If (number==1) { echo "c'est 1!"; } ElseIf (number==2) { echo "c'est 2!"; } Else { echo "chiffre inconnu"; } Il existe aussi la méthode du "Case Of" ou plus communément appellé "Switch()" en PHP: Switch (number) { Case 1: echo "c'est 1!"; break; // Important! Il faut mettre un "break;" à la fin du code à exécuter si la condition est remplie. Case 2: echo "c'est deux!"; break; Case 3: Case 4: echo "c'est trois ou quatre!"; Break; Default: // Équivalent d'un "Else" echo "chiffre inconnu"; } Les symboles de test === : est égale exactement... (le plus souvent utilisé lors d'un test avec une fonction par exemple qui retourne une valeur booléen [ true ou false]) !== : n'est pas du tout commun avec ... == : égale à ... > : supérieur à ... < : inférieur à ... >= : supérieur ou égale à... <= : inférieur ou égale à... != : n'est pas égale à... Fonction utile: empty et isset:Empty sert à tester si une valeur est vide Isset sert à tester si la variable existe (n'est pas égale à null) // On test si la variable $text est vide: if (empty($text)) {echo "Le texte est vide";} // On test si la variable id contenu dans l'url existe (ex: http://0.0.0.0/view.php?id=1234&AutreVar=0) if (isset($_GET['id'])) {echo "Article N°", $_GET['id'];} // ou aussi : if ($_GET['id']) {echo "Article N°", $_GET['id'];} test en une ligne, afficher "online" si $test = 1 et "offline" dans le cas contraire: echo ($test==1) ? "online" : "offline"; Bonne programmation à tous! Cordialement, Mars073
    2 points
  3. Salut tout le monde ! Je vous ai déniché une présentation dans bon petit mod que j'avais fais à l'époque ou j'étais rédacteur. Je vous laisse apprécier ! Le mod est en 1.6.X, mais ne va pas tarder à etre porter en 1.7.5 Vous connaissez sans doute le célèbre créateur de mods, Ichun. Pour ceux qui ne le connaissent pas il s'agit d'un "moddeur" réputé dans la communauté anglophone pour l'aspect technique apporté à ses mods. Nous allons aborder aujourd'hui le mod Morph. Vous l'aurez sans doutes compris ou deviné avec le nom du mod, il s'agit de s'approprier le corps d'un autre joueur ou entité vivante dans le monde cubique de Minecraft. L'interface graphique Une interface sobre C'est ici que vous allez trouver vos Morphs. Un Morphs, c'est le corps et l'esprit que vous avez pris à quelqu’un ou quelque chose. Voilà à quoi ressemble cette interface : Pour ouvrir l'interface, il va vous falloir appuyer par défaut sur se bouton de votre clavier : Pour faire défiler les différentes formes de Morph, utilisez la molette de la souris de votre ordinateur. Pour sélectionner un type de Morph, appuyez sur la touche "Entrer" de votre clavier d'ordinateur (Clic gauche avec votre souris marche également). Pour quitter cette interface, appuyez sur la touche "Echap" de votre clavier d'ordinateur. Il faut également noter que toutes les formes de Morphs ne seront pas directement acquises. Comment obtenir des Morphs ? Pour en obtenir, il vous suffit de tuer un joueur ou toutes formes d'entités hostiles ou non de notre monde cubique. Quand vous avez tué la pauvre âme en face de vous, vous allez directement prendre sa forme et certaines de ses capacités. Le Morph de cette entité ou joueur sera également ajouté à votre liste de Morphs dans l'interface graphique présentée précédemment. Si l'acquisition a bien marché, la personne, le monstre ou l'animal tué devrait ressembler à ça en mourant : Cette pauvre vache s'est transformé en lambeau de chairs noircis que nous allons absorber. Sur nous, la transformation devrait ressembler à ça : Ceci dure seulement pendant la transformation. A la fin de la transformation vous allez ressembler à un vrai mouton comme on les trouve dans la nature Minecraftienne. Attention, si jamais vous tuez deux personnes à la suite et que la transformation n'est pas finis, vous n'allez pas absorber la deuxième personne. Les différents Morphs Nous allons observer ici les différents types de Morphs. Si un Morph n'est pas traité, c'est qu'il n'existe pas dans la version présentée ou qu'il n'a pas de particularités à part son apparence. (Il est également possible, comme pour les boss, que cela nécessite un ou plusieurs réglages, fouillez dans le dossier config de votre Minecraft et sélectionnez celui de Morph. Une fois chose faite, cherchez un peu et vous trouverez sans difficultés) Le Poulet En tant que poulet, nous faisons la moitié d'un bloc. Cet aspect reste bien pour s’engouffrer dans certains endroits mais reste difficile pour s'y habituer. L'autre possibilité du poulet est de pouvoir planer dans les airs et donc de ne pas prendre de dégâts de chute. On ne voit également pas ses mains en vue à la première personne. Le Zombie Le zombie est légèrement plus petit qu'un joueur, il fait un peu plus de 1 bloc et demi. Le zombie va brûler au soleil, mais vous pouvez voir l'objet qu'il tient dans la main en vue à la troisième personne. On peut également voir sa main à la première personne. Le Magma Cube Le Magma Cube existe sous différentes formes, petit moyen et grand. Vous allez donc varier de taille entre les différentes transformations. Si vous êtes un Magma Cube, vous allez être insensible au feu et à la lave. On ne voit pas ses mains ni les objets que l'on tient. Le Creeper Le creeper n'a aucune capacité spéciale. On ne voit ni ses mains (normal le creeper n'a pas de mains) ni l'objet que l'on tient. Il est légèrement plus petit qu'un joueur. Le Squelette Si vous êtes un squelette, vous allez brûler au soleil malgré l'icone disant que vous êtes insensible au feu (Sûrement un bug qui va être corrigé prochainement). On voit sa main et les objets que l'on tient à l'intérieur. L’Araignée L'araignée fait deux blocs de large et un bloc de hauteur. Elle peut escalader les murs et l'on voit son petit bras tout maigre. On ne voit pas les objets que l'on tient en vue à la troisième personne. Le Slime Le slime existe, comme son confrère le Cube de Magma, sous plusieurs formes : petite, moyenne et grande. Vous allez donc varier de hauteur selon la forme. On ne voit ni ses mains (Normal comme un Slime n'en a pas) ni l'objet que l'on tient. Le Cochon Zombie Le cochon zombie est légèrement plus petit que un joueur. Il ne craint ni le feu ni la lave, comme quand il est à l'état naturel. On voit sa main et l'objet que l'on tient dedans. L’Araignée des Cavernes Comme sa camarade l'araignée banale, elle peut monter et escalader tous les obstacles. Cette araignée là ne fait que 1/2 bloc de hauteur et 1 de largeur. On voit sa petite patte devant soi mais pas les objets que l'on tient dedans à la troisième personne. Le Silver Fish Le Silver Fish (poisson d'argent en Français) fait un tout petit peu moins de 1 bloc de haut. On ne voit ni ses mains ni l'objet que l'on tient dedans. Le Blaze Le Blaze est un Morph très complexe. Pour commencer, vous laissez derrière vous une traîné de fumer. Deuxièmement, le Blaze a le pouvoir de voler (Appuyez deux fois rapidement sur la barre d'espace, comme en créa). Le Blaze ne craint pas le feu et la lave mais prend des dégâts en touchant l'eau. On ne voit ni ses mains ni ce que l'on tient dedans. La Chauve-Souris La chauve souris fait 1/2 bloc de hauteur mais a une capacité très pratique : Elle peut voler ! On ne voit ni ses mains ni ce que l'on tient dedans. Le Poulpe Le poulpe fait 1 bloc de hauteur. Il peut respirer sous l'eau autant de temps que vous voulez mais ne pourra pas survivre bien longtemps en dehors. On peut voir une de ses petite tentacule mais pas ce que l'on tient dedans en vue à la troisième personne. Le Ghast Il faut savoir que le Ghast est grand, TRES grand. Il fait 5 bloc de haut et 5 bloc de large. Le Ghast peut également voler et ne craint pas le feu et la lave. On ne voit ni ses mains ni ce que l'on tient à l'intérieur. Liens Téléchargement de Morph Topic Officiel de Morph Installation
    1 point
  4. Bonjour, Je tiens à vous faire part d'une chaîne YouTube juste énorme sur des vidéos épiques de League of Legends : https://www.youtube.com/channel/SWZHwo2P4MMGU Voilà passez de moments en regardant ces vidéos Cette vidéo est juste énorme :
    1 point
  5. Hey tout le monde ! Aujourd’hui un petit tuto concernant les bases de la programmation en C, et plus particulièrement l’introduction à l’utilisation des fonctions. (Attention les codes présents dans ce tutoriel sont principalement en algorithmique, inutile d'essayer de les compiler) / !\ Ce tutoriel nécessite la connaissance des grandes bases de la programmation en C, notamment les variables, les types, la fonction « main », les calculs simples… / !\ Les fonctions permettent de structurer un programme en plusieurs « morceaux », un peu comme un puzzle. Le programme est donc mieux organisé, ce qui peut se révéler très utile, par exemple, lors de la recherche d’une erreur… Alors une fonction qu’est-ce que c’est ? Une fonction est un bout de programme destiné à exécuter des actions, ces actions pouvant mener au renvoi d’un résultat, ou non. Un exemple sera plus parlant qu’une explication compliquée. Imaginons que l’on souhaite multiplier un nombre par 3, puis l’afficher. Voici le moyen le plus basique : main() { entier nombre = 5 ; nombre = nombre*3 ; afficher nombre ; return 0; } On crée une variable nombre, on la multiplie par trois, puis on l’affiche. Le tour est joué. Voyons maintenant le même programme mais avec une fonction (explications ensuite): entier triple (entier nombre) // 1. Création de la fonction { entier resultat = 0; resultat = nombre*3 ; // 2. Instructions executées par la fonction return resultat ; // 3. renvoi du resultat } main() { afficher triple(5); // 4. Appel de la fonction return 0; { 1. Création de la fonction Le modèle de création d'une fonction est celui-ci: type nom_de_la_fonction (paramètre_entrant) { // Instructions } - "type" correspond au type de la sortie de la fonction. Dans notre exemple, la fonction "triple" renvoie un entier. - "nom_de_la_fonction" est en fait le nom que vous souhaitez donner à votre fonction. Pour notre exemple, j'ai nommé notre fonction "triple". - "paramètre_entrant" correspond aux valeurs avec lesquelles la fonction va travailler. Dans l'exemple la fonction va travailler avec un nombre, j'ai donc nommé son paramètre en conséquence. Un paramètre doit être précédé de son type, dans l'exemple, un entier. 2. Instructions executées par la fonction Tout bonnement des instructions qui seront par la suite executées par la fonction. Pour l'exemple, les seules instructions données consistent à tripler notre nombre de base, celui rentré en paramètre, et à le stocker dans une variable nomée "resultat". 3. Renvoi du résultat Cette commande ordonne à la fonction de renvoyer la valeur de la variable "resultat" (15 dans l'exemple). 4. Appel de la fonction C'est à ce moment que l'on va réellement utiliser notre fonction. Un appel de fonction suit ce shéma: nom_de_la_fonction(valeurs souhaitées en paramètre) Il suffit d'écrire le nom de la fonction, et d'entrer entre parenthèses les valeurs que l'on souhaite que la fonction traite. Pour faire simple, lorsque vous appelez une fonction, c’est comme si le programme faisait un copier-coller des instructions de la fonction. Donc lorsqu’on écrit « triple(5) », le programme calcule le triple de 5 par le biais de la fonction nommée « triple ». Ce résultat n’est stocké nulle part par défaut, il est juste calculé. Il est donc nécessaire de soit le stocker dans une variable (pour le réutiliser plus tard), soit l’afficher directement, comme dans l’exemple. Et là je vous entends d’ici (si si je vous assure ) : « Mais pourquoi se casser la tête à faire une fonction ? Dans l’exemple c’est beaucoup plus facile sans ! » Oui, mais là il s’agit d’une simple multiplication par trois. Certaines fonctions font des milliers de lignes ! Votre main sera donc beaucoup plus propre et compréhensible avec des fonctions ! De plus, les fonctions permettent d’exécuter plusieurs fois la même action (comme une multiplication par trois) sans avoir à retaper le code, et ce, avec autant de valeurs que l’on veut (Notre exemple multiplie 5 par 3, mais il suffit de taper « triple(20) » pour obtenir le triple de 20). Donc gain de temps et de place. En voilà un outil pratique ! Voilà c’est à peu près tout, il s’agit là d’un tutoriel très basique, destiné à vous faire comprendre le fonctionnement des fonctions. Si vous êtes intéressés, je vous invite à parcourir ceci, afin d’approfondir ces explications. Si vous avez des questions ou des suggestions pour perfectionner ce tutoriel, n’hésitez pas !
    1 point
  6. Alors, à savoir que ca dépends du moteur de jeu utilisé . Les jeux de plateforme sont souvent basés sur tout ce qui est "cell collision", pour faire simple, les objets sont stockés dans un pseudo double array (tableau à deux dimensions (ou une simple (avec un bon vieux modulo) qui représentent les X et les Y.) Le problème de ce genre de chose, c'est que la création des maps est très limitée (puisque case par case) mais le parsing est plutôt simpliste. On connait aussi la gestion par détection pure. La grosse différence, c'est que le cell collision permet de limiter l'utilisation CPU (on ne parcours que les cases autours du joueur) alors que la version Full collision est généralement gérée par la CG, car trop grosse pour le pross (effectivement ! On check tous les éléments du décors UN PAR UN). Bref, chaque chose à ses qualités et ses défauts, et tout cela se joue souvent au niveau de la vitesse d'exécution. dans chacun des cas, le parseur est différent en fonction des engines et en fonction du code général .
    1 point
×
×
  • Créer...