当前位置: 首页>>代码示例>>C++>>正文


C++ Plateau::deplacement方法代码示例

本文整理汇总了C++中Plateau::deplacement方法的典型用法代码示例。如果您正苦于以下问题:C++ Plateau::deplacement方法的具体用法?C++ Plateau::deplacement怎么用?C++ Plateau::deplacement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Plateau的用法示例。


在下文中一共展示了Plateau::deplacement方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(void) {
	//! Déclaration des variables utiles au main
	Plateau plateau; //! Creation d'un plateau
	list<Deplacement> regulier, nulls; //! Liste temporaires de déplacements
	int tour = BLANC; //! Le premier tour sera effectué par les blancs : 0x00
	Deplacement deplacement; //! Stoque le déplacement en cours
	bool deplacementBool;

	//! Initialisation des deux joueurs IA
	IAJoueur noir(NOIR, 3);
	IAJoueur blanc(BLANC, 1);

	//! Iniialisation du plateau par defaut en le remplissant
	plateau.initialisationPlateau();

	printf("###################################################\n");
	printf("Jeux d'echec, computer vs. computeur. - m1_76\n"
			"Basé sur un algorithme d'elagage alpha-beta.\n"
			"(optimisation de l'algorithme MinMax)\n"
			"Profondeur de recherche (modifiable en dur) :\n"
			"--- NOIR : 4\n"
			"--- BLANC : 1\n"
			"ATTENTION : Etre patient, certains déplacements peuvent etre longs !\n");
	printf("###################################################\n");
	printf("##### Appuyez sur une touche pour commencer ! #####\n");
	getchar();
	for(;;) {

		//! Affichage du plateau
		plateau.affichage();

		//! Tour par tour
		if(tour)
			deplacementBool = noir.getDeplacement(plateau, deplacement);
		else
			deplacementBool = blanc.getDeplacement(plateau, deplacement);

		if(!deplacementBool) //! Si aucun déplacement n'est possible:deplacementBool=0
			break;

		//! Si un déplacement est trouvé alors on le get
		regulier.clear();
		nulls.clear();
		plateau.getDeplacements(tour, regulier, regulier, nulls);

		//Execution des mouvements nulls di de maintenance
		for(list<Deplacement>::iterator i=nulls.begin(); i!=nulls.end(); ++i){ //! On parcours la liste de déplacement nulls
			plateau.deplacement(*i);
		}

		//! On vient executer le déplacement sur le plateau
		plateau.deplacement(deplacement);

		//! On affiche le déplacement au dessu du plateau
		deplacement.affichage();

		//! On vient passer le tour à l'adverssair : 0x10 ^ tour
		tour = CHANGE_COULEUR(tour);
	}

	//! Get le Status du tour pour voir si il y a echec ou pat
	JoueurEchec::Status status = plateau.getJoueurStatus(tour);

	switch(status) //! En fonction du status du joueur en cour
	{
		case JoueurEchec::EchecMat:
			printf("EchecMat -- Les Noirs ont gagné\n");
			break;
		case JoueurEchec::Pat:
			printf("Pat -- Aucun vainqueur\n");
			break;
	}
}
开发者ID:Xeroxy,项目名称:chess-ASCII-cpp,代码行数:73,代码来源:jouer.cpp


注:本文中的Plateau::deplacement方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。