Exemple #1
0
def CallMySql2():
    conn = pymysql.connect(host='localhost', port=3306, user='******', passwd='244466666', db='lsj', charset='utf8') #改为自己的数据库密码

    cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
    sql = 'select * from poetry WHERE id = {}'.format(random.randint(1,449))
    # sql = 'select * from poetry WHERE id = {}'.format(268)
    cur.execute(sql)
    poetry = cur.fetchall()
    poetry = poetry[0]
    poetry = {i:poetry[i] for i in poetry if poetry[i] != 'NULL'}
    poetry_len = 0
    for i in range(10):
        sentence = 'sentense_' + str(i + 1)
        if sentence in poetry:
            poetry_len += 1
    while 1:
        key = random.randint(1,poetry_len)
        if 'sentense_' + str(key) in poetry and 'yiwen_' + str(key) in poetry:
            break

    # return key_word,random_poetry['name'],sentence
    poetry['yiwen_'+str(key)] = langconv.Converter('zh-hant').convert(poetry['yiwen_'+str(key)])
    poetry['name'] = langconv.Converter('zh-hant').convert(poetry['name'])
    poetry['sentense_'+str(key)] = langconv.Converter('zh-hant').convert(poetry['sentense_'+str(key)])
    return poetry['yiwen_'+str(key)],poetry['name'],poetry['sentense_'+str(key)]
Exemple #2
0
 def doconvert(self, target='SimpleChinese'):
     '''too slow ,discard'''
     if target == 'SimpleChinese':
         self.result = langconv.Converter('zh-hans').convert(self.result)
     elif target == 'TraditionChinese':
         self.result = langconv.Converter('zh-hant').convert(self.result)
     else:
         pass
Exemple #3
0
 def selection(self):
     '''模式选择界面'''
     saying_poet = SayPoet()
     clicking_poet = ClickPoet()
     you_say_i_guess = YouSayIGuess()
     global is_running, mode_select_interface
     if is_running:
         mode_select_interface = tkinter.Tk()
         mode_select_interface.title(
             langconv.Converter('zh-hant').convert("游戏模式选择"))
         mode_select_interface.geometry("400x400+500+150")
         img = Image.open("./image/背景3.jpg")
         photo = ImageTk.PhotoImage(img)
         bg_photo = tkinter.Canvas(mode_select_interface,
                                   width=400,
                                   height=400)
         bg_photo.create_image(350, 163, image=photo)
         bg_photo.pack()
         mode1 = tkinter.Button(
             mode_select_interface,
             text=langconv.Converter('zh-hant').convert("出口成诗"),
             font=('楷体', 18),
             bg='skyblue',
             activebackground='limegreen',
             command=saying_poet.run)
         mode1.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.15)
         mode2 = tkinter.Button(
             mode_select_interface,
             text=langconv.Converter('zh-hant').convert("点字成诗"),
             font=('楷体', 18),
             bg='skyblue',
             activebackground='limegreen',
             command=clicking_poet.run)
         mode2.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.35)
         mode3 = tkinter.Button(
             mode_select_interface,
             text=langconv.Converter('zh-hant').convert("你说我猜"),
             font=('楷体', 18),
             bg='skyblue',
             activebackground='limegreen',
             command=you_say_i_guess.run)
         mode3.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.55)
         exit0 = tkinter.Button(
             mode_select_interface,
             text=langconv.Converter('zh-hant').convert("退出游戏"),
             font=('楷体', 18),
             bg='skyblue',
             activebackground='limegreen',
             command=self.exit_mode_select)
         exit0.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.75)
         mode_select_interface.protocol("WM_DELETE_WINDOW",
                                        self.exit_mode_select)
         mode_select_interface.mainloop()
Exemple #4
0
 def endElement(self, tag):
     if (self.tag == None):
         self.content = ''
         self.tag = None
         return
     if (self.tag == 'title' and re.search(r':', self.content)):
         self.content = ''
         self.tag = None
         return
     self.content = langconv.Converter('zh-hans').convert(self.content)
     if (self.tag == 'title'):
         self.title_flag = True
         self.content = self.content.lstrip().rstrip()
         self.title = self.content
         self.count += 1
         self.fout.write(self.content + '\n')
         if (self.count % 1000 == 0):
             print(self.count)
         try:
             self.cursor.execute("INSERT INTO main (title) VALUES (%s) ",
                                 (self.content))
         except pymysql.err.InternalError as e:
             return
         except pymysql.err.DataError as e:
             return
     self.tag = None
def cht_to_chs(line):
    """
    转换繁体到简体
    """
    line = conv.Converter('zh-hans').convert(line)
    line.encode('utf-8')
    return line
Exemple #6
0
 def test_get_sentence(self):
     '''get_sentence的测试函数'''
     self.poet_game.get_sentence()
     self.assertEqual(
         langconv.Converter('zh-hans').convert('寥落古行宮'),
         self.poet_game.right_answer[len(self.poet_game.right_answer) - 1],
         '不匹配')
Exemple #7
0
    def get_disturb(self, number, len_question):
        '''获得对诗句进行干扰的汉字

        #随机汉字
        i = 0
        while i < len_disturb:
            head = random.randint(0xb0, 0xf7)
            body = random.randint(0xa1, 0xfe)
            val = f'{head:x} {body:x}'
            word = bytes.fromhex(val).decode('gb2312', errors='ignore') #或者用decode('gbk')
            self.questions[number].append(word)
            i += 1
        '''
        len_disturb = 12 - len_question
        while 1:
            random_poet = random.randint(0, len(self.all_poet) - 1)
            if random_poet not in self.poet_number:
                sentence_amount = len(self.all_poet[random_poet]['paragraphs'])
                if sentence_amount != 0:
                    random_sentence = random.randint(0, sentence_amount - 1)
                    sentences = re.findall(r'[\u4E00-\u9FA5]+', self.all_poet[random_poet]['paragraphs'][random_sentence])
                    if len(sentences) > 0:
                        i = 0
                        j = 0
                        while len_disturb != 0:
                            if i >= len(sentences[0]) or j == 4:
                                break
                            if sentences[0][i] not in self.questions[number]:
                                word = langconv.Converter('zh-hant').convert(sentences[0][i])
                                self.questions[number].append(word)
                                len_disturb -= 1
                                j += 1
                            i += 1
                        if len_disturb == 0:
                            break
Exemple #8
0
 def parse(self, response):
     filename = "data/" + urllib.parse.unquote(
         response.url.split("=")[-1]) + '.html'
     with open(filename, 'w') as f:
         text = response.body.decode('utf-8')
         print(text)
         f.write(langconv.Converter('zh-hans').convert(text))
         '''
Exemple #9
0
 def get_links(self, tt):
     try:
         lst = wikipedia.page(title=tt).links
         return [langconv.Converter('zh-hans').convert(w) for w in lst]
     except wikipedia.exceptions.PageError as e:
         return []
     except wikipedia.exceptions.DisambiguationError as e:
         return []
Exemple #10
0
def Traditional2Simplified(sentence):
    """
    将sentence中的繁体字转为简体字
    :param sentence:
    :return:返回转化后的简体
    """
    sentence = langconv.Converter('zh-hans').convert(sentence)
    return sentence
Exemple #11
0
def Traditional2Simplified(sentence):
    '''
    将sentence中的繁体字转为简体字
    :param sentence: 待转换的句子
    :return: 将句子中繁体字转换为简体字之后的句子
    '''
    sentence = langconv.Converter('zh-hans').convert(sentence)
    return sentence
 def traditional2simplified(self, text):
     '''将sentence中的繁体字转为简体字
         param: text
         return: 繁体字转换为简体字之后的文本
     '''
     if text == "":
         return text
     text = langconv.Converter('zh-hans').convert(text)
     return text
Exemple #13
0
 def get_time(self):
     end_time = time.time()
     rest_time = self.time_limit - int(end_time - self.start_time)
     self.var.set(
         langconv.Converter('zh-hant').convert('剩余时间:' + str(rest_time) +
                                               '秒'))
     if rest_time == 0:
         self.time_out = 1
         self.guess_interface.destroy()
     else:
         self.guess_interface.after(1000, self.get_time)
Exemple #14
0
def ChangeFileEndcoding(filepath):
    if __addon__.getSetting("transUTF8") == "true" and os.path.splitext(
            filepath)[1] in SUBTYPE_EXT:
        data = open(filepath, 'rb').read()
        enc = chardet.detect(data)['encoding']
        if enc:
            data = data.decode(enc, 'ignore')
            # translate to Simplified
            if __addon__.getSetting("transJianFan") == "1":
                data = langconv.Converter('zh-hans').convert(data)
            # translate to Traditional
            elif __addon__.getSetting("transJianFan") == "2":
                data = langconv.Converter('zh-hant').convert(data)
            data = data.encode('utf-8', 'ignore')
        try:
            local_file_handle = open(filepath, "wb")
            local_file_handle.write(data)
            local_file_handle.close()
        except:
            log(sys._getframe().f_code.co_name,
                "Failed to save subtitles to '%s'" % (filepath))
Exemple #15
0
 def submit_response(self):
     '''提交回答并处理'''
     number = 0
     for i in range(self.say_poet.question_amount):
         if self.answering_state[i] == 1:
             number = i
     answers = self.answer.get()
     answer_right = self.say_poet.verification(number, answers)
     if answer_right:
         self.answering_state[number] = 2
         self.right_amount += 1
         messagebox.showinfo(
             message=langconv.Converter('zh-hant').convert("回答正确!"))
         for i in range(self.say_poet.question_amount):
             if self.answering_state[i] == 0:
                 self.answering_state[i] = 1
                 break
     else:
         messagebox.showinfo(
             message=langconv.Converter('zh-hant').convert("回答错误!"))
     self.say_poet_interface.destroy()
def _tradition_2_simple(sent):
    """ Convert Traditional Chinese to Simplified Chinese """
    # Please download langconv.py and zh_wiki.py first
    # langconv.py and zh_wiki.py are used for converting between languages
    try:
        import langconv
    except ImportError as e:
        error = "Please download langconv.py and zh_wiki.py at "
        error += "https://github.com/skydark/nstools/tree/master/zhtools."
        print(str(e) + ': ' + error)
        sys.exit()

    return langconv.Converter('zh-hans').convert(sent)
Exemple #17
0
 def wiki_analysis(self):
     self.nodes = []
     self.links = []
     for w in self.wlist:
         print w
         try:
             text = wikipedia.page(w).content
             text = langconv.Converter('zh-hans').convert(text)
         except wikipedia.exceptions.PageError, e:
             self.nodes.append({'id': 'w', 'wiki': None})
             continue
         except wikipedia.exceptions.DisambiguationError:
             self.nodes.append({'id': 'w', 'wiki': 'Too many meaning'})
             continue
Exemple #18
0
 def parse(self, response):
     #print(response.url)
     search = urllib.parse.unquote(response.url.split("=")[-1])
     text = response.body.decode('utf-8')
     #print(text)
     res = re.findall(r'#REDIRECT\[\[(\S*)\]\]', text)
     API_URL = "https://zh.wikipedia.org/w/api.php?action=query&format=xml&prop=revisions&rvprop=content&titles=%s"
     if (len(res) != 0):
         print("Redirected to ", res[0])
         return scrapy.Request(API_URL % res[0], callback=self.parse)
     item = WikiScrapyItem()
     item['search'] = search
     item['text'] = langconv.Converter('zh-hans').convert(text)
     with open('data/ans.txt', 'a') as f:
         sss = json.dumps(
             {
                 'search': search,
                 'text': langconv.Converter('zh-hans').convert(text)
             },
             ensure_ascii=False)
         f.write(sss + '\n')
     yield item
     '''
