Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование/робототехника судоку на блоке

Никита Алексеев Ученик (110), на голосовании 24 минуты назад
помогите пожалуйста, сделать рабочее, красивое судоку, которое будет регенировать числа, поле 9 на 9
с выводом на экран блока EV3
и программа должна быть на языке программирования ИМЕННО clev3r, кто шарит, помогите, пожалуйста
Голосование за лучший ответ
vk.com/mexahuk Мыслитель (6108) 1 месяц назад
Создание судоку на блоке EV3 с использованием языка программирования clev3r — интересная задача! Я помогу вам с общей идеей и примером кода. Вот шаги, которые вам понадобятся:

1. Генерация Судоку
Сначала нужно создать алгоритм для генерации чисел судоку. Это может быть сделано с помощью метода "обратного отслеживания" (backtracking). Вот упрощённый пример логики генерации:

clev3r
Копировать код
// Инициализация массива 9x9
matrix[9][9] = {0}

// Функция для проверки, можно ли вставить число
isSafe(num, row, col) {
// Проверка строки
for (i = 0; i < 9; i++) {
if (matrix[row][i] == num) return false
}
// Проверка столбца
for (i = 0; i < 9; i++) {
if (matrix[i][col] == num) return false
}
// Проверка 3x3 квадрата
startRow = row - row % 3
startCol = col - col % 3
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
if (matrix[i + startRow][j + startCol] == num) return false
}
}
return true
}

// Рекурсивная функция для генерации судоку
solveSudoku() {
for (row = 0; row < 9; row++) {
for (col = 0; col < 9; col++) {
if (matrix[row][col] == 0) {
for (num = 1; num <= 9; num++) {
if (isSafe(num, row, col)) {
matrix[row][col] = num
if (solveSudoku()) return true
matrix[row][col] = 0
}
}
return false
}
}
}
return true
}

// Запускаем генерацию
generateSudoku() {
clearMatrix()
solveSudoku()
}
2. Отображение на экране EV3
Чтобы вывести судоку на экран, вам нужно будет использовать команды для отображения текста. Вот пример, как это можно сделать:

clev3r
Копировать код
displaySudoku() {
for (row = 0; row < 9; row++) {
for (col = 0; col < 9; col++) {
if (matrix[row][col] != 0) {
displayText(row, col, matrix[row][col]) // Функция для отображения текста
}
}
}
}
3. Основная программа
Теперь объедините все части в основной программе:

clev3r
Копировать код
main() {
generateSudoku()
displaySudoku()
}
4. Завершение
Убедитесь, что у вас правильно настроен блок EV3 для работы с программой на clev3r. Настройте необходимые функции и команды отображения текста в зависимости от вашей версии прошивки.
Никита АлексеевУченик (110) 1 месяц назад
хах, спасибо, но это питон(, я пытался спрашивать у ии, он не шарит за клевер
Похожие вопросы