Witam, potrzebuje pomocy z rozwiązaniem pewnego problemu, z którym nie mogę sobie poradzić i nie mam już żadnych pomysłów jak rozwiązać ten problem :/
Błąd LNK2005 Element "bool __cdecl sudoku(void)" (?sudoku@@YA_NXZ) jest już zdefiniowany w elemencie funkcje.obj
Błąd LNK2005 Element "void __cdecl wstawsudoku(void)" (?wstawsudoku@@YAXXZ) jest już zdefiniowany w elemencie funkcje.obj
Błąd LNK2005 Element _main jest już zdefiniowany w elemencie funkcje.obj
Błąd LNK2005 Element "int (* tab)[9]" (?tab@@3PAY08HA) jest już zdefiniowany w elemencie funkcje.obj
Błąd LNK1169 znaleziono co najmniej jeden wielokrotnie zdefiniowany symbol
main.cpp
#include <iostream>
#include "funkcje.h"
using namespace std;
int tab[9][9]
{
{3, 0, 6, 5, 0, 8, 4, 0, 0},
{5, 2, 0, 0, 0, 0, 0, 0, 0},
{0, 8, 7, 0, 0, 0, 0, 3, 1},
{0, 0, 3, 0, 1, 0, 0, 8, 0},
{9, 0, 0, 8, 6, 3, 0, 0, 5},
{0, 5, 0, 0, 9, 0, 6, 0, 0},
{1, 3, 0, 0, 0, 0, 2, 5, 0},
{0, 0, 0, 0, 0, 0, 0, 7, 4},
{0, 0, 5, 2, 0, 6, 3, 0, 0}
};
bool sudoku() // wyszukuje puste miejsca i wstawia odpowiednia liczbe
{
int wiersz, kolumna;
if (!puste_miejsce(wiersz, kolumna))
{
return true;
}
for (int liczba = 1; liczba <= 9; liczba++)
{
if (miejsce(wiersz, kolumna, liczba))
{
tab[wiersz][kolumna] = liczba;
if (sudoku())
{
return true;
}
else
tab[wiersz][kolumna] = 0;
}
}
return false;
}
void wstawsudoku() // tworzymy sudoku
{
for (int wiersz = 0; wiersz < 9; wiersz++)
{
for (int kolumna = 0; kolumna < 9; kolumna++)
{
if (kolumna == 3 || kolumna == 6)
{
cout << " | ";
cout << tab[wiersz][kolumna] << " ";
}
if (wiersz == 2 || wiersz == 5)
{
cout << endl;
for (int i = 0; i < 9; i++)
{
cout << "---";
}
}
}
}
}
int main()
{
if (sudoku() == true)
wstawsudoku();
return 0;
}
funckcje.cpp
#include "funkcje.h"
#include "main.cpp"
bool szukanie_w_kolumnie(const int& kolumna, const int& liczba) // sprawdzamy czy w kolumnie już liczba czy nie
{
for (int wiersz = 0; wiersz < 9; wiersz++)
{
if (tab[wiersz][kolumna] == liczba)
{
return true;
}
else
return false;
}
return 0;
}
bool szukanie_w_wierszu(const int& wiersz, const int& liczba)//sprawdzamy czy w wierszu już liczba czy nie
{
for (int kolumna = 0; kolumna < 9; kolumna++)
{
if (tab[wiersz][kolumna] == liczba)
{
return true;
}
else
return false;
}
return 0;
}
bool szukanie_w_kwadracie(const int& kwadrat_kolumna, const int& kwadrat_wiersz, const int& liczba) // sprawdzamy czy w kwadracie 3x3 jest juz liczba czy nie
{
for (int kolumna = 0; kolumna < 3; kolumna++)
{
for (int wiersz = 0; wiersz < 3; wiersz++)
{
if (tab[wiersz + kwadrat_wiersz][kolumna + kwadrat_kolumna] == liczba)
{
return true;
}
else
return false;
}
}
return 0;
}
bool puste_miejsce(const int& kolumna, const int& wiersz) //szukamy pustego miejsca w sudoku
{
for (int wiersz = 0; wiersz < 9; wiersz++)
{
for (int kolumna = 0; kolumna < 9; kolumna++)
{
if (tab[wiersz][kolumna] == 0)
{
return true;
}
else
return false;
}
}
return 0;
}
bool miejsce(const int& wiersz, const int& kolumna, const int& liczba) // sprawdza czy mozna wstawic liczbe do danego miejsca
{
return !szukanie_w_wierszu(wiersz, liczba) && !szukanie_w_kolumnie(kolumna, liczba) && !szukanie_w_kwadracie(wiersz - wiersz % 3, kolumna - kolumna % 3, liczba);
}
funkcje.h
#pragma once
#ifndef FUNKCJEH
#define FUNKCJEH
bool szukanie_w_kolumnie(const int& kolumna, const int& liczba);
bool szukanie_w_wierszu(const int& wiersz, const int& liczba);
bool szukanie_w_kwadracie(const int& kwadrat_kolumna, const int& kwadrat_wiersz, const int& liczba);
bool puste_miejsce(const int& kolumna, const int& wiersz);
bool miejsce(const int& wiersz, const int& kolumna, const int& liczba);
#endif