Tutoriel [C#] Jeux des Machines à Sous [Niveau débutant]

  • Auteur de la discussion Auteur de la discussion delete221380
  • Créé le Créé le
D

delete221380

separator04.png

Yop tout le monde c'est DEVR0, on ce retrouve pour un nouveau tutoriel sur la programmation en C#.
C'est plutôt un tutoriel assez spécial puisque nous allons reproduire le jeux des Machine à Sous de casino (le jeux ou y'as des fruits qui défilent et ou il faut avoir tous les même :troll:). C'est totalement inutile mais c'est un moyen simple pour mieux comprendre les notions de variables et de switch ainsi que les ressource généré de votre projet.

separator_line.png

On va faire ça de manière assez simple mais compréhensible. Commençons par ce qu'il vous faut.
  • Visual Studio ou Visual C#
  • Des images de fruit ou légume c'est à vous de choisir (3 fruits + 1 image de point d'interrogation) je vous montre les images que moi j'ai.
1403781663-screenshot-5.png

Sommaire des points abordés :
  • I) Création du projet et ajouts des composants.
  • II) La gestion des ressources.
  • III) Le logiciel en lui même et le fonctionnement.


separator_line.png

I) Création du projet et ajouts des composants

Pour la création du projet vous l'aurez comprit on va travaillé sur une WinForm C#, pour ceux qui débutent tout fraîchement avec Visual Studio vous faite > Projet > Nouveau > Choisir Langage C# > Windows Form Applications.

Une fois le projet créer on va donc avoir notre formulaire vide, pour le remplir rien de plus simple on doit seulement ajouter 3 pictureBox ainsi qu'un bouton ainsi qu'un Timer et un label

Comme ceci : (ne vous inquiétez pas pour les images elle seront ajouté après par les ressources)

1403781663-screenshot-2.png



separator_line.png

II) La gestion des ressources

Donc déjà pour ceux qui ne le savent pas vous pouvez fournir une image en ressources généré plutôt qu'en ressource locale, je voit de nombreux logiciel qui une fois partager ne possèdent plus d'image si il est ouvert depuis un autres ordinateur que celui du créateur. C'est domage ça peut gacher du beau travail, ajouter vos images en fichier ressource permet d'évité ce problème, cependant le poid de votre logiciel va considérablement augmenter (dépendant de la taille de l'image) donc ne pas en abuser.

Pour accéder au fichier ressources de votre logiciel vous devez vous rendre sur l'onglet "Projet" du menuStrip puis tout en bas dans "Paramètre de ["nom de votre projet"]". Une fois ceci fait vous allez donc avoir un page comme ceci :
1403781663-screenshot-3.png

Il suffit donc de ce rendre dans la catégorie "Ressources" et de vous rendre comme moi sur ajouter un fichier existants (comme ci-dessous)

1403781663-screenshot-4.png


/!\ Si vous cliquer sur "Nouvelle image" vous allez ouvrir un éditeur d'image /!\

Bon après rien de bien compliqué, vous pouvez prendre toutes vos images en même temps et elle seront automatiquement ajouté au fichier ressources.

Rendez-vous sur votre Formulaire et dans vos 3 pictureBox ajoutez-y l'image du point d'interrogation

Sur votre pictureBox vous avez une flêche, ajoutez l'image qui se trouve en ressource et non en image local (il ne faut pas faire parcourir en gros ^^) et ensuite vous pouvez choisir la taille de l'image, pour que ça rentre préféré le "StrechImage" ;)

1403782536-screenshot-7.png




separator_line.png

III) Le logiciel en lui même et le fonctionnement

En faite il n'y rien de bien compliqué mais on va passer a la partie du code, donc rendez-vous dans le code de votre bouton (double cliquez dessus si jamais).

Et la on va devoir déclaré pas mal de chose, déjà nos références et ensuite nos variables, par ailleurs vous n'aurez besoin d'aucun .dll externes a ceux d'origine fournit par Windows et par Visual Studio ou Visual C#.

Au niveau des références je vous donne directement la liste des using

Code:
using System.Diagnostics;
using System;
using System.Windows.Forms;
using System.Collections;
using System.Drawing;
using Microsoft.VisualBasic;
using System.Data;
using System.Collections.Generic;
/!\ N'oubliez pas de les ajoutées dans les références /!\

Une fois ceci fait nous allons passer a la partie variable, il est d'ailleurs très important de bien les placé, puisque si vous déclaré une variable dans une fonction et que vous désiré l'utiliser dans une autre elle ne sera pas reconnu et la variable n'aura plus son utilité. Pour être sûr de vous, déclarez les variables au début du code dans la fonction générale qui va encadré toutes les autres fonctions.

Pour ma part j'ai déclaré mes variables en dessous de "public partial class Form1 : Form" étant donner que c'est la fonction principale je suis certains que mes variables seront utilisable dans chacune des fonctions qui suivra

Code:
int m;
int a;
int b;
int c;
Pour rappel une variable int et une variable contenant une valeur, non pas une chaîne de caractères

Ensuite double cliquez sur votre Bouton vous allez voir une fonction click généré automatiquement par Visual Studio, je vous avez demandé d'ajouter un Timer dans les composant, c'est la qu'on va s'en servir, dans le code de votre Bouton vous allez écrire :
Code:
timer1.enabled = true; // Ce code sert a lancer le Timer
Si vous avez bien suivit vous devriez avoir ceci :
1403781663-screenshot-6.png
Ensuite double cliquez sur votre Timer, pour accéder a la partie code et avoir la fonction généré d'un événement du Timer.

Donc on va se servir de la fonction Random pour assigné une valeur aléatoire a chaque image

Code:
// Tableu de match, imcrément de 10 sur la première valeur
m = m + 10;
// On fixe une limite de 10000 ou moins
if (m <= 1000)
{
// On rendom la Variable A
a = (int)(Conversion.Int(1 + VBMath.Rnd() * 3));
// On random la variable B
b = (int)(Conversion.Int(1 + VBMath.Rnd() * 3));

c = (int)(Conversion.Int(1 + VBMath.Rnd() * 3));
// On Random la variable C
Une fois que chaque variable (= pictureBox) est randomiser on peut continué

Code:
//Variable A dans un switch en fonction de la valeur et tu tic de Timer
switch (a)
{
case 1:

pictureBox1.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\apple_0.jpg");//Chemin d'accès au fichier
break;

case 2:
pictureBox1.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\grapes_0.jpg");//Chemin d'accès au fichier
break;

case 3:
pictureBox1.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\strawberry_0.jpg");//Chemin d'accès au fichier
break;

}

//Variable B dans un switch en fonction de la valeur et tu tic de Timer
switch (b)
{

case 1:
pictureBox2.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\apple_0.jpg");//Chemin d'accès au fichier
break;

case 2:
pictureBox2.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\grapes_0.jpg");//Chemin d'accès au fichier
break;

case 3:
pictureBox2.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\strawberry_0.jpg");//Chemin d'accès au fichier
break;

}

//Variable B dans un switch en fonction de la valeur et tu tic de Timer
switch (c)
{

case 1:
pictureBox4.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\apple_0.jpg");//Chemin d'accès au fichier
break;

case 2:
pictureBox4.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\grapes_0.jpg");//Chemin d'accès au fichier
break;

case 3:
pictureBox4.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\strawberry_0.jpg");//Chemin d'accès au fichier
break;

}

}
On met donc 3 switch, un pour 1 chaque variable.


Et ensuite on finalise la fonction avec le Victoire ou Perdu.

Code:
else
{
//Après avoir Random les 3 variable on désactive le Timer pour pas que ce face en boucle
timer1.Enabled = false;
//On remet la variable a 0
m = 0;
//Si la variable A, B et C sont égales c'est que les photo sont identique donc Victoire :D
if (System.Convert.ToInt32(a == b) == c)
{
label1.Text = "Jackpot! Gagné :D";
}
//Sinon bah perdu :D
else
{
label1.Text = "Retente t'as chance";

}
}

1403782182-hfqon0u.png

Comme chaque variable s'est vu attribué une valeur Random (la variable équivaut aussi a une pictureBox), on va regarder si la variable A = B = C, si les 3 correspondent ça veut dire que vous avez donc les 3 même images (par rapport au switch précédent) sinon c'est qu'au moins 1 sur 3 n'est pas compatible avec les 1 voir 2 donc c'est perdu.

Ce tutoriel est maintenant terminé, j'espère que ça vous aura plus, je vous met une petite démo en vidéo pour vous montrer que ça fonctionne bien :)


- Vidéo du mini jeux :

Vous devez être inscrit pour voir les médias


separator04.png
Code complet pour ceux qui le veulent :

Code:
using System.Diagnostics;
using System;
using System.Windows.Forms;
using System.Collections;
using System.Drawing;
using Microsoft.VisualBasic;
using System.Data;
using System.Collections.Generic;

namespace TutorielRG
{
public partial class Form1 : Form
{
int m;
int a;
int b;
int c;
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
// Tableu de match, imcrément de 10 sur la première valeur
m = m + 10;
// On fixe une limite de 10000 ou moins
if (m <= 1000)
{
// On rendom la Variable A
a = (int)(Conversion.Int(1 + VBMath.Rnd() * 3));
// On random la variable B
b = (int)(Conversion.Int(1 + VBMath.Rnd() * 3));

c = (int)(Conversion.Int(1 + VBMath.Rnd() * 3));
// On Random la variable C

//Variable A dans un switch en fonction de la valeur et tu tic de Timer
switch (a)
{
case 1:

pictureBox1.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\apple_0.jpg");//Chemin d'accès au fichier
break;

case 2:
pictureBox1.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\grapes_0.jpg");//Chemin d'accès au fichier
break;

case 3:
pictureBox1.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\strawberry_0.jpg");//Chemin d'accès au fichier
break;

}

//Variable B dans un switch en fonction de la valeur et tu tic de Timer
switch (b)
{

case 1:
pictureBox2.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\apple_0.jpg");//Chemin d'accès au fichier
break;

case 2:
pictureBox2.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\grapes_0.jpg");//Chemin d'accès au fichier
break;

case 3:
pictureBox2.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\strawberry_0.jpg");//Chemin d'accès au fichier
break;

}

//Variable B dans un switch en fonction de la valeur et tu tic de Timer
switch (c)
{

case 1:
pictureBox4.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\apple_0.jpg");//Chemin d'accès au fichier
break;

case 2:
pictureBox4.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\grapes_0.jpg");//Chemin d'accès au fichier
break;

case 3:
pictureBox4.Image = Image.FromFile(@"C:\Users\DEVR0\Documents\strawberry_0.jpg");//Chemin d'accès au fichier
break;

}

}
else
{
//Après avoir Random les 3 variable on désactive le Timer pour pas que ce face en boucle
timer1.Enabled = false;
//On remet la variable a 0
m = 0;
//Si la variable A, B et C sont égales c'est que les photo sont identique donc Victoire :D
if (System.Convert.ToInt32(a == b) == c)
{
label1.Text = "Jackpot! Gagné :D";
}
//Sinon bah perdu :D
else
{
label1.Text = "Retente t'as chance";

}
}
}
}
}
 

Fichiers joints

Mdr Sympa comme tutoriel
 
Merci mec sa te derangerzi si je ajoute quelsue modifs ? Non je lol je debute a peine en plus j'apprend le c++
 
Retour
Haut