in procCross: used now contains size_t instead of wxString

This commit is contained in:
2015-06-06 14:53:53 +03:00
parent 6305f686c1
commit 2d2347baea
2 changed files with 5 additions and 7 deletions

View File

@@ -11,7 +11,7 @@ typedef std::vector< std::vector<wxChar> > GridType;
typedef std::vector< std::vector<wxChar> > CurGridType; typedef std::vector< std::vector<wxChar> > CurGridType;
// Первый индекс -- длина слова // Первый индекс -- длина слова
typedef std::vector< std::vector<wxString> > AllWordsType; typedef std::vector< std::vector<wxString> > AllWordsType;
typedef std::set< wxString > UsedWords; typedef std::set< size_t > UsedWords;
struct WordInfo { struct WordInfo {
size_t x; size_t x;
@@ -135,10 +135,10 @@ bool procCross(UsedWords used, AllWordsType &words, CurGridType grid,
size_t rand_add = rand() % 100000; size_t rand_add = rand() % 100000;
size_t cur_len = cur_wi.len; size_t cur_len = cur_wi.len;
size_t cur_words_size = words.at(cur_len).size(); size_t cur_words_size = words.at(cur_len).size();
for (size_t i = 0; i < cur_words_size; ++i){ for (size_t icw = 0; icw < cur_words_size; ++icw){
wxString cur_word = words.at(cur_len).at((i + rand_add) % cur_words_size); if (used.find(icw) != used.end())
if (used.find(cur_word) != used.end())
continue; continue;
wxString cur_word = words.at(cur_len).at((icw + rand_add) % cur_words_size);
// Показывает, можно ли записать это слово в сетку // Показывает, можно ли записать это слово в сетку
bool can_write = true; bool can_write = true;
if (cur_wi.direct == false){ if (cur_wi.direct == false){
@@ -157,7 +157,7 @@ bool procCross(UsedWords used, AllWordsType &words, CurGridType grid,
if (can_write) { if (can_write) {
UsedWords t_used(used); UsedWords t_used(used);
t_used.insert(cur_word); t_used.insert(icw);
CurGridType t_grid(grid); CurGridType t_grid(grid);

View File

@@ -64,10 +64,8 @@ void MainFrame::do_layout()
BEGIN_EVENT_TABLE(MainFrame, wxFrame) BEGIN_EVENT_TABLE(MainFrame, wxFrame)
// begin wxGlade: MainFrame::event_table
EVT_BUTTON(wxID_PATH, MainFrame::OnbtnPathClick) EVT_BUTTON(wxID_PATH, MainFrame::OnbtnPathClick)
EVT_BUTTON(wxID_GENERATE, MainFrame::OnbtnGenerateClick) EVT_BUTTON(wxID_GENERATE, MainFrame::OnbtnGenerateClick)
// end wxGlade
END_EVENT_TABLE(); END_EVENT_TABLE();
void MainFrame::OnbtnPathClick(wxCommandEvent &event) { void MainFrame::OnbtnPathClick(wxCommandEvent &event) {