Exemple #19
0
 def verification(self, number, answer):
     re_answer = re.findall(r'[\u4E00-\u9FA5]+', answer)
     for i in range(len(self.all_poet)):
         for j in range(len(self.all_poet[i]['paragraphs'])):
             if self.all_poet[i]['chapter'].find(self.questions[number]) != -1 \
                     or self.all_poet[i]['paragraphs'][j].find(self.questions[number]) != -1:
                 sentence = re.findall(r'[\u4E00-\u9FA5]+',
                                       self.all_poet[i]['paragraphs'][j])
                 sentence = langconv.Converter('zh-hant').convert(sentence)
                 if re_answer == sentence:
                     self.answers[number] = answer
                     self.unanswered[number] = 0
                     return True
     return False
Exemple #20
0
 def get_question(self):
     '''获得题目'''
     all_question = []
     with open('./poet/question.txt', encoding="utf-8") as load_question:
         for row in load_question:
             word = row.replace('\n', '').replace('\r', '')
             all_question.append(word)
     while 1:
         random_poet = random.randint(0, len(all_question) - 1)
         if all_question[random_poet] not in self.questions:
             all_question[random_poet] = langconv.Converter(
                 'zh-hant').convert(all_question[random_poet])
             self.questions.append(all_question[random_poet])
         if len(self.questions) == self.question_amount:
             break
Exemple #21
0
def preProcess(uStr):
    ustring = uStr.replace(' ', '')
    # ret=string2List(ustring.decode('utf-8'))
    ret = alph.string2List(ustring)
    msg = ''
    for key in ret:
        key = converter.Converter('zh-hans').convert(key)
        msg += key
        # ustring =   msg.encode('utf-8')
    ustring = msg
    ustring = ustring.replace('x元', '价钱')
    ustring = ustring.replace('x日', '日期')
    ustring = ustring.replace('x折', '打折')
    ustring = ustring.replace('www', '网站')

    return ustring
Exemple #22
0
    def get_sentence(self):
        '''获得一个诗句

        #从58000首诗里随机获取题目的代码
        while 1:
            random_poet0 =  random.randint(0, 57999)
            if random_poet0 not in self.poet_number:
                self.poet_number.append(random_poet0)
                break
        random_poet = self.poet_number[len(self.poet_number) - 1]
        address = './poet/poet.song.' + str(int(random_poet // 1000 * 1000)) + '.json'
        with open(address, 'r', encoding='utf-8') as load_f:
            load_dict = json.load(load_f)
            sentence_amount = len(load_dict[int(random_poet % 1000)]['paragraphs'])
            random_sentence = random.randint(0, sentence_amount - 1)
            sentences = re.findall(r'[\u4E00-\u9FA5]+',
                                  load_dict[int(random_poet % 1000)]['paragraphs'][random_sentence])
            random_sentence = random.randint(0, len(sentences) - 1)
            sentence = sentences[random_sentence]
        self.right_answer.append(sentence)
        words = re.findall(r'[\u4E00-\u9FA5]', sentence)
        self.questions.append(words)
        '''
        address = './poet/tssbs.json' #从唐诗三百首里随机获取题目的代码
        with open(address, 'r', encoding='utf-8') as load_f:
            self.all_poet = json.load(load_f)
        while 1:
            random_poet = random.randint(0, len(self.all_poet) - 1)
            if random_poet not in self.poet_number:
                self.poet_number.append(random_poet)
                break
        sentence_amount = len(self.all_poet[random_poet]['paragraphs'])
        random_sentence = random.randint(0, sentence_amount - 1)
        sentences = re.findall(r'[\u4E00-\u9FA5]+',
                               self.all_poet[self.poet_number[len(self.poet_number) - 1]]['paragraphs'][random_sentence])
        if len(sentences) == 1:
            random_sentence = 0
        else:
            random_sentence = random.randint(0, len(sentences) - 1)
        sentence = sentences[random_sentence]
        sentence = langconv.Converter('zh-hant').convert(sentence)
        self.right_answer.append(sentence)
        self.poet_name.append(self.all_poet[self.poet_number[len(self.poet_number) - 1]]['chapter'])
        words = re.findall(r'[\u4E00-\u9FA5]', sentence)
        self.questions.append(words)
