<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html lang="en" dir="LTR"> <head> <!-- $Id: header.html,v 1.5 2004/06/12 01:58:25 sbooth Exp $ --> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>cgicc: cardgame.cpp File Reference</title> <link rev="made" href="mailto:bug-cgicc@gnu.org" /> <link href="doxygen.css" rel="stylesheet" type="text/css" /> <link href="cgicc-doc.css" rel="stylesheet" type="text/css" /> </head> <body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>cardgame.cpp File Reference</h1>GNU cgicc Card Game application. <a href="#_details">More...</a> <p> <code>#include <iostream></code><br> <code>#include <vector></code><br> <code>#include <iterator></code><br> <code>#include <string></code><br> <code>#include <cstdlib></code><br> <code>#include <ctime></code><br> <code>#include <sstream></code><br> <code>#include <fstream></code><br> <code>#include <queue></code><br> <code>#include <algorithm></code><br> <code>#include "<a class="el" href="CgiDefs_8h_source.html">cgicc/CgiDefs.h</a>"</code><br> <code>#include "<a class="el" href="Cgicc_8h_source.html">cgicc/Cgicc.h</a>"</code><br> <code>#include "<a class="el" href="HTTPHTMLHeader_8h_source.html">cgicc/HTTPHTMLHeader.h</a>"</code><br> <code>#include "<a class="el" href="HTMLClasses_8h_source.html">cgicc/HTMLClasses.h</a>"</code><br> <code>#include "<a class="el" href="HTTPCookie_8h_source.html">cgicc/HTTPCookie.h</a>"</code><br> <p> <a href="cardgame_8cpp_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structdatasplayer.html">datasplayer</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A data model for the player. <a href="structdatasplayer.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structdatasgame.html">datasgame</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A data model for the games. <a href="structdatasgame.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Namespaces</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html">CardGameTools</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Contain all the functions to the coding game. <br></td></tr> <p> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f78ca952dc46add50862ed7c65c1969"></a><!-- doxytag: member="cardgame.cpp::COOKIE_NAME" ref="8f78ca952dc46add50862ed7c65c1969" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>COOKIE_NAME</b> "ELPIELOJUEGO"</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="60745c5a9318e8e8e1e92a1f55346f18"></a><!-- doxytag: member="cardgame.cpp::COOKIE_FILE_NAME" ref="60745c5a9318e8e8e1e92a1f55346f18" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>COOKIE_FILE_NAME</b> "sessions.tmp"</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="78187469095c1716c1155242e2639ae6"></a><!-- doxytag: member="cardgame.cpp::GAME_FILE_NAME" ref="78187469095c1716c1155242e2639ae6" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>GAME_FILE_NAME</b> "games.tmp"</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="69aa2ee0d1ba68f2d6a8965eaa734100"></a><!-- doxytag: member="cardgame.cpp::MAX_GAME" ref="69aa2ee0d1ba68f2d6a8965eaa734100" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>MAX_GAME</b> 10</td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#72303f6bb4da46088a162e104baea48a">CardGameTools::convertStructToString</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *pPlayer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate a data in a single line from the data of the player. <a href="#72303f6bb4da46088a162e104baea48a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structdatasplayer.html">datasplayer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#991f73f078a31a0a16245db5cb8e57bd">CardGameTools::convertStringToStuct</a> (string pPlayer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate a <a class="el" href="structdatasgame.html" title="A data model for the games.">datasgame</a> struct from a single line. <a href="#991f73f078a31a0a16245db5cb8e57bd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#d50d7fa03c5023b445b33705c09566b8">CardGameTools::getNUMCookie</a> (std::vector< <a class="el" href="classcgicc_1_1HTTPCookie.html">HTTPCookie</a> > pCookieVector)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the cookie of the game from the list of the cookies. <a href="#d50d7fa03c5023b445b33705c09566b8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#fd019ba73719b7ce9fa3d61bffc3ecfc">CardGameTools::getValue</a> (string pName)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get all personnal information from the cookie's Id. <a href="#fd019ba73719b7ce9fa3d61bffc3ecfc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#841d2554cf28f1b108a141e5d6819ba3">CardGameTools::getFileGame</a> (string pName)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get all game information from the name of the player. <a href="#841d2554cf28f1b108a141e5d6819ba3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structdatasgame.html">datasgame</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#190b838fbbb6305e7a750fe542912b20">CardGameTools::getGame</a> (string pName)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert the data to the <a class="el" href="structdatasgame.html" title="A data model for the games.">datasgame</a> struct. <a href="#190b838fbbb6305e7a750fe542912b20"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#25f615ce8d32e72637560aabd8833227">CardGameTools::writeValue</a> (string pName, string pValue)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write data in the cookie file. <a href="#25f615ce8d32e72637560aabd8833227"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#392443dca7f6fcb831dcd061ca94a2f3">CardGameTools::writeFileGame</a> (string pName, string pValue)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write data in the game file. <a href="#392443dca7f6fcb831dcd061ca94a2f3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#5cb76cfa8e26278ce819399543a0673e">CardGameTools::writeGame</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *pPlayer, <a class="el" href="structdatasgame.html">datasgame</a> *pGame)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write <a class="el" href="structdatasgame.html" title="A data model for the games.">datasgame</a> struct in the game file. <a href="#5cb76cfa8e26278ce819399543a0673e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#34e3bca71a5ee6d2f88005e6abc518ab">CardGameTools::generateUnicCookie</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">generate an unique id <a href="#34e3bca71a5ee6d2f88005e6abc518ab"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#467cbafd40025916ee44fdbe4a0bc4ce">CardGameTools::countGame</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read the game file and count the number of games. <a href="#467cbafd40025916ee44fdbe4a0bc4ce"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">vector< string > * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#82aa8048b99856640bcca228ebd7c69b">CardGameTools::loadAndMixCards</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate a mixed cards list. <a href="#82aa8048b99856640bcca228ebd7c69b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#fec447440a32183dfbd4aa19cc035593">CardGameTools::calculateCard</a> (string pCard)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the value of the card. <a href="#fec447440a32183dfbd4aa19cc035593"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structdatasgame.html">datasgame</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#966d65ef179f72f71a5e38b5b3795fcf">CardGameTools::createGame</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a game from the data of the player. <a href="#966d65ef179f72f71a5e38b5b3795fcf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#933ea4962f0980aae5ca4ce1e82653b6">CardGameTools::drawCards</a> (vector< string > *cardList)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Draw the cards list. <a href="#933ea4962f0980aae5ca4ce1e82653b6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#410190d4b60fd5e6d777107d4fbd0f90">CardGameTools::writeWinner</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer, <a class="el" href="structdatasgame.html">datasgame</a> *pGame)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Draw the winner informations. <a href="#410190d4b60fd5e6d777107d4fbd0f90"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#7f7bc93d35d586d91f0936d334d55e63">CardGameTools::drawInfos</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Draw player informations. <a href="#7f7bc93d35d586d91f0936d334d55e63"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#2123161a35d94144aeb726a0b44a5113">CardGameTools::drawPlayers</a> (<a class="el" href="structdatasgame.html">datasgame</a> *pGame)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Draw players game informations. <a href="#2123161a35d94144aeb726a0b44a5113"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#bda97ad8b16c553d12994a3d005c25c1">CardGameTools::drawCardInPlay</a> (<a class="el" href="structdatasgame.html">datasgame</a> *pGame)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Draw the cards in the table. <a href="#bda97ad8b16c553d12994a3d005c25c1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#d4133b93a93ce4cacc3a5b7ca0efc126">CardGameTools::drawPlayerCards</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Draw the cards of the player. <a href="#d4133b93a93ce4cacc3a5b7ca0efc126"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#90577d98ea437314196fef1ccd40b1ea">CardGameTools::playACard</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer, <a class="el" href="structdatasgame.html">datasgame</a> *readedGame, string *card)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The algorithm when a card is played. <a href="#90577d98ea437314196fef1ccd40b1ea"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#49f4ad5adce087a27e4b00c29bdd71b4">CardGameTools::turnPlayers</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer, <a class="el" href="structdatasgame.html">datasgame</a> *readedGame)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Change the hand in the game. <a href="#49f4ad5adce087a27e4b00c29bdd71b4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#c5dd6196d07df0a2034eadd3fc1cae6b">CardGameTools::testCard</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer, <a class="el" href="structdatasgame.html">datasgame</a> *readedGame, string *card)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if the card is playable. <a href="#c5dd6196d07df0a2034eadd3fc1cae6b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#bac281c9baaa2adcea9df78b012051fa">CardGameTools::IAPlay</a> (<a class="el" href="structdatasgame.html">datasgame</a> *readedGame, int pId)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">AI algorithme for one AI player. <a href="#bac281c9baaa2adcea9df78b012051fa"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCardGameTools.html#c92c8b5687cc611e0d0edfb59e6fc783">CardGameTools::gameRules</a> (<a class="el" href="structdatasplayer.html">datasplayer</a> *vPlayer, string *action, string *card)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The rules Algorithm. <a href="#c92c8b5687cc611e0d0edfb59e6fc783"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cardgame_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The main function. <a href="#3c04138a5bfe5d72780bb7e82a18e627"></a><br></td></tr> </table> <hr><h2>Detailed Description</h2> GNU cgicc Card Game application. <p> Tests and demonstrates access of form data, cookie, persistance using the GNU cgicc library. <p>Definition in file <a class="el" href="cardgame_8cpp_source.html">cardgame.cpp</a>.</p> <hr><h2>Function Documentation</h2> <a class="anchor" name="3c04138a5bfe5d72780bb7e82a18e627"></a><!-- doxytag: member="cardgame.cpp::main" ref="3c04138a5bfe5d72780bb7e82a18e627" args="(int argc, char **argv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int main </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>argc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"> <em>argv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> The main function. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>argc</em> </td><td>: the number of parameters y </td></tr> <tr><td valign="top"></td><td valign="top"><em>argv</em> </td><td>: The parameters </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The value of the program (Ok, Not Ok, error ,...) </dd></dl> <p>Definition at line <a class="el" href="cardgame_8cpp_source.html#l01479">1479</a> of file <a class="el" href="cardgame_8cpp_source.html">cardgame.cpp</a>.</p> <p>References <a class="el" href="cardgame_8cpp_source.html#l00168">CardGameTools::convertStringToStuct()</a>, <a class="el" href="cardgame_8cpp_source.html#l00134">CardGameTools::convertStructToString()</a>, <a class="el" href="cardgame_8cpp_source.html#l01275">CardGameTools::gameRules()</a>, <a class="el" href="cardgame_8cpp_source.html#l00655">CardGameTools::generateUnicCookie()</a>, <a class="el" href="CgiEnvironment_8h_source.html#l00263">cgicc::CgiEnvironment::getCookieList()</a>, <a class="el" href="classcgicc_1_1Cgicc.html#fc96c70b4de001b9a21610447a552bb1">cgicc::Cgicc::getElement()</a>, <a class="el" href="Cgicc_8h_source.html#l00348">cgicc::Cgicc::getElements()</a>, <a class="el" href="Cgicc_8h_source.html#l00394">cgicc::Cgicc::getEnvironment()</a>, <a class="el" href="cardgame_8cpp_source.html#l00214">CardGameTools::getNUMCookie()</a>, <a class="el" href="cardgame_8cpp_source.html#l00245">CardGameTools::getValue()</a>, <a class="el" href="cardgame_8cpp_source.html#l00072">datasplayer::identifiant</a>, <a class="el" href="cardgame_8cpp_source.html#l00529">CardGameTools::writeFileGame()</a>, and <a class="el" href="cardgame_8cpp_source.html#l00512">CardGameTools::writeValue()</a>.</p> </div> </div><p> </div> <!-- $Id: footer.html,v 1.7 2004/06/12 01:58:25 sbooth Exp $ --> <hr> <address><small> <a href="http://www.cgicc.org">GNU cgicc</a> - A C++ class library for writing CGI applications<br /> Copyright © 1996 - 2004 <a href="mailto:sboothATgnuDOTorg">Stephen F. Booth</a><br /> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front Cover Texts, and with no Back-Cover Texts.<br /> Documentation generated Tue Jun 9 15:30:16 2009 for cgicc by <a HREF="http://www.doxygen.org/index.html">doxygen</a> 1.5.9 </small></address> </body> </html>