summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lingo.cpp21
m---------vendor/verbly0
2 files changed, 21 insertions, 0 deletions
diff --git a/lingo.cpp b/lingo.cpp index 64c97ac..ea4697d 100644 --- a/lingo.cpp +++ b/lingo.cpp
@@ -18,6 +18,7 @@
18#include <map> 18#include <map>
19#include <array> 19#include <array>
20#include <Magick++.h> 20#include <Magick++.h>
21#include <cctype>
21#include "imagenet.h" 22#include "imagenet.h"
22 23
23#define ENABLE_BOT 24#define ENABLE_BOT
@@ -73,6 +74,10 @@ enum FilterDirection {
73 kTowardQuestion 74 kTowardQuestion
74}; 75};
75 76
77bool isDigitWrapper(unsigned char ch) {
78 return std::isdigit(ch);
79}
80
76verbly::filter makeHintFilter(verbly::filter subfilter, Height height, Colour colour, FilterDirection filter_direction) 81verbly::filter makeHintFilter(verbly::filter subfilter, Height height, Colour colour, FilterDirection filter_direction)
77{ 82{
78 switch (colour) { 83 switch (colour) {
@@ -495,6 +500,22 @@ private:
495 return true; 500 return true;
496 } 501 }
497 } 502 }
503 } else if (height == kTop && colour == kYellow) {
504 std::set<std::string> hint_stressless;
505 for (const verbly::pronunciation& pronunciation : clue.getPronunciations()) {
506 std::string stressed = hatkirby::implode(pronunciation.getPhonemes(), " ");
507 std::string stressless;
508 std::remove_copy_if(stressed.begin(), stressed.end(), std::back_inserter(stressless), &isDigitWrapper);
509 hint_stressless.insert(stressless);
510 }
511 for (const verbly::pronunciation& pronunciation : solution.getPronunciations()) {
512 std::string stressed = hatkirby::implode(pronunciation.getPhonemes(), " ");
513 std::string stressless;
514 std::remove_copy_if(stressed.begin(), stressed.end(), std::back_inserter(stressless), &isDigitWrapper);
515 if (hint_stressless.count(stressless)) {
516 return true;
517 }
518 }
498 } 519 }
499 return false; 520 return false;
500 } 521 }
diff --git a/vendor/verbly b/vendor/verbly
Subproject c66c279fb65328c5a5f5d8ca6e0df035fc5c555 Subproject 1e30651c96912e5475f1ceb46972ec4e2fa54b1