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

Игра в слова

08.10.2017, 10:47. Показов 1298. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять в чём проблема. Помогите исправить пожалуйста.

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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
 
namespace gameWord
{
    class Dictinary
    {
        public List<string> arrayAllWord;
        public Dictinary(string fileOfDictionary)
        {
            arrayAllWord = new List<string>();
            //цикл читает из файла словарь
            string line;
 
            StreamReader file = new StreamReader(fileOfDictionary, Encoding.GetEncoding(1251));
            while ((line = file.ReadLine()) != null)
            {
                arrayAllWord.Add(line);
            }
 
            file.Close();
 
        }
        public string GetRandomWord()
        {
            string randomWord;
            int maxNumberOfWord = arrayAllWord.Count;
 
            Random rnd = new Random();
            int randomNumber = rnd.Next(0, maxNumberOfWord);
 
            randomWord = arrayAllWord[randomNumber];
            return randomWord;
        }
        public bool TestForFindLettesOnTheWord(string randomWord, string inputWord)
        {
            bool temp = false;
 
            List<int> tempArray = new List<int> { };
 
            for (int i = 0; i < randomWord.Length; i++)
                tempArray.Add(1);
 
            int[] arrayForTest = tempArray.ToArray<int>();  //transform list in array
 
            for (int i = 0; i < inputWord.Length; i++)
            {
                for (int j = 0; j < randomWord.Length; j++)
                {
                    if (inputWord[i] == randomWord[j])
                    {
                        if (arrayForTest[j] == 1)
                        {
                            arrayForTest[j] = 0;
                            temp = true;
                            break;
                        }
 
                    }
                }
                if (temp == false) return false;
                else temp = false;
            }
            return true;
        }
        public bool TestForFindWordOnTheFile(string inputWord)
        {
            for (int i = 0; i < arrayAllWord.Count; i++)
            {
                if (arrayAllWord[i] == inputWord) return true;
            }
            return false;
        }
 
    }
    class Game
    {
        public string randomWord;
        public string inputWord;
        public Dictinary allWords;
        public int score;
        List<string> arrayInputWord;
 
        public Game(string fileOfDictionary)
        {
            allWords = new Dictinary(fileOfDictionary);
            arrayInputWord = new List<string>();
            randomWord = allWords.GetRandomWord();
            score = 0;
        }
        public bool TestForReUsingInputWord()
        {
            for (int j = 0; j < arrayInputWord.Count - 1; j++)
            {
                if (randomWord == arrayInputWord[j])
                {
                    return false;
                }
            }
            return true;
        }
        public string Testing(string word)
        {
            //вызов тест-методов
            //if Ok Score++
            bool testing1 = allWords.TestForFindLettesOnTheWord(randomWord, inputWord);
            bool testing2 = allWords.TestForFindWordOnTheFile(inputWord);
            bool testing3 = TestForReUsingInputWord();
 
            if (testing1 == false || testing2 == false || testing3 == false)
                return "You can't use this word.";
            else
            {
                score += randomWord.Length;
                return "Score: " + score + "\n";
            }
        }
 
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            string dictionary = "dictionary.txt";
            ConsoleKeyInfo keypress;
            Game game = new Game(dictionary);
            Console.WriteLine(game.randomWord);
 
            for (; ; )//пока не надоест
            {
                Console.WriteLine("Input word:");
                string inputWord = (Console.ReadLine());
                Console.WriteLine(game.Testing(inputWord));
                Console.WriteLine(game.score);
 
                keypress = Console.ReadKey();        // считать данные о нажатых клавишах
                Console.WriteLine("\r");
                if (keypress.Key == ConsoleKey.Escape) break;
            }
 
 
 
 
        }
    }
}
Закрывается вот так
Игра в слова
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2017, 10:47
Ответы с готовыми решениями:

Игра "В слова": называть слово, начинающееся на последнюю букву слова названного соперником
Разработать программу, позволяющую игроку выбрать тему игры (например, города, растения, животные,...

Игра в слова
Ребят, помогите пожалуйста. Недавно только начала изучать этот язык и очень нужна ваша помощь. ...

Угадывание слова или игра "Виселица"
Нашел хороший вариант с подобной темой за авторством Psilon class Program { static...

Напечатать те слова последовательности, которые отличны от последнего слова и буквы слова упорядочены
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

5
1 / 1 / 0
Регистрация: 15.12.2016
Сообщений: 50
08.10.2017, 10:51  [ТС] 2
Словарь: dictionary.zip
0
1 / 1 / 0
Регистрация: 15.12.2016
Сообщений: 50
08.10.2017, 22:24  [ТС] 3
Ребят, спасайте. Срочно нужно, а в чём проблема понять не могу
0
112 / 99 / 80
Регистрация: 30.12.2015
Сообщений: 230
08.10.2017, 22:58 4
Я так понимаю, что здесь сравнивается рандомное слово,с введенным словом.
C#
1
2
3
4
5
6
 public string Testing(string word)
        {
            //вызов тест-методов
            //if Ok Score++
            bool testing1 = allWords.TestForFindLettesOnTheWord(randomWord, inputWord);
            bool testing2 = allWords.TestForFindWordOnTheFile(inputWord);
То есть по идее должно быть так:
C#
1
2
3
4
5
6
public string Testing(string word)
        {
            //вызов тест-методов
            //if Ok Score++
            bool testing1 = allWords.TestForFindLettesOnTheWord(randomWord, word);
            bool testing2 = allWords.TestForFindWordOnTheFile(word);
0
1 / 1 / 0
Регистрация: 15.12.2016
Сообщений: 50
09.10.2017, 14:42  [ТС] 5
Точно, спасибо
0
1 / 1 / 0
Регистрация: 15.12.2016
Сообщений: 50
11.11.2017, 13:12  [ТС] 6
Возникла ещё такая проблема. Вот в этом куске кода со "стоп-словом". Помогите переписать как нужно, не то не доходит
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
class Program //основной класс
    {
        static void Main(string[] args)
        {
            string dictionary = "dictionary.txt";
            string records = "records.txt";
            ConsoleKeyInfo keypress;
            Game game = new Game(dictionary); 
            Console.WriteLine(game.randomWord);
 
            for (; ; ) 
            {
                Console.WriteLine("Input word:");
                string inputWord = (Console.ReadLine());
                game.inputWord = inputWord;
                Console.WriteLine(game.Testing(inputWord)); 
 
                keypress = Console.ReadKey();
                Console.WriteLine("\r");
                if (keypress.Key == ConsoleKey.Escape)
                    break;
            }
 
            game.WriteToFile(records);
 
        }
Добавлено через 44 минуты
Уже не надо, нашла в чём дело
0
11.11.2017, 13:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2017, 13:12
Помогаю со студенческими работами здесь

Игра в слова
Нужно написать программу для игры в слова, но вопрос собственно не в этом, а вот в чем, написал я...

игра в слова...
Помогите решить.... Игра в слова.Программа выбирает слово и рисует на экране столько прочерков,...

Игра в слова
«Игра в слова». Играют двое. Первый игрок загадывает слово и вводит его в программу с клавиатуры....

Игра в слова
Может кто поможет переделать из Делфи в С++ Билдер, просто тут совсем все другое, очень сложно. ...


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

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

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