0 / 0 / 0
Регистрация: 04.11.2015
Сообщений: 10
1

Игра судоку 8х8, где ошибка?

20.12.2017, 12:04. Показов 661. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять почему есть одинаковые значения, подскажите где ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <ctime>
#include <string>
#include <fstream>
#include <Windows.h>
 
const int A = 8;
const int B = A * A;
 
using namespace std;
 
class Sudoku {
private:
    int mass[A][A], checker[B], stov, lin;
public:
    void Input() {
        int a = 0;
 
        ifstream file_input("Input.txt");
 
        if (file_input.is_open()) {
            
            while (!file_input.eof()) {
                file_input >> stov;
 
                file_input >> lin;
                file_input >> mass[lin][stov];
 
                checker[a] = lin;
                checker[a + 1] = stov;
 
                a += 2;
            }
 
            file_input.close();
            cout << endl << "Зчитування з файлу..." << endl;
        }
        else {
            cout << "\nПомилка зчитування, файл не найдений!\n";
 
            cin.get();
            exit(EXIT_FAILURE);
        }
    }
 
    void Do() {
        for (int a = 0; a < A; a++) {
            for (int b = 0; b < A; b++) {
                if (mass[a][b] < 0) {
                    mass[a][b] = 1;
                }
                for (int c = 0; c < B; c += 2) {
                    if (!(a == checker[c] && b == checker[c+1]))
                        Obrah(a, b);
                }
            }
        }
 
    }
 
    void Obrah(int a, int b) {
        for (int trying = 0; trying < B; trying++) {
            for (int c = 0; c < A; c++) {
                if ((mass[a][b] == mass[a][c] && c != b) || (mass[a][b] == mass[c][b] && c != a))
                    mass[a][b] += 1;
                if (mass[a][b] > 8) {
                    mass[a][b] = 1;
                    c = 0;
                }
            }
        }
    }
 
    void Output() {
        ofstream txt("Result.txt");
 
        cout << "\nВиведення судоку:\n\n";
        txt << "\nВиведення судоку:\n\n";
 
        for (int a = 0; a < A; a++) {
            for (int b = 0; b < A; b++) {
                cout << "\t" << mass[a][b];
                txt << "\t" << mass[a][b];
            }
            cout << "\n\n";
            txt << "\n\n";
        }
        txt.close();
        cout << "\nВирішений судоку записаний у файл";
    }
};
 
class Time {
private:
    int time_begin, time_end, time;
public:
    Time() {};
 
    void Start() {
        time_begin = clock();
    }
 
    void End() {
        time_end = clock();
        time = time_end - time_begin;
 
        cout << endl << endl << "Час обчислень програми: " << time << " млс." << endl;
    }
 
    ~Time() {};
};
 
int main() {
    system("color f0");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    srand(time(NULL));
 
    Sudoku sud;
    Time ti;
 
    sud.Input();
    ti.Start();
 
    sud.Do();
 
    sud.Output();
    ti.End();
 
    cin.get();
    return 0;
}
[/CPP][/CPP]
Миниатюры
Игра судоку 8х8, где ошибка?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2017, 12:04
Ответы с готовыми решениями:

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

Игра Судоку
Здравствуйте. Может кто нибудь дать исходник игры Судоку (думаю о правилах игры рассказывать не...

Игра судоку
Очень нужна помощь! Делаю игру Судоку на vb net. Не получается сделать так, чтобы &quot; в каждой...

Игра судоку на Delphi 7
Игра судоку на Delphi 7 В прошлом году делал курсовой проект для одного парня. Называется...

1
MrGluck
20.12.2017, 12:26     Игра судоку 8х8, где ошибка?
  #2
 Комментарий модератора 
art1es23, дублировать темы запрещено
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2017, 12:26

Игра судоку (крестики-нолики)
Люди подскажите пожалуйста. Препод дал задание написать игру судоку ну типа крестики нолики. Поле...

Как составить цикл? Игра судоку.
Здраствуйте препод задал написать игру судоку(крестики нолики) поле 9 на 9 ячеек. Выйгрыш в том...

Посоветуйте контролсы, игра судоку на Windows Forms
Портирую с консоли Судоку. Посоветуйте контрол или прием, чтобы можно было ввести с клавиатуры, но...

Переделать обычное судоку в судоку чёт-нечёт
Здравствуйте. Помогите, пожалуйста, переделать обычное судоку 9х9 в судоку чёт-нечёт. Отличие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru