コード例 #1
0
ファイル: WordByWordField.cs プロジェクト: ystiruk/FieldGames
        public WordByWordField(string[] lines, IWordProvider wordProvider)
        {
            if (lines == null || lines.Length < 2 || lines.Length != lines[0].Length)
            {
                throw new ArgumentException();
            }

            if (wordProvider == null)
            {
                wordProvider = new AnyWordProvider();
            }

            _wordProvider = wordProvider;

            int size = lines.Length;

            _field = new char[size, size];
            for (int i = 0; i < size; i++)
            {
                for (int j = 0; j < size; j++)
                {
                    _field[i, j] = lines[i][j];
                }
            }
        }
コード例 #2
0
 public TagWithWordProvider(
     Tag tag,
     IWordProvider wordProvider)
 {
     Tag          = tag;
     WordProvider = wordProvider;
 }
コード例 #3
0
 public WordSelector(
     IWordProvider wordProvider,
     IStringFormatter stringFormatter)
 {
     WordProvider     = wordProvider;
     _stringFormatter = stringFormatter;
 }
コード例 #4
0
ファイル: WordByWordField.cs プロジェクト: ystiruk/FieldGames
        public WordByWordField(string letters, IWordProvider wordProvider) //TODO: refactor
        {
            if (wordProvider == null)
            {
                wordProvider = new AnyWordProvider();
            }

            _wordProvider = wordProvider;

            var size = (int)Math.Sqrt(letters.Length);

            string[] lines = new string[size];
            for (int i = 0; i < size; i++)
            {
                lines[i] = letters.Substring(i * size, size);
            }

            _field = new char[size, size];
            for (int i = 0; i < size; i++)
            {
                for (int j = 0; j < size; j++)
                {
                    _field[i, j] = lines[i][j];
                }
            }
        }
コード例 #5
0
 public WordsController(IWordProvider wordProvider,
                        IWordCreator wordCreator,
                        IWordUpdater wordUpdater)
 {
     this.wordProvider = wordProvider;
     this.wordCreator  = wordCreator;
     this.wordUpdater  = wordUpdater;
 }
コード例 #6
0
 public WordUpdater(IAppDbContext context,
                    IWordUpdaterValidator validator,
                    IWordMapper mapper,
                    IWordProvider wordProvider)
 {
     this.context      = context;
     this.validator    = validator;
     this.mapper       = mapper;
     this.wordProvider = wordProvider;
 }
コード例 #7
0
 protected TagWithWord CreateTagWithWord(Tag tag, IWordProvider wordProvider)
 {
     return
         (new TagWithWord(
              formatString: (wordToFormat, tagString) => _stringFormatter.FormatString(wordToFormat, tagString),
              tag: tag,
              word:
              tag.HasIdentifer
                                                 ? CreateWordFromIdentifiedTag(tag)
                                                 : wordProvider.GetNewWord(tag)));
 }
コード例 #8
0
        internal static void Initialize(IWordProvider wordService, string path)
        {
            _wordService = wordService;
            var files = FileCommon.GetFiles(path, "*.scel");
            HashSet <PinYinWords> pyws = new HashSet <PinYinWords>();

            foreach (var file in files)
            {
                GetPinYinWords(file, pyws);
            }

            var list = SimplifyPinYinWords(pyws);

            list = list.OrderBy(q => q.Words).Distinct().ToList();

            for (int i = list.Count - 1; i >= 1; i--)
            {
                var t  = list[i];
                var t0 = list[i - 1];
                if (t.Words == t0.Words)
                {
                    list.RemoveAt(i);
                }
            }

            list = list.OrderByDescending(q => q.Words.Length).ToList();

            var text    = "";
            var py      = "";
            var index   = 0;
            var pyIndex = "0,";

            for (int i = 0; i < list.Count; i++)
            {
                if (i > 0)
                {
                    text += ",";
                    py   += ",";
                }

                text += list[i].Words;
                var pys = list[i].GetPinYinIndex();
                py      += string.Join(",", pys);
                index   += pys.Count();
                pyIndex += "," + index;
            }
            //PinYinIndexPath
//            WordPinYinPath
//                PinYinDataPath
            File.WriteAllText(BaseWordService.DictPinYinPathConfig.WordPath, text);//确定
//            File.WriteAllText(BaseWordService.DictPinYinPathConfig., pyIndex);
            File.WriteAllText(BaseWordService.DictPinYinPathConfig.WordPinYinPath, py);
        }
