Форум программистов, компьютерный форум, киберфорум
Peoples
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

Игра в города (моя попытка реализации )

Запись от Peoples размещена 29.08.2016 в 13:17
Показов 3187 Комментарии 0

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
#include <iostream>
#include <vector>
#include <string>
#include <fstream> // для работы с файлами 
#include <set>      // для множеств 
#include <windows.h>  // для     SetConsoleCP
#include <algorithm> // для алгоритма find 
using namespace std;
int main() {
    SetConsoleCP(1251);  // для отображения русского языка, в свойствах консоли включить шрифт Lucida Console
    SetConsoleOutputCP(1251);
    vector<string>val;  // вектор для хранения городов (в нём записаны все города)
    ifstream ff;  // открываем файл, где записаны города с большой буквы, в столбец 
    ff.open("city.txt"); // сам файл с ними
    string s;
    while(!ff.eof()) {    // пока файл не пуст 
        getline(ff,s);  // читаем название города 
        val.push_back(s); // добавляем его в вектор 
    }
    ff.close();     // после прочтения закрываем файл
    set<string>v;  // множество для хранения уже названных городов( что бы не было повторений)
    string s1;
    while (s1!="l") {      // будем играть до тек пор пока игрок не введёт l (l=lose)
        getline(cin,s1); // читаем что вводит пользователь 
        if(!v.count(s1)) {   // если это слово не в "отбое" продолжаем 
            if(find(val.begin(),val.end(),s1)!=val.end()) { // если слово есть в списке( проверка для избежания ввода других слов кроме городов например "шляпа" )
 
                char c=s1[s1.length()-1];  // с=последнему символу введённого слова 
                if(c=='ь' || c=='ы') {  // городов на ь и ы не бывает (проверка)
                    c=s1[s1.length()-2]; // в таком случае берём предыдущую букву 
                }
                c=c-32; // переводим её в верхний регистр для сравнения 
                v.insert(s1); // вставляем слово в "отбой"
                for(vector<string>::iterator iter=val.begin(); iter!=val.end(); iter++) // идём по вектору городов 
                    if(((*iter)[0]==c) && !v.count(*iter)) { // если 1 буква города совпадает с C
                        cout<<*iter<<endl; // выводим название 
                        v.insert(*iter);  // кладём слово в "отбой"
                        break; // останавливаем, что бы не выводились остальные слова на эту букву 
                    }
            } else cout<<"Это не город!"<<endl; // если слова в списке нет выводим 
        } else cout<<"Слово уже было.  Ещё раз: "; // если введённое слово пользователем, или при поиске в векторе в отбое выводим 
 
    }
    cout<<"Вы проиграли(сдались)"<<endl; // при вводе l заканчиваем игру, выводим сообщение 
    system("pause");
    return 0;
}
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru