Dossier projet isn 2015 par Victor Gregoire



Documents pareils
Poker. A rendre pour le 25 avril

I. Introduction aux fonctions : les fonctions standards

Récupération de fichiers effacés avec Recuva 1/ 5

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Présentation du langage et premières fonctions

flamber fructifier vente aux enchères les croupiers expliquent les règles tous les accessoires Durée des jeux : 1h30 2h30

Comment parier jute sur les sites de paris sportifs

La philosophie Ludi. recréer cet esprit chaleureux et amical afin de faire passer des bons moments à ses internautes autour d une même passion.

Java 7 Les fondamentaux du langage Java

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Roulette, Black-jack, Boule, Chuck a luck, Roue de la fortune et Triche... Un classique indémodable de l animation événementielle.

Comedy Magic vous présente l'animation Casino Factice

Le Seven Card Stud. Club Poker 78

Télécom Nancy Année

Riddle Blocks. Jeu sous Android. - Yann Bertrand. Membres de l'équipe : - Clément Guihéneuf TS5. - Guillaume Renotton TS4

Annexe : La Programmation Informatique

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

JEUX DE CASINO challenges possibles a partir de 10 ANS utilisation en intérieur

Réaliser un ing avec Global Système

Classer et partager ses photographies numériques

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

REALISER UN SITE INTERNET AVEC IZISPOT SOMMAIRE

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Apprentissage par renforcement (1a/3)

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

Réalisation d'une application de gestion des candidatures

MATH ELEMENTS DU CALCUL DES PROBABILITES

LE PHÉNOMÈNE DU POKER : ÉTAT DE LA SITUATION ET RÉFLEXION CRITIQUE

Chapitre I Notions de base et outils de travail

Que faire avec deuxième paire au flop?

Enseignement des habiletés sociales au secondaire

TABLE DES MATIÈRES 1. CONFIGURATION DE SYSTÈME NÉCESSAIRE INSTALLATION GESTION DE COMPTE... 4

Tutoriel Drupal version 7 :

PHPWEBSITE -Tutoriel image

En cas de partage avec des «side pots», chaque pot est traité séparément en commençant par les extérieurs.

LE POKER, INTERNET ET LE DROIT

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

RÉALISATION D UN SITE DE RENCONTRE

et Groupe Eyrolles, 2006, ISBN :

ACTIVITÉ DE PROGRAMMATION

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Intégrer des notices de MoCCAM-en-ligne dans BCDI abonnement

LES tests d'acceptation

Quelques éléments de compilation en C et makefiles

Réglementation des jeux de casino

MEGA ITSM Accelerator. Guide de Démarrage

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Canada. m y 1*1. 8^1 Agriculture AUG. f/jfwjêkw. Canada. Canadian Agriculture Llbrary Bibliothèque canadienne de l'agriculture Ottawa K1 A 0C5

REGLEMENT DES JEUX PARTOUCHE IMAGES (Serveur vocal et Internet)

Le générateur d'activités

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

13 conseils pour bien choisir son prestataire de référencement

Exemple 360. Questionnaire Leadership Thomas. Personnel & Confidentiel

Débuter avec OOo Base

1/ Présentation de SQL Server :

Freeway 7. Nouvelles fonctionnalités

Chapitre 2 Devine mon nombre!

Webmaster / Webdesigner / Wordpress

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Créer une base de données vidéo sans programmation (avec Drupal)

{less} Guide de démarrage

ENSEIGNEMENT ASSISTÉ PAR ORDINATEUR ET E.A.O. ET LANGUES ÉTRANGÈRES À L'UNIVERSITÉ

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Trois nouveaux formulaires sont donc nécessaires : Pour l affichage de la liste, un formulaire de sortie WEB_Liste associé à la table des [Films] ;

TUTORIEL SIMPLIFIE de QuizFaber Un éditeur de Quiz et autres exercices simple, complet, original et en freeware!

Enquête 2014 de rémunération globale sur les emplois en TIC

Utiliser le site Kahoot pour créer des quiz interactifs

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

wxwidgets dans un environnement Microsoft Windows

TeamViewer 9 Manuel Management Console

PREINSCRIPTION EN LIGNE

Aperçu général de l'ouvrage

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Un serveur web, difficile?

Cyberclasse L'interface web pas à pas

Cours Informatique Master STEP

REGLES DU TOURNOI POKER TEXAS HOLD EM GRAND CASINO BASEL. Airport Casino Basel AG Tournoi Poker. Version 2.0

Canevas théoriques du projet sur le poker Partie A

Sauvegarde avec Windows 7

YAPBA M. Logiciel libre de suivi de vos comptes

ANICOTTE Guillaume GUFFROY Matthieu LIMA Juliette SALLOUH Chamsseddine CAHIER DES CHARGES SI 28

Ref : Résolution problème d'accès aux supports de cours

Notes pour l utilisation d Expression Web

Analyse Combinatoire

MODE D EMPLOI DE LA PLATEFORME DE DEPOT DES

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

L'émulateur multi-système

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

TP1 : Initiation à Java et Eclipse

Installation locale de JOOMLA SEPIA

PROJET D'INFORMATIQUE I IFT 592 PROJET EN SYSTÈMES INTELLIGENTS IFT-593 POKUS. Système d aide au poker. Travail présenté à M.

NH NEWS N 2 10/2010. Edito. Calendrier. Abondance de poker ne nuit pas! La saison est repartie et bien repartie! Le calendrier du mois d octobre

Transcription:

Dossier projet isn 2015 par Victor Gregoire Plan: I) But du projet: créer un jeu de blackjack fonctionnel et le poster sur une page web mise en ligne. Le jeu sera developpé en C++ a l'aide de code blocks. Il sera également nécessaire de posseder la bibliothèque conio.h afin de pouvoir créer l'interface graphique. II) Montrer la démarche effectuée qui a permis d'atteindre le resultat final. III) Dimension collaborative, travail d'équipe au cours du projet. IV) Explication et commentaires de passages clés du code source.

But du projet: A l'origine, le projets était de créer un page web regroupant plusieurs jeu de casino: poker, blackjack, roulette... Nous avons décidé de le programmer en C++, car ce langage, dit de bas niveau est en effet utilisé pour programmer la plupart des jeux actuels, ce qui en fait un langage très populaire. Nous avons donc commencer a rédiger un GDD, qui hierarchise la création de tout jeu. L'IDE Code blocks nous a été conseillé par Mathieu Nebra (fondateur du site du zero) dans son tutoriel sur le C++, ainsi que d'une bibliothèque spécifique pour l'interface graphique(conio). Pour élaborer la page web, nous nous sommes contentés des langages HTML et CSS, largements suffisants pour créer une page web simple, sur l'éditeur Sublime Text. Le defi de ce projet est de réussir un jeu sans experience en la matière, créer un ordinateur qui puisse rivaliser avec un vrai joueur et qui possède une IA rudimentaire, puis de le mettre en ligne. Pour developper le programme et le faire fonctionner, nous allons avoir besoin d'un IDE (j'ai pris personnellement code blocks). L'IDE Code Blocks est composé de 3 parties: -L'éditeur de texte -Une partie dite debugger qui se contentera de rechercher les erreurs possibles présentes dans le code (par exemple un faute de syntaxe, une variable non déclarée où un point virgule oublié). -Une partie compilateur qui fournira le code sous la forme d'un fichier executable. On aura besoin ensuite de telecharger la bibliothèque conio et d'inclure dans le dossier MinGW de code blocks le fichier conio.h (present normalement sur le disque dur C dans le dossier programms files) afin que les fonctions spécifiques à la bibliothèque puissent être correctement exécutées.

Sans la bibliothèque conio, le code ne pourra tout simplement pas s'executer car certaines fonctions n'étant definies que dans cette bibliohtèque, elles ne seront pas reconnus par le compilateur et un message d'erreur s'affichera disant que la fonction gotoxy n'est pas déclarée. Démarche effectuée Chaque membre du groupe a choisi un jeu: J'ai pris le poker, Lucas le blackjack et Laurent la roulette. Pour être plus efficace, nous nous sommes repartis les tâches: programmation du jeu, élaboration de l'ia, création de la page web,interface graphique... Je me suis occupé de la partie d'élaboration de l'ia ainsi que de la programmation du jeu avec Lucas. Laurent s'est occupé de l'interface graphique. En procedant ainsi, nous esperions pouvoir nous spécialiser chacun dans un domaine et ainsi ne pas avoir à apprendre chacun le langage C++ en plus de devoir s'occuper de l'interface graphique. Il s'est malheureusement avéré que, ce projet initiale était beaucoup trop conséquent pour pouvoir être rendu en respectant les délais imposés. Le reste du groupe et moi nous nous sommes donc rabattus sur le jeu de blackjack et puisque nous avons abandonné le thème casino, Laurent est parti sur un jeu de type Icopter, qui necéssite principalement une bonne interface graphique. Nous sommes donc partis sur la création d'un jeu de BlackJack en utilisant seulement la console pour les graphismes. Nous avons commencé à mettre en oeuvre les fonctions principales (telle que celle qui faisait jouer l'ordinateur, ou encore celle qui distribuait le jeu...).

Cependant, notre manque de pratique en la matière nous as beaucoup ralenti, et notre temps étant limité, nous avons choisi de modifier notre projet et de nous contenter de reprendre un code source sur internet pour le modifier et le commenter. Les modifications apportées sur le jeu tiennent principalement des règles qui etaient fausses, quelques couleurs qui apparaissent sur les fenêtres. Nous avons donc un jeu de Blackjack fonctionnel en couleur comme projet final avec un jeu Icopter, le tout mis en ligne et disponible sur une page web. Dimension collaborative, travail d'équipe au cours du projet. Comme dit précedemment, nous nous sommes repartis les tâches: ayant des notions de base en programmation, j'ai aidé mes camarades dans tout le domaine élaboration d'algorithme et fonctionnement du langage C++. Il a été cependant difficile de nous organiser car nous pouvions difficilement nous réunir de manière régulière. Nous avons longuement échanger durant ce projet tout d'abord pour en determiner la nature mais ensuite pour résoudre ensemble les problèmes techniques auxquels nous avons du faire face. La repartition des tâches semblait une stratégie efficace et nous as permis d'eviter le ralentissement complet du projet a la moindre difficultée rencontrée. Cependant elle-ci a eu comme inconvenient le fait de ne pouvoir aider son camarade que de façon limitée lorsque celui-ci rencontrait un obstacle important, sous peine de ralentir l'ensemble du projet.

Commentaire des fonctions clés du code source Parmi les fonctions clés du code dans un jeu de blackjack, il y a: -la fonction ini_jeu, qui permet de determiner les cartes du paquets (nombre, type, nom...), de les distribuer a chaque joueur au hasard et en un seul exemplaire, en nombre correct. C'est une fonction très importante car elle possède même un fichier qui lui est propre, le header,, c'est à dire un fichier non compris dans le fichier principale (appelé main ). Cela permet ainsi au programmeur de l'appeler quand il en a besoin mais de pouvoir également la retrouver et la modifier facilement si nécessaire. Elle utilise elle même une plusieurs fonctions prédefinis dans les bibliothèques inclues au début du programme. La fonction qui tient le rôle du croupier est en effet la plus délicate car, si elle ne nécessite pas une maitrise particulière du langage C++, elle nécessite cependant une plus grande reflexion quant a son fonctionnement: pour imiter un humain, le programmeur doit comprendre son mode de reflexion et pouvoir le retranscrire a travers des lignes de code. Cela est particulièrement complexe A défaut d'être capable de créer une veritable intelligence artificielle, je peux cependant faire un croupier qui donnera l'illusion de reflechir a son adversaire, et qui sera imprevisible mais coherente, dans le sens ou au lieu de chercher a lui faire simplement tirer une carte au hasard, on tiendra quand même compte de la main distribuée et des probabilitées de gagner. Par exemple: (on perd lorsque on a un total supérieur à 21 et chaque carte vaut son

propre nombre; toutes les têtes valent 10) if(scorecarte>=17) { check(); } else if(scorecarte>14 && scorecarte<17) { int NbAleatoire = rand() % 10 + 1; if (NbAleatoire >= 4) { draw_a_card(); } Ce morceau de fonction très simple à donc pour but de faire checker le croupier si son score est superieur a 17 mais si le nombre est compris entre 14 et 17, alors il aura 60% de chance de tirer une carte et 40 % de ne rien faire. On obtient donc bien un joueur qui imite de maniere simpliste le raisonnement humain: en effet, un humain aura de plus en plus tendance a checker si son jeu possède un score élevé. Bien sur, cela n'a rien à voir avec une réelle l'intelligence artificielle, mais celle-ci n'a pas encore été atteinte jusqu'a maintenant. On notera l'existence de plusieurs autres fonctions importantes telle que fin_du_jeu(), ou message_effect() qui gère tout l'affichage des fenêtres sur le programme, mais elles sont trop longues et trop nombreuses pour être expliquées ici.

ANNEXE: checker: Au blackjack, arreter de piocher des cartes, et donc figer son score jusqu'a la fin de la partie header: Fichier annexe au code source principale dans lequel est determiné plusieurs fonctions utiles mais qui seraient encombrantes et rendraient le programmes peut lisibles si elles se situaient toutes dans le main fonction main: C'est la fonction dans laquelle on fait interagir toutes les fonctions entre elles. Leur combinaison permet au jeu de se derouler correctement (pour les petits programmes, tout le code se fait dans le main) GDD: Game Design Document,c'est une sorte de sommaire qui permet de poser tous les objectifs à réaliser. Elle synthestise le principe du jeu et permet au programmeur de suivre une ligne rouge. IDE: Environement de développement, l'ide est le logiciel dans lequel on developpera le programme. Lien du code source pris sur internet : http://codes-sources.commentcamarche.net/source/21380-un-petit-blackjack-interfacedos-dev-c-4auteur