Курсовая работа по предмету МиТП на тему создания программы для игры в слова. Курсовая работа. Составляем слова
Скачать 1.43 Mb.
|
8.3. СООБЩЕНИЯ ПОЛЬЗОВАТЕЛЮ В результате действий пользователя, могут появляться следующие сообщения об ошибках и сообщения о подтверждениях. 8.3.1. Таблица сообщения об ошибках
8.3.2. Таблица сообщений подтверждения
9. ЗАКЛЮЧЕНИЕ Разработка данного курсового проекта привела к следующим результатам: Определены требования к программе; Разработано техническое задание и спецификация требования к программному средству; Разработан проект архитектуры программной системы; Разработан пользовательский интерфейс; Произведена разработка архитектуры программного обеспечения; Создано рабочее программное обеспечение; Программа имеет все функции, которые были определены в техническом задании; Программа имеет максимально простой в навигации и легкий в изучении пользовательский интерфейс; Программа имеет мощную справочную систему и всплывающие подсказки; Написано руководство пользователя к программному обеспечению; Было произведено тестирование и отладка программного обеспечения; Программа устойчива к ошибкам и имеет защитные функции от неправильных действий пользователя. КАЛЕНДАРНЫЙ ПЛАН
Студент Садырбаев А. Т. Руководитель проекта Томилова Н. И. КАРАГАНДИНСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра: Информационно-вычислительные системы Утверждаю Зав.кафедрой_Калинин А. А. «6» сентября 2021г. ЗАДАНИЕ №_10_ на курсовую работу по дисциплине: Методы и технологии программированиям Студент ______ Садырбаев А. Т._____группа ___ИС 20-02______ Тема работы: Игра «Составляем слова» Исходные данные: Учебно-методический материал
Литература: 1_ Томилова Н.И. Электронный учебник по дисциплине, 2021; 3_ Сысоев М.В. «Программирование для "нормальных" с нуля на языке Python»; Дата выдачи задания, дата защиты проекта 6.09.2021 Руководитель проекта 06.12.2021 Томилова Н. И. Задание принял к исполнению Дата, подпись студента import tkinter as tk # python 3 from tkinter import Menu, Tk, font as tkfont # python 3 import random import os from tkinter.constants import BOTH, Y score_Player_1 = 0 score_Player_2 = 0 score_Player = 0 score_Computer = 0 with open("words.txt", encoding='UTF-8') as f: # Вывел из функции так как понадобилась вне одной функции input_list = f.read().splitlines() # создаем список с элементами через enter; # компьтер ищет слова - начало def charCount(word): dict = {} for i in word: dict[i] = dict.get(i, 0) + 1 return dict def possible_words(lwords, charSet): global used_words words = list() for word in lwords: flag = 1 chars = charCount(word) for key in chars: if key not in charSet: flag = 0 break else: if charSet.count(key) < chars[key]: flag = 0 break if word == lwords: flag = 0 for used_word in used_words: if word == used_word: flag = 0 break if flag == 1: words.append(word) return words # компьтер ищет слова - конец # процесс содания рандомного слова компьютером - начало def create_word(label_word): random_word = random.choice(input_list) charSet = list(random_word) while len(charSet) < 9: random_word = random.choice(input_list) charSet = list(random_word) label_word['text'] = 'Введенное слово: ' + random_word # процесс содания рандомного слова компьютером - конец def random_move_TwoPlayers(): random_num = random.randint(0, 1) if random_num == 0: main_text_TwoPlayers.insert(1.0, 'Первый ход делает Игрок1') else: main_text_TwoPlayers.insert(1.0, 'Первый ход делает Игрок2') def random_move_Computer(): random_num = random.randint(0, 1) if random_num == 0: main_text_Computer.insert(1.0, 'Первый ход делает компьютер') else: main_text_Computer.insert(1.0, 'Первый ход делаете Вы') def surrender_TwoPlayers(): global player, who_lost who_lost = "Проиграл Игрок " + player app.show_frame('GameLost') def surrender_Computer_Player(): global who_lost who_lost = "Проиграл Игрок" app.show_frame('GameLost') def surrender_Computer_Computer(): global who_lost who_lost = "Проиграл Компьютер" app.show_frame('GameLost') class SampleApp(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) self.title('Игра "Наборщик"') def help_menu(): os.startfile('help1.chm') mainmenu = Menu() self.config(menu=mainmenu) helpmenu = Menu(mainmenu, tearoff=0) helpmenu.add_command(label="Помощь") helpmenu.add_command(label="О программе") helpmenu.add_command(label="Вызвать справочную систему", command=help_menu) mainmenu.add_cascade(label="Справка",menu=helpmenu) self.title_font = tkfont.Font(family='Helvetica', size=14, weight="bold", slant="italic") container = tk.Frame(self) container.pack(side="top", fill="both", expand=True) container.grid_rowconfigure(0, weight=1) container.grid_columnconfigure(0, weight=1) self.frames = {} for F in (StartPage, Computer, TwoPlayers, Play_TwoPlayers, Play_Computer, GameLost): page_name = F.__name__ frame = F(parent=container, controller=self) self.frames[page_name] = frame frame.grid(row=0, column=0, sticky="nsew") self.show_frame("StartPage") def show_frame(self, page_name): '''Show a frame for the given page name''' frame = self.frames[page_name] frame.tkraise() try: frame.first_Launch() except: pass class GameLost(tk.Frame): def first_Launch(self): global who_lost,score_Player_1,score_Player_2,score_Player,score_Computer who_lost_lable['text'] = who_lost if who_lost.strip('Проиграл Игрок') == "1" or who_lost.strip('Проиграл Игрок') == "2": final_score['text'] = "Игрок1: " + str(score_Player_1) + " Игрок2: " + str(score_Player_2) else: final_score['text'] = "Игрок: " + str(score_Player) + " Компьютер: " + str(score_Computer) main_text_TwoPlayers.configure(state='normal') main_text_Computer.configure(state='normal') main_text_TwoPlayers.delete("1.0",tk.END) main_text_Computer.delete("1.0",tk.END) score_Player_1 = 0 score_Player_2 = 0 label_score_TwoPlayers['text'] = "Игрок1: 0 Игрок2: 0" score_Player = 0 score_Computer = 0 def __init__(self, parent, controller): global who_lost_lable, final_score tk.Frame.__init__(self, parent) self.controller = controller who_lost_lable = tk.Label(self, text='', font=controller.title_font) who_lost_lable.pack(side="top", fill="x", pady=10) final_score = tk.Label(self, text='', font=("Helvetica", 14, tkfont.BOLD, tkfont.ITALIC)) final_score.pack(side="top", fill="x", pady=10) return_Button = tk.Button(self, text="В главное меню", command=lambda: controller.show_frame("StartPage"), activebackground='#a7ccdf', font=("Helvetica", 14, tkfont.BOLD, tkfont.ITALIC), height=2) return_Button.pack() class StartPage(tk.Frame): def __init__(self, parent, controller): tk.Frame.__init__(self, parent) self.controller = controller label = tk.Label(self, text="Выберите с кем будете играть:", font=("Helvetica", 14, tkfont.BOLD, tkfont.ITALIC)) label.pack(side="top", fill="x", pady=50) button1 = tk.Button(self, text="Компьютер", command=lambda: controller.show_frame("Computer"), activebackground='#a7ccdf', font=("Helvetica", 14, tkfont.BOLD, tkfont.ITALIC), height=2, width=20) button2 = tk.Button(self, text="Два игрока", command=lambda: controller.show_frame("TwoPlayers"), activebackground='#a7ccdf', font=("Helvetica", 14, tkfont.BOLD, tkfont.ITALIC), height=2, width=20) button1.pack() button2.pack() class Computer(tk.Frame): def __init__(self, parent, controller): tk.Frame.__init__(self, parent) self.controller = controller label = tk.Label(self, text="Выберите кто будет ходить первым:", font=("Helvetica", 14, tkfont.BOLD, tkfont.ITALIC)) label.pack(side="top", fill="x", pady=10) button_1 = tk.Button(self, text="Случайный выбор", command=lambda: [random_move_Computer(), controller.show_frame("Play_Computer")], activebackground='#a7ccdf', font=("Helvetica", 14, tkfont.BOLD, tkfont.ITALIC), height=2, width=20) button_1.pack() button_2 = tk.Button(self, text="Компьютер", command=lambda: [main_text_Computer.insert(1.0, 'Первый ход делает компьютер'), |