Coder Social home page Coder Social logo

lousysudoku_legacy's Introduction

./github post --make-profile-pinned --content \

allan_walpy - an #random #left #dude \

they/he are an nb \

uses english and russian languages \

typical autistic in stealth \

pronounces as alan volpi \

called vocally as alan volpi/volopai \

currently in 403 forbidden \

pfp by buffalobellie at Cool Kid Maker ;

exit 0

lousysudoku_legacy's People

Contributors

aleksimon avatar allanwalpy avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

lousysudoku_legacy's Issues

Добавить конструктор Sudoku по заданным числам и блокам

На входе три двумерных массива - маска и числа, массив Number.Position.
В матрице чисел - числа судоку. В матрице маски - тип числа судоку (из перечисления Number.NumberType). В матрице Number.Position - каждая строка является блоком, каждое значение Number.Position - число принадлежащее этому блоку

Создать метод возвращения матриц из массива строк

Дан массив строк. Первая строка два числа - число строк и столбцов (m и n), разделены пробелом
Дальше идут строки с числами (по n штук), разделены пробелом.
Каждая строка - строка матрицы.
Всего 2 матрицы (т.е. m * 2 строк)
Дальше идет строка, содержащее одно число (пусть будет a). Это количество строк у 3 и 4 массива массивов. т.е. дальше идёт a * 2 строк.
В каждой строке произвольное количество чисел.
Метод должен вернуть две матрицы и два массива массивов (array [,] of integer и array of array of integer, соответственно)
За дополнительными разъяснениями в скайп

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

Иконка должна отображать название программы "паршивое судоку", так и перекликаться с нашими логотипами @DEMON4LUCK, @EasyCheesy, @AndreyLysenkov
В папке репозитория должны лежать файл logo.png (размер не более 500x500 но не менее 16x16), а также icon.ico (стандартного размера 16x16, 32x32 или 64x64)

Создать метод проверки чисел в блоке

Создать метод возвращающий индексы тех чисел которые повторяются в массиве.
На входе массив чисел.
На выходе должен быть массив с индексами элементов из входного массива
Кодить в block.pas

Не изменяется число в судоку

Коммит: 6a585bc
Реальность: при запуске dbg_runner сначала отображается числа судоку (все нули), а потом оно снова отображается и все ячейки нули
Ожидание: по идее во время второго показа чисел судоку, число на позиции 3:2 изменяется на 9, а все остальные остаются нулями

Неправильное отображение правильности чисел

Коммит: 1268d3b
Отображение правильности/неправильности чисел не соответствует у ядра и интерфейса WPF
Цвет ячейки меняется не сразу. Ячейку нужно изменить дважды тем же значением, чтобы правильный цвет появился
При изменении одной ячейки, цвет другой не меняется, если правильность ячейки изменилась

Конструктор Sudoku неправильно считывает размеры судоку

По состоянию на коммит: c56d349
Sudocu.cs, строка 91
Свойство Length возвращает количество всех элементов для двумерного массива, а не только первого измерения. В результате при попытке заполнить поля чисел, происходит выход за пределы массива (System.IndexOutOfRangeException)

Sudoku generation is too slow

Не работает на судоку 16x16. Продождал 5 минут, судоку не сгенерировалось
Разобраться в чем дело: алгоритме генерации или ошибка в коде
UPD: #41 (comment)
UPD2: Probable solution: #41 (comment)

Выделить методы, нужные для интерфейса в один класс

Методы:

  • Загрузка судоку из файла;
  • Сохранение судоку в файл;
  • Найти ячейку по её позиции;
  • Проверка правильности числа (не совпадает с другими);
  • Изменение числа в ячейке судоку;
  • Проверка правильности блока судоку;

Добавить страницу требований

Добавить страницу с требованиями (в репозитории файл с идеями requirements.rus.txt)
Title: Requirements
Также указать:

  • быстродействие (за сколько должно происходить каждое действие)

Сделать отображение судоку

