#!/usr/bin/python # -*- coding: GBK -*- #--------------------------------------------------------------------- # #--------------------------------------------------------------------- ##@package SubjectLib # @todo: ´ðÌâ¶ÁÌâ¹ÜÀíÆ÷ # # @author: panwei # @date 2011-03-31 # @version 1.0 # #ΪÁ˱ÜÃâÈ¡µ½ÏàͬÌâÄ¿µÄÇé¿ö: #Ìâ¿â·ÖΪ: ԭʼÌâ¿âºÍ¶¯Ì¬Ìâ¿â, ԭʼÌâ¿â¶ÁÈ¡ÌâÄ¿, # #1. ¶¯Ì¬Ìâ¿â ¸ù¾ÝԭʼÌâ¿âÉú³ÉËæ»úÌâ¿â #2. Ìâ¿â´Ó¶¯Ì¬Ìâ¿âÀïÃæÈ¡ #3. ÿȡһÌâ, ´Ó¶¯Ì¬Ìâ¿âÖÐɾ³ýÕâÒ»Ìâ #4. Èç¹û¶¯Ì¬Ìâ¿âÈ¡ÍêÁË, ÔòÖØÐÂÉú³É¶¯Ì¬Ìâ¿â #--------------------------------------------------------------------- """Version = 2011-03-31 17:30""" #--------------------------------------------------------------------- import ReadChConfig import ChConfig import GameWorld import copy import random #--------------------------------------------------------------------- #¹Ì̬Ìâ¿â __AllSubject = {} #¶¯Ì¬Ìâ¿â __DelicacySuject = {} #--------------------------------------------------------------------- ## Ëæ»ú»ñµÃÒ»µÀÌâÄ¿ # @param examType ´ðÌâÀàÐÍDef_Game_Exam_Type # @return Ôª×é(ID: [ÌâÄ¿ÊôÐÔ]) # @remarks º¯ÊýÏêϸ˵Ã÷. def GetSubject(examType): global __DelicacySuject if len(__AllSubject) == 0: __ReloadExamSubject() #µÚÒ»´Î¼ÓÔØÌâÄ¿,³õʼ»¯ if len(__DelicacySuject) == 0: __DelicacySuject = copy.deepcopy(__AllSubject) #»ñµÃÌâ¿â sujectDict = __DelicacySuject.get(examType) #ÅׯúÒì³£ if sujectDict == None: GameWorld.ErrLog("»ñÈ¡Ìâ¿âÒì³£ examType = %s"%(examType)) return [] #ÎÞÌâÄ¿ÁË,ÖØÐ¼ÓÔØÔ­Ê¼Ìâ¿â if len(sujectDict) == 0: __DelicacySuject = copy.deepcopy(__AllSubject) #»ñµÃÌâ¿â sujectDict = __DelicacySuject.get(examType) if len(sujectDict) == 0: GameWorld.ErrLog("Ìâ¿âÒì³£ examType = %s, ÎÞÌâÄ¿"%(examType)) return [] #Ëæ»úÕÒÒ»¸öÌâÄ¿, ²¢´ÓÁÙʱÌâ¿âÖÐɾ³ý randNum = random.choice(sujectDict.keys()) randSubjectList = [randNum, sujectDict[randNum]] sujectDict.pop(randNum) return randSubjectList #--------------------------------------------------------------------- ##ÖØÐ¼ÓÔØÌâ¿â # @param ÎÞ²ÎÊý # @return None # @remarks def __ReloadExamSubject(): global __AllSubject for examType, examName in ChConfig.Def_ExamSubjectNameDict.items(): __AllSubject.update({examType : ReadChConfig.GetEvalChConfig(examName)}) return