コード例 #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HangmanGame"/> class.
 /// Provides methods for running the game, ending the game and executing commands.
 /// </summary>
 /// <param name="printer">The object used to show messages.</param>
 /// <param name="sorter">The object used to sort scores.</param>
 /// <param name="scoresDataManager">The object from which scores are read and written in.</param>
 /// <param name="gameStateManager">The object used to save the current game state.</param>
 /// <param name="commandFactory">The object used to deal with commands needed.</param>
 /// <param name="commandExecutioner">The object used for the execution of commands.</param>
 /// <param name="wordProvider">The object that provides the word for the current game.</param>
 public HangmanGame(
     IPrinter printer,
     ISorter sorter,
     IDataManager<Dictionary<string, int>> scoresDataManager,
     IDataManager<SaveLoadManager> gameStateManager,
     CommandFactory commandFactory,
     ICommandInvoker commandExecutioner,
     IWordProvider wordProvider)
 {
     this.printer = printer;
     this.context = new GameContext(wordProvider, new Scoreboard(printer, sorter, scoresDataManager));
     this.commandFactory = new CommandFactory();
     this.gameSaver = new SaveLoadManager(this.printer, gameStateManager);
     this.commandExecutioner = new HangmanCommandInvoker();
 }
コード例 #10
0
 public WordRepository(ILogger <WordRepository> logger, IWordProvider wordProvider)
 {
     _logger = logger;
     _logger.LogInformation("Initializing Cache client");
     _cacheClient = new StackExchangeRedisCacheClient(new NewtonsoftSerializer(), new RedisConfiguration()
     {
         AbortOnConnectFail = false,
         Hosts = new RedisHost[]
         {
             new RedisHost()
             {
                 Host = "russian-word-cache.redis.cache.windows.net", Port = 6380
             }
         },
         Ssl            = true,
         Password       = "******",
         ConnectTimeout = 50000
     });
     _wordProvider = wordProvider;
 }
コード例 #11
0
ファイル: HangmanController.cs プロジェクト: Eilon/spark
 public HangmanController(IWordProvider wordProvider, IHighScoreRepository highScoreRepository)
 {
     _wordProvider = wordProvider;
     _highScoreRepository = highScoreRepository;
 }
コード例 #12
0
 public WordStorage(IWordProvider wordProvider)
 {
     ExceptionHelpers.ThrowOnNullArgument(nameof(wordProvider), wordProvider);
     this.wordStorage = new Lazy <Dictionary <char, HashSet <string> > >(wordProvider.GetWords);
 }
コード例 #13
0
 public WordWritingHandler(IWordProvider wordProvider)
 {
     WordProvider = wordProvider;
 }
コード例 #14
0
 public ClientProvider(IWordProvider wordProvider, string[] words)
 {
     _wordProvider = wordProvider;
     _words        = words;
 }
コード例 #15
0
ファイル: WordByWordField.cs プロジェクト: ystiruk/FieldGames
        private IEnumerable <Path> GetAllPaths(Point start, SearchDirection searchDirection, int maxDepth, IWordProvider wordProvider)
        {
            List <Path> oldPaths = new List <Path>()
            {
                new Path()
                {
                    start
                }
            };

            while (true)
            {
                List <Path> newPaths = new List <Path>();
                foreach (var path in oldPaths)
                {
                    var neighbours = path.Last.GetNeighbours(searchDirection);
                    for (int i = 0; i < neighbours.Length; i++)
                    {
                        if (!neighbours[i].IsInsideField(Size, Size))
                        {
                            continue;
                        }

                        if (!path.Contains(neighbours[i]))
                        {
                            var nPath = path.Extend(neighbours[i]);
                            if (wordProvider.StartsWith(this.GetWord(nPath)))
                            {
                                newPaths.Add(nPath);
                            }
                        }
                    }
                }

                foreach (var nPath in newPaths)
                {
                    if (wordProvider.Contains(this.GetWord(nPath)))
                    {
                        yield return(nPath);
                    }
                }

                if (newPaths.Count == 0 || newPaths[0].Length >= maxDepth)
                {
                    yield break;
                }

                oldPaths = newPaths;
            }
        }