Exemple #23
0
def get_words(msg):
    """
    split a message into a set of keywords
    Input:
        message: String
    Return:
        words_set:list of keywords
    """
    #convert msg into simplified chinese
    langconv.Converter('zh-hans').convert(msg.decode('utf-8'))
    msg = msg.replace('\n', '')
    #ignore upper and lower case
    msg = msg.lower()
    #separate into a list of keywords using jieba
    wordslist_org = list(jieba.cut(msg, cut_all=False))
    words_set = set(wordslist_org)
    words_set.discard(' ')
    words_set = filter(None, words_set)

    return words_set
Exemple #24
0
def getDBNews():
	conn = pymysql.Connect(host=host,port=port,user=user,password=password,charset=charset,db=db)
	if not conn: return False
	cursor = conn.cursor()
	result = cursor.execute("select * from news_chinese")
	results = cursor.fetchall()
	fileNews = open(cutFileName,'w', encoding = 'utf8')

	for rs in results:
		l = []
		if not rs[3]: continue
		news = rs[3].strip()
		if not news: continue
		text = "".join(re.findall(r'[\d|\w]+',news))#������ϴ
		text = langconv.Converter('zh-hans').convert(text)#����ת��
		cut_text = list(jieba.cut(text))#�д�
		for term in cut_text:
			l.append(term)
		fileNews.write(" ".join(l) + '\n')
	fileNews.close()    
	conn.close()
	return True
def process(line):
    """Convert a line content traditional chinese character to 
	a line only have simple chinese

	Args:
		line: a line decoded

	Returns:
		a line trans to simple chinese

	Raises:
		print error message
	"""
    try:
        simple_version = langconv.Converter('zh-hans').convert(line)
        return simple_version
    except:
        err_line = "Error occur in traditional to simple : " + \
            line.encode(_ENCODE) + os.linesep
        err_msg = "traceback info: " + str(traceback.format_exc())
        sys.stderr.write(err_line)
        sys.stderr.write(err_msg)
        return False
Exemple #26
0
 def simple(self, ustring):                           # translate to simple
     return langconv.Converter('zh-hans').convert(ustring.decode('utf-8'))
