Главная страница
Навигация по странице:

  • 9. ЗАКЛЮЧЕНИЕ

  • КАЛЕНДАРНЫЙ ПЛАН

  • ЗАДАНИЕ №_ 10

  • Курсовая работа по предмету МиТП на тему создания программы для игры в слова. Курсовая работа. Составляем слова


    Скачать 1.43 Mb.
    НазваниеСоставляем слова
    АнкорКурсовая работа по предмету МиТП на тему создания программы для игры в слова
    Дата01.03.2023
    Размер1.43 Mb.
    Формат файлаdocx
    Имя файлаКурсовая работа.docx
    ТипРуководство пользователя
    #963588
    страница3 из 4
    1   2   3   4

    8.3. СООБЩЕНИЯ ПОЛЬЗОВАТЕЛЮ

    В результате действий пользователя, могут появляться следующие сообщения об ошибках и сообщения о подтверждениях.

    8.3.1. Таблица сообщения об ошибках

    Вывод сообщения об ошибке

    Причина и метод устранения ошибки




    Причиной служит некорректно введённое слово. Для устранения ошибки следует ввести слово корректно с учётом условий и правил игры





    Причиной служит ввод слова, которое уже вводилось. Для устранения ошибки следует ввести слово, не повторяющееся с предыдущими


    8.3.2. Таблица сообщений подтверждения

    Окно сообщения об подтверждении

    Причина и результаты подтверждения




    Окно запроса подтверждения о выходе в окно результатов.

    Да – произойдет выход в окно результатов.

    Нет – произойдет возврат в окно игры.



    9. ЗАКЛЮЧЕНИЕ

    Разработка данного курсового проекта привела к следующим результатам:

    • Определены требования к программе;

    • Разработано техническое задание и спецификация требования к программному средству;

    • Разработан проект архитектуры программной системы;

    • Разработан пользовательский интерфейс;

    • Произведена разработка архитектуры программного обеспечения;

    • Создано рабочее программное обеспечение;

    • Программа имеет все функции, которые были определены в техническом задании;

    • Программа имеет максимально простой в навигации и легкий в изучении пользовательский интерфейс;

    • Программа имеет мощную справочную систему и всплывающие подсказки;

    • Написано руководство пользователя к программному обеспечению;

    • Было произведено тестирование и отладка программного обеспечения;

    • Программа устойчива к ошибкам и имеет защитные функции от неправильных действий пользователя.


    КАЛЕНДАРНЫЙ ПЛАН





    Наименование этапов работы

    Срок выполнения этапов работы

    Примечание

    1

    Предпроектное обследование. Разработка ТЗ.

    1 неделя (6%)





    2

    Разработка спецификации ПС

    1 неделя (6%)





    3

    Разработка проекта программы. Разработка структуры интерфейса ПС.

    2 недели (12%)





    4

    Разработка архитектуры ПС

    2 недели (12%)





    5

    Реализация программного обеспечения

    3 недели (18%)





    6

    Отладка и тестирование ПС.

    4 недели (40%)





    7

    Оформление пояснительной записки и графического материала

    1 неделя (6%)







    Студент Садырбаев А. Т.
    Руководитель проекта Томилова Н. И.

    КАРАГАНДИНСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

    Кафедра: Информационно-вычислительные системы


    Утверждаю

    Зав.кафедрой_Калинин А. А.

    «6» сентября 2021г.
    ЗАДАНИЕ №_10_

    на курсовую работу по дисциплине:

    Методы и технологии программированиям
    Студент ______ Садырбаев А. Т._____группа ___ИС 20-02______
    Тема работы: Игра «Составляем слова»

    Исходные данные: Учебно-методический материал




    Содержание пояснительной записки

    Сроки выполнения

    Примерный объем

    1

    Предпроектное обследование. Разработка ТЗ

    1 неделя

    6%

    2

    Разработка спецификации ПС

    1 неделя

    6%

    3

    Разработка проекта программы. Разработка структуры интерфейса ПС.

    2 недели

    12%

    4

    Алгоритмизация

    2 недели

    12%

    5

    Реализация программного обеспечения

    3недели

    18%

    6

    Отладка и тестирование ПС.

    4 недели

    40%

    7

    Оформление пояснительной записки и графического материала

    1 неделя

    6%





    Содержание графической части

    Сроки выполнения

    Количество листов

    Формат

    1

    Диаграмма переходов состояний

    06.09-18.09

    1

    А4

    2

    Диаграмма потоков данных

    19.09-25.09

    1

    А4

    3

    Граф диалога пользовательских интерфейсов

    26.09-30.09

    1

    А4

    4

    Структурная схема ПС

    01.10-07.10

    1

    А4

    5

    Блок-схема общей функциональности программы

    08.10-18.10

    1

    А4

    Литература:

    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, 'Первый ход делает компьютер'),
    1   2   3   4


    написать администратору сайта