コード例 #16
0
 public DomainSpecificWordSelector(
     IWordProvider wordProvider,
     IStringFormatter stringFormatter)
     : base(wordProvider, stringFormatter)
 {
 }
コード例 #17
0
 public WordController(IWordProvider wordProvider)
 {
     _wordProvider = wordProvider;
 }
コード例 #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GameContext"/> class.
 /// </summary>
 /// <param name="wordProvider">The object that will provide the word.</param>
 /// <param name="scoreboard">The scoreboard where the result will be kept.</param>
 public GameContext(IWordProvider wordProvider, IScoreboard scoreboard)
 {
     this.randWordProvider = wordProvider;
     this.Word = this.randWordProvider.GetWord();
     this.Scoreboard = scoreboard;
     this.CurrentMessage = GameContext.StartMessage;
     this.CurrentMistakes = 0;
     this.HasCheated = false;
     this.IsGameRunning = true;
 }
コード例 #19
0
 public AnyWordSelector(
     IWordProvider wordProvider,
     IStringFormatter stringFormatter)
     : base(wordProvider, stringFormatter)
 {
 }
コード例 #20
0
 public ClientReferee(IWordProvider wordProvider)
 {
     _wordProvider = wordProvider;
 }
コード例 #21
0
ファイル: WordByWordField.cs プロジェクト: ystiruk/FieldGames
        public static WordByWordField FromFile(string path, IWordProvider wordProvider = null)
        {
            var lines = System.IO.File.ReadAllLines(path, Encoding.UTF8);

            return(new WordByWordField(lines, wordProvider));
        }
コード例 #22
0
ファイル: HomeController.cs プロジェクト: alundgren/wf-assist
 public HomeController(IWordProvider wordProvider)
 {
     _wordProvider = wordProvider;
 }
コード例 #23
0
 public AnagramController(IWordProvider provider, IAlphabeticSorter sorter)
 {
     _provider = provider;
     _sorter   = sorter;
 }
コード例 #24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WordGenerator"/> class.
 /// Creates a Random instance and sets it on its random field. 
 /// Receives a IWordProvider and sets it on its words field.
 /// </summary>
 /// <param name="wordProvider">
 /// The one who keeps the available words.
 /// </param>
 public WordGenerator(IWordProvider wordProvider)
 {
     this.random = new Random();
     this.words = wordProvider.ProvideWords();
 }
コード例 #25
0
 public SimpleTagsCreator(IWordProvider provider)
 {
     this.provider = provider;
 }
コード例 #26
0
 /// <summary>
 /// 导入词库
 /// </summary>
 /// <param name="wordConfig"></param>
 /// <param name="wordService"></param>
 public ImportWordProvider(EWordConfig wordConfig,
                           IWordProvider wordService) : base(wordConfig)
 {
     _wordService = wordService;
 }
コード例 #27
0
 public void SetUp()
 {
     processor = new SimpleWordProcessor();
     reader    = Substitute.For <IWordReader>();
     provider  = new SimpleWordProvider(reader, processor);
 }
コード例 #28
0
 public WordController(IWordProvider provider, IAvailableWordFinder finder)
 {
     _provider = provider;
     _finder   = finder;
 }
コード例 #29
0
 public HangerManGame(IWordProvider wordProvider)
 {
     _word = wordProvider.Word;
 }
コード例 #30
0
ファイル: HangmanController.cs プロジェクト: yhtsnda/spark
 public HangmanController(IWordProvider wordProvider, IHighScoreRepository highScoreRepository)
 {
     _wordProvider        = wordProvider;
     _highScoreRepository = highScoreRepository;
 }