При запуске приложения lousysudoku.exe должно появиться окно.
В верху должно отображаться полоска меню. При создании судоку должно появляться поле 9x9, все клетки редактируются
Перед тем как делать, обязательно обратиться за дополнительной консультацией по skype (подробности и помощь с FormsABC)

Block.Reference обновляются дважды

Ссылки на блоки для ячеек обновляются дважды, из-за чего каждая ячейка содержит по две ссылки на один и тот же блок, что замедляет генерацию судоку и, не существенно, саму проверку правильности/неправильности

Создать шаблон приложения

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

Создать меню

Создать меню, где пользователь может сначала выбрать загрузить или сгенерировать судоку. Сами функции создания/сохранения вызывать не надо.
Потом пользователю должно отобразиться судоку, а сам пользователь ввести три числа, номера строки, столбца и число, которое нужно вписать в ячейку. Повторять до бесконечности пока пользователь не введёт три нуля. Сами функции отображения судоку, изменения числа, не нужны. Они будут позже
Приветствуются свои предложения для интерфейса

Добавить приветственную страницу

Добавить страницу проекта.
Title: Home
Указать:

  • пользователей, участвующие в проекте и их роль
  • краткое описание программы, с её отличиями от других программ, жесткая критика приветствуется

Неугодный руководству текст будет подправлен

Cоздать функцию для отображения матрицы чисел

На входе подается два двумерных массива - маска и числа. В масссиве чисел числа. В массиве маски числа от 0 - 3. Число ноль, обозначает, что числа на этой же позиции в другом массиве нет (отображается пробел вместо числа), 1 - значит число есть, но оно не задано (пользователь не заполнил, вместо числа пробел), 2 - означает пользователь сам поставил сюда число, 3 - число изначально было. Между числами под маской 0 и 1, а также 2 и 3 - должна быть визуальная разница (другой цвет фона, другой цвет текста)
Кодить в файл lousysudoku.pas

Создать функцию проверки четности массива чисел

На входе два массива: один массив чисел, другой массив boolean
Метод Check, проходится по массиву чисел и если i-ый элемент массива нечетный и i-ый элемент массива boolean равен true, то заносит i в другой массив чисел (который функция будет возвращать)

Добавить метод изменения значения числа

Чтобы число (class Number) можно было:

  • занести (было пустое поле -> заполненное);
  • изменить (было заполненное одним значением -> другим);
  • стереть (было заполненное -> пустым);

Учитывать типы чисел неизменяемые пользователем (нет числа, число задано изначально)
Один публичный метод, принимающий int на вход, возвращающий успех операции

Stringify и Unstringify для классов Sudoku, Block, Number

Stringify переводит экземпляр класса в массив строк
Unstringify переводит из массива строк восстанавливает экземпляр класса
Использовать #15 и, если надо, модифицировать

Создать события заполнения и решения судоку

Создать события при:

  • заполнении судоку (все клетки заполнены);
  • завершении судоку (все клетки заполнены правильно);
    Если судоку заполнено правильно, вызвать оба события.
    Если судоку заполнено неправильно, вызвать только первое.
    И повторить, что такое события, а то знаю тебя, начнёшь писать

Создать метод возвращения матрицы Судоку

Возвращает три матрицы:

  • чисел - с числами записанными в судоку;
  • маски - чисел (отображение перечисления NumberType);
  • правильности - матрица bool, соlержащая данные о правильности числа;

Создать методы для работы с файлами

Состоит из двух методов.

  • Метод должен на вход принимать строку с именем файла, а на выходе давать массив строк файла.
  • Метод должен принимать на вход имя файла и массив строк. И записывать эти строки в указанный файл

Кодить в файл filereader.pas

Create memo: How to compile

Страница с title'ом "Compilation".

  • Сначала паскалевские файлы (кроме lousysudoku.pas)
  • Потом проект LousySudoku
  • Потом файл lousysudoku.pas

Указать что за программы желательно использовать при компиляции

Добавить разные типы блоков

Блоки с разными правилами:

  • уникальность числа (не повторяемость внутри блока);
  • четность и нечетность - все числа внутри блока четные или нечетные;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.