Exemple #27
0
 def guess_display(self):
     '''你说我猜界面'''
     score = ''
     if self.question_number > 0:
         if re.findall(
                 r'[\u4E00-\u9FA5]+',
                 self.answers[self.question_number - 1]) == re.findall(
                     r'[\u4E00-\u9FA5]+',
                     self.right_answer[self.question_number - 1][1]):
             score += '上一题回答正确;'
         else:
             score += '上一题回答错误;'
     grade = self.right_amount / self.question_amount * 100
     score += '当前得分为:{0:.1f}分'.format(grade)
     score = langconv.Converter('zh-hant').convert(score)
     self.guess_interface = tkinter.Tk()
     self.guess_interface.title(
         langconv.Converter('zh-hant').convert("你说我猜"))
     self.guess_interface.geometry("400x400+500+150")
     img = Image.open("./image/背景5.jpg")
     photo = ImageTk.PhotoImage(img)
     bg_photo = tkinter.Canvas(self.guess_interface, width=400, height=400)
     bg_photo.create_image(250, 300, image=photo)
     bg_photo.create_text(150,
                          70,
                          text=score,
                          fill='black',
                          font=("宋体", 12))
     bg_photo.create_text(
         135,
         260,
         text=langconv.Converter('zh-hant').convert('请猜出上方内容所描述的诗句:'),
         fill='black',
         font=("宋体", 14))
     bg_photo.pack()
     p1 = ttk.Progressbar(self.guess_interface, mode="determinate")
     p1.place(relwidth=1, relheight=0.02, relx=0, rely=0.01)
     p1["maximum"] = self.question_amount
     p1["value"] = self.question_number + 1
     self.var = tkinter.StringVar()
     w = tkinter.Label(
         self.guess_interface,
         text=langconv.Converter('zh-hant').convert("剩余时间:" +
                                                    str(self.time_limit) +
                                                    "秒"),
         textvariable=self.var,
         font=("宋体", 12),
         bg='lightcyan',
     )
     self.var.set(
         langconv.Converter('zh-hant').convert("剩余时间:" +
                                               str(self.time_limit) + "秒"))
     w.place(relwidth=0.32, relheight=0.06, relx=0.01, rely=0.04)
     label2 = tkinter.Label(
         self.guess_interface,
         text=langconv.Converter('zh-hant').convert(
             '译文:' + self.questions[self.question_number]),
         font=("宋体", 14),
         wraplength=360,
         bg='lightsteelblue')
     label2.place(relwidth=1, relheight=0.3, relx=0, rely=0.25)
     next_question = tkinter.Button(
         self.guess_interface,
         text=langconv.Converter('zh-hant').convert('下一题'),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.next_question_response)
     next_question.place(relwidth=0.2, relheight=0.08, relx=0.79, rely=0.04)
     self.answer = tkinter.Entry(self.guess_interface, font=("宋体", 14))
     self.answer.place(relwidth=0.7, relheight=0.1, relx=0, rely=0.7)
     submit_button = tkinter.Button(
         self.guess_interface,
         text=langconv.Converter('zh-hant').convert('提交'),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.submit_response)
     submit_button.place(relwidth=0.28, relheight=0.1, relx=0.71, rely=0.7)
     see_right_answer = tkinter.Button(
         self.guess_interface,
         text=langconv.Converter('zh-hant').convert('查看答案'),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.show_right_answer)
     see_right_answer.place(relwidth=0.3,
                            relheight=0.1,
                            relx=0.35,
                            rely=0.9)
     exit0 = tkinter.Button(
         self.guess_interface,
         text=langconv.Converter('zh-hant').convert("退出游戏"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.exit_guess)
     exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9)
     back0 = tkinter.Button(
         self.guess_interface,
         text=langconv.Converter('zh-hant').convert("返回首页"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.back_mode_selection)
     back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9)
     self.guess_interface.protocol("WM_DELETE_WINDOW", self.exit_guess)
     self.get_time()
     self.guess_interface.mainloop()
Exemple #28
0
 def click_poet_display(self):
     '''点字成诗界面'''
     background_color = ['skyblue', 'grey']
     score = ''
     if self.question_number > 0:
         if self.answers[self.question_number -
                         1] == self.click_poet.right_answer[
                             self.question_number - 1]:
             score += '上一题回答正确;'
         else:
             score += '上一题回答错误;'
     grade = self.right_amount / self.click_poet.question_amount * 100
     score += '当前得分为:{0:.1f}分'.format(grade)
     score = langconv.Converter('zh-hant').convert(score)
     self.click_poet_interface = tkinter.Tk()
     self.click_poet_interface.title(
         langconv.Converter('zh-hant').convert("点字成诗"))
     self.click_poet_interface.geometry("400x400+500+150")
     img = Image.open("./image/背景5.jpg")
     photo = ImageTk.PhotoImage(img)
     bg_photo = tkinter.Canvas(self.click_poet_interface,
                               width=400,
                               height=400)
     bg_photo.create_image(250, 300, image=photo)
     bg_photo.create_text(
         130,
         280,
         text=langconv.Converter('zh-hant').convert('请点击上方的字凑成一句诗:'),
         fill='black',
         font=("宋体", 14))
     bg_photo.create_text(150,
                          55,
                          text=score,
                          fill='black',
                          font=("宋体", 12))
     bg_photo.pack()
     p1 = ttk.Progressbar(self.click_poet_interface, mode="determinate")
     p1.place(relwidth=1, relheight=0.02, relx=0, rely=0.01)
     p1["maximum"] = self.click_poet.question_amount
     p1["value"] = self.question_number + 1
     self.var = tkinter.StringVar()
     w = tkinter.Label(
         self.click_poet_interface,
         text=langconv.Converter('zh-hant').convert("剩余时间:" +
                                                    str(self.time_limit) +
                                                    "秒"),
         textvariable=self.var,
         font=("宋体", 12),
         bg='lightcyan',
     )
     self.var.set(
         langconv.Converter('zh-hant').convert("剩余时间:" +
                                               str(self.time_limit) + "秒"))
     w.place(relwidth=0.32, relheight=0.06, relx=0.02, rely=0.04)
     next_question = tkinter.Button(
         self.click_poet_interface,
         text=langconv.Converter('zh-hant').convert('下一题'),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.next_question_response)
     next_question.place(relwidth=0.2, relheight=0.08, relx=0.78, rely=0.04)
     for i in range(3):
         for j in range(4):
             index = i * 4 + j
             word = tkinter.Button(
                 self.click_poet_interface,
                 font=('楷体', 18),
                 bg=background_color[self.click_state[index]],
                 text=self.click_poet.questions[
                     self.question_number][index],
                 activeforeground='green',
                 command=lambda index0=i, index1=j: self.word_response(
                     index0, index1))
             word.place(relwidth=0.225,
                        relheight=0.15,
                        relx=0.02 + 0.245 * j,
                        rely=0.18 + 0.16 * i)
     see_right_answer = tkinter.Button(
         self.click_poet_interface,
         text=langconv.Converter('zh-hant').convert('查看答案'),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.show_right_answer)
     see_right_answer.place(relwidth=0.3,
                            relheight=0.1,
                            relx=0.35,
                            rely=0.9)
     label2 = tkinter.Label(self.click_poet_interface,
                            text=self.answers[self.question_number],
                            font=("宋体", 18),
                            bg='white',
                            anchor='w',
                            justify='left')
     label2.place(relwidth=0.7, relheight=0.1, relx=0.02, rely=0.76)
     delete_button = tkinter.Button(self.click_poet_interface,
                                    text='×',
                                    font=('楷体', 18),
                                    bg='springgreen',
                                    activebackground='lime',
                                    command=self.delete_response)
     delete_button.place(relwidth=0.24, relheight=0.1, relx=0.74, rely=0.76)
     exit0 = tkinter.Button(
         self.click_poet_interface,
         text=langconv.Converter('zh-hant').convert("退出游戏"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.exit_click_poet)
     exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9)
     back0 = tkinter.Button(
         self.click_poet_interface,
         text=langconv.Converter('zh-hant').convert("返回首页"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.back_mode_selection)
     back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9)
     self.click_poet_interface.protocol("WM_DELETE_WINDOW",
                                        self.exit_click_poet)
     self.get_time()
     self.click_poet_interface.mainloop()
Exemple #29
0
 def run(self, mode, question_amount, answers, right_answer=[]):
     '''显示答案界面的运行函数'''
     right_amounts = 0
     conclusion = '回答情况如下:\n\n'
     for i in range(question_amount):
         if answers[i] != '':
             if mode == 1:
                 right_amounts += 1
                 conclusion += '{0:>2}、回答正确:{1}\n'.format(i + 1, answers[i])
             else:
                 if answers[i] == right_answer[i] or answers[
                         i] == right_answer[i][1]:
                     right_amounts += 1
                     conclusion += '{0:>2}、回答正确。\n'.format(i + 1)
                 else:
                     conclusion += '{0:>2}、回答错误。\n'.format(i + 1)
         else:
             conclusion += '{0:>2}、未回答。\n'.format(i + 1)
     grade = right_amounts / question_amount * 100
     score = '您的总得分为:{0:.1f}分'.format(grade)
     conclusion = langconv.Converter('zh-hant').convert(conclusion)
     score = langconv.Converter('zh-hant').convert(score)
     self.grade_interface = tkinter.Tk()
     self.grade_interface.title(
         langconv.Converter('zh-hant').convert("回答情况总结"))
     self.grade_interface.geometry("400x400+500+150")
     img = Image.open("./image/背景5.jpg")
     photo = ImageTk.PhotoImage(img)
     bg_photo = tkinter.Canvas(self.grade_interface, width=400, height=400)
     bg_photo.create_image(250, 300, image=photo)
     if mode == 1:
         bg_photo.create_text(120,
                              200,
                              text=conclusion,
                              fill='black',
                              font=("宋体", 14))
     if mode == 2 or mode == 3:
         bg_photo.create_text(80,
                              200,
                              text=conclusion,
                              fill='black',
                              font=("宋体", 16))
     bg_photo.create_text(120,
                          18,
                          text=score,
                          fill='black',
                          font=("宋体", 18))
     bg_photo.pack()
     exit0 = tkinter.Button(
         self.grade_interface,
         text=langconv.Converter('zh-hant').convert("退出游戏"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.exit_grade_interface)
     exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9)
     back0 = tkinter.Button(
         self.grade_interface,
         text=langconv.Converter('zh-hant').convert("返回首页"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.grade_interface.destroy)
     back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9)
     self.grade_interface.protocol("WM_DELETE_WINDOW",
                                   self.exit_grade_interface)
     self.grade_interface.mainloop()
