Difference between revisions of "Tutorial Project. Release 7. Class Computer1"
From wiki.visual-prolog.com
m |
(classInfo) |
||
Line 8: | Line 8: | ||
******************************************/ | ******************************************/ | ||
class computer1:player | class computer1:player | ||
open core | open core | ||
predicates | predicates | ||
Line 34: | Line 34: | ||
******************************************/ | ******************************************/ | ||
class polylineStrategy1:polylineStrategy | class polylineStrategy1:polylineStrategy | ||
open core | open core | ||
constants | constants | ||
Line 45: | Line 43: | ||
implement polylineStrategy1 | implement polylineStrategy1 | ||
open core, exception | open core, exception | ||
clauses | clauses |
Revision as of 14:37, 6 May 2013
Tutorial Project. Release 7 |
---|
/****************************************** Class computer1 Predicate SuccessfullStep implementation written by Elena Efimova ******************************************/ class computer1:player open core predicates getPlayerDescriptor:(game::language_D)->string Descriptor. end class computer1 implement computer1 inherits genericComputer open core clauses new():- PolyLineBraneObj=polylineStrategy1::new(), setpolylineStrategy(PolyLineBraneObj). clauses getPlayerDescriptor(game::en)=polylineStrategy1::playerDescriptorEn_C. getPlayerDescriptor(game::ru)=polylineStrategy1::playerDescriptorRu_C. end implement computer1 /****************************************** Class polylineStrategy1 ******************************************/ class polylineStrategy1:polylineStrategy open core constants playerDescriptorEn_C="Computer1: Unlimited Depth. Despair move - random". playerDescriptorRu_C="Computer1: Неограниченный поиск. Ход отчаяния - случайный". end class polylineStrategy1 implement polylineStrategy1 open core, exception clauses classInfo(className, classVersion). facts genericComputer_V:genericComputer:=erroneous. clauses setGenericComputer(GenericComputerObj):- genericComputer_V:=GenericComputerObj. clauses successfulStep(PolyLine)=BestMove:- genericComputer_V:stepCandidate(PolyLine, _PolyLine1,BestMove), list::isMember(BestMove, PolyLine), !. successfulStep(PolyLine)=Cell:- genericComputer_V:stepCandidate(PolyLine, PolyLine1,Cell), not(_=successfulStep(PolyLine1)). clauses randomStep()=Cell:- findAll(NewCell,genericComputer_V:stepCandidate(juniourJudge::polyline_P,_Polyline1, NewCell),CellCandidateListWithDuplicates), CellCandidateList=list::removeDuplicates(CellCandidateListWithDuplicates), not(CellCandidateList=[]), NoOfVariants=list::length(CellCandidateList), ChoiceNo=math::random(NoOfVariants-1), Cell=list::nth(ChoiceNo+1,CellCandidateList). end implement polylineStrategy1