Tutorial Project. Release 7. Class Computer0

/****************************************************** Class computer0

Predicate SuccessfullStep implementation Written by Elena Efimova class computer0:player open core predicates getPlayerDescriptor:(game::language_D)->string Descriptor. end class computer0 implement computer0 inherits genericComputer open core clauses new:- PolyLineBraneObj=polylineStrategy0::new, setpolylineStrategy(PolyLineBraneObj). clauses getPlayerDescriptor(game::en)=polylineStrategy0::playerDescriptorEn_C. getPlayerDescriptor(game::ru)=polylineStrategy0::playerDescriptorRu_C. end implement computer0 /****************************************** Class polylineStrategy0 class polylineStrategy0:polylineStrategy open core

constants playerDescriptorEn_C="Computer0: Unlimited Depth. Despair move - first possible in the list". playerDescriptorRu_C="Computer0: Неограниченный поиск. Ход отчаяния - по возможному правилу". end class polylineStrategy0 implement polylineStrategy0 open core, exception facts genericComputer_V:genericComputer:=erroneous. clauses setGenericComputer(GenericComputerObj):- genericComputer_V:=GenericComputerObj. clauses successfulStep(PolyLine)=BestMove:- BestMove=successfulStep1(PolyLine), !.   successfulStep(PolyLine)=SomeMove:- genericComputer_V:stepCandidate(PolyLine, _PolyLine1,SomeMove), !. predicates successfulStep1:(juniourJudge::cell* PolyLine)->juniourJudge::cell determ. clauses successfulStep1(PolyLine)=BestMove:- genericComputer_V:stepCandidate(PolyLine, _PolyLine1,BestMove), list::isMember(BestMove, PolyLine), !.   successfulStep1(PolyLine)=Cell:- genericComputer_V:stepCandidate(PolyLine, PolyLine1,Cell), not(_=successfulStep1(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 polylineStrategy0

Ползунок7. Класс Computer0