Таблица Шульте - таблица случайно расположенных чисел, обычно размером 5x5 элементов и обычно состоит из цифр и букв. Пример: https://cepia.ru/speedreading/schulte/.
Мне помогли реализовать таблицу. Искал информацию про все строчки кода, более менее стало понятно, но хотел бы получить разбор,чтобы точно все понять и быть готовым написать этот код самостоятельно. Пример сайта, который я использовал для поиска информации: https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.dockstyle?view=netframework-4.8.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Shulte
{
class FormShulte : Form
{
DataGridView gv;
Random random = new Random();
public FormShulte()
{
gv = new DataGridView()
{
Dock = DockStyle.Fill,
ReadOnly = true,
AllowUserToAddRows = false,
AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
};
FillGrid(gv, 5, 5);
this.Controls.Add(gv);
}
private void FillGrid(DataGridView gv, int width, int height)
{
gv.ColumnCount = width;
var count = height * width;
var stack = new Stack<int>(Enumerable.Range(1, count).OrderBy(x => random.Next(1, count)));
gv.Rows.Add(height);
for (int i = 0; i < height; i++)
for (int j = 0; j < width; j++)
gv.Rows[i].Cells[j].Value = stack.Pop();
}
}
class Program
{
static void Main(string[] args)
{
new FormShulte().ShowDialog();
}
}
}
Она хорошо работает, но у нее нельзя менять размер после компиляции, как сделать адаптацию таблицы под экран. В остальном, вроде, все отлично. Теперь, осталось реализовать ходы. Нашел пример реализации:
int hod = 1;
private void dataGridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
{
// тут если ты кликнешь по ячейки с значением которое == hod то выполняется условие
if(datagrid.rows[e.RowIndex].cells[e.ColumnIndex].value.toString()==hod)
{
//меняет значение ячейки по которой ты кликнул на слово "нашел" ты можешь что-то другое придумать
//просто очистить ячейку от значения или перекрасить ее в другой цвет. Ограничивается только твоей фантазией
datagrid.rows[e.RowIndex].cells[e.ColumnIndex].value = "нашел";
//тут каждый раз когда ты находишь число которая равняется числу hod то hod увеличивается на 1
hod++
//ну и конец если ты нашел последнее число, то есть 9 то сразу выходит сообщение "ты справился", ну и время, сколько тебе потребовалось что бы найти все 9 чисел, думаю ты сам разберешься как добавлять секундомер в программу.
if(hod==10)
{
messageBox.Show("Ты справился, твой результат"+time+");
}// тут если ты кликнешь по ячейки с значением которое == hod то выполняется условие
if(datagrid.rows[e.RowIndex].cells[e.ColumnIndex].value.toString()==hod)
{
//меняет значение ячейки по которой ты кликнул на слово "нашел" ты можешь что-то другое придумать
//просто очистить ячейку от значения или перекрасить ее в другой цвет. Ограничивается только твоей фантазией
datagrid.rows[e.RowIndex].cells[e.ColumnIndex].value = "нашел";
//тут каждый раз когда ты находишь число которая равняется числу hod то hod увеличивается на 1
hod++
//ну и конец если ты нашел последнее число, то есть 9 то сразу выходит сообщение "ты справился", ну и время, сколько тебе потребовалось что бы найти все 9 чисел, думаю ты сам разберешься как добавлять секундомер в программу.
if(hod==10)
{
messageBox.Show("Ты справился, твой результат"+time+");
}
После того, как получится реализовать, хотелось бы еще написать код для таблицы Шульте из букв, также изменение цвета фона таблицы.
Потом сделать меню для выбора режима. Таблица Шульте из цифр или букв.
Думаю, это будет очень хороший код для курсовой. Возможно можно добавить фигуры и иероглифы, но это уже будет лишним.
P.S Буду очень благодарен за разбор кода.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте кто сможет помочь мне нужно чтобы программа сама себя кидала в автозагрузкупробовал много что не помогало например:
Хотел сделать вызов определенного forech в зависимости от того, какой игрок ходит, но при любом случае, срабатывает только первый, не смотря...
Нашла один интересный вариант генерации файла про Word с расширением doc(docx - не получается)
Есть строка со словами $words = "animal,people,cats,mack,apple,juice,mouse,marvel,keyboard,beer,drug,gun"; Слова разделены запятыми, в конце точка