Exemple #30
0
 def say_poet_display(self):
     '''出口成诗界面'''
     background_color = ['skyblue', 'limegreen', 'grey']
     self.say_poet_interface = tkinter.Tk()
     self.say_poet_interface.title(
         langconv.Converter('zh-hant').convert("出口成诗"))
     self.say_poet_interface.geometry("400x400+500+150")
     img = Image.open("./image/背景5.jpg")
     photo = ImageTk.PhotoImage(img)
     bg_photo = tkinter.Canvas(self.say_poet_interface,
                               width=400,
                               height=400)
     bg_photo.create_image(250, 300, image=photo)
     bg_photo.create_text(
         136,
         290,
         text=langconv.Converter('zh-hant').convert('请选词后在下方输入对应诗句:'),
         fill='black',
         font=("宋体", 14))
     bg_photo.pack()
     p1 = ttk.Progressbar(self.say_poet_interface, mode="determinate")
     p1.place(relwidth=1, relheight=0.02, relx=0, rely=0.01)
     p1["maximum"] = self.say_poet.question_amount
     p1["value"] = self.right_amount
     self.var = tkinter.StringVar()
     w = tkinter.Label(
         self.say_poet_interface,
         text=langconv.Converter('zh-hant').convert("剩余时间:" +
                                                    str(self.time_limit) +
                                                    "秒"),
         textvariable=self.var,
         font=("宋体", 12),
         bg='lightcyan',
     )
     self.var.set(
         langconv.Converter('zh-hant').convert("剩余时间:" +
                                               str(self.time_limit) + "秒"))
     w.place(relwidth=0.32, relheight=0.06, relx=0.02, rely=0.04)
     for i in range(4):
         for j in range(3):
             index = i * 3 + j
             question_button = tkinter.Button(
                 self.say_poet_interface,
                 text=self.say_poet.questions[index],
                 bg=background_color[self.answering_state[index]],
                 font=('楷体', 18),
                 command=lambda index0=i, index1=j: self.word_response(
                     index0, index1))
             question_button.place(relwidth=0.3,
                                   relheight=0.13,
                                   relx=0.025 + 0.325 * j,
                                   rely=0.12 + 0.14 * i)
     self.answer = tkinter.Entry(self.say_poet_interface, font=("宋体", 14))
     self.answer.place(relwidth=0.8, relheight=0.1, relx=0, rely=0.78)
     submit_button = tkinter.Button(
         self.say_poet_interface,
         text=langconv.Converter('zh-hant').convert('提交'),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.submit_response)
     submit_button.place(relwidth=0.18, relheight=0.1, relx=0.81, rely=0.78)
     exit0 = tkinter.Button(
         self.say_poet_interface,
         text=langconv.Converter('zh-hant').convert("退出游戏"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.exit_say_poet)
     exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9)
     back0 = tkinter.Button(
         self.say_poet_interface,
         text=langconv.Converter('zh-hant').convert("返回首页"),
         font=('楷体', 18),
         bg='springgreen',
         activebackground='lime',
         command=self.back_mode_selection)
     back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9)
     self.say_poet_interface.protocol("WM_DELETE_WINDOW",
                                      self.exit_say_poet)
     self.get_time()
     self.say_poet_interface.mainloop()