|
2 / 2 / 0
Регистрация: 13.05.2015
Сообщений: 29
|
||||||
Объяснить программу, "Крестики-нолики"13.05.2015, 20:38. Показов 2265. Ответов 8
Метки нет (Все метки)
Забыл сказать ,что это игра в крестики нолики.
0
|
||||||
| 13.05.2015, 20:38 | |
|
Ответы с готовыми решениями:
8
Составить программу, моделирующую игру «крестики-нолики» Крестики-Нолики: остановить программу при победе Крестики нолики |
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
||||||||||||||||
| 13.05.2015, 20:43 | ||||||||||||||||
|
для начала занесите весь код в
Добавлено через 1 минуту
0
|
||||||||||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 13.05.2015, 20:44 | ||
|
color 3 меняет цвет всей консоли, в то время как SetConsoleTextAttribute - только выводимого.
1
|
||
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|||||||||||
| 13.05.2015, 20:45 | |||||||||||
1
|
|||||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
|
| 13.05.2015, 20:45 | |
|
1
|
|
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
| 13.05.2015, 20:49 | |
|
что конкретнее нужно обьяснить? говорящие названия, комментарии, почти идеальный код
Добавлено через 1 минуту а нет какого нибудь аналога, который не требует _In_ HANDLE и пишется проще и понятнее?
0
|
|
|
2 / 2 / 0
Регистрация: 13.05.2015
Сообщений: 29
|
|
| 13.05.2015, 20:52 [ТС] | |
|
я не помню вот эту часть
int botMove() { if (field[4]=='5') return 5; for (int i = 0; i < 9; i++) if (field[i] == char(i+49)) { field[i] = 'O'; if (isWinner('O')) return i+1; else field[i] = char(i+49); field[i] = 'X'; if (isWinner('X')) return i+1; else field[i] = char(i+49); } for (int i = 0; i < 9; i++) if (field[i] == char(i+49)) return i+1; } void print() { system("cls"); clearscreen(2); printlogo(); clearscreen(2); printfield(); clearscreen(1); } char play(int h) { int turn = 1; // 0 - bot, 1 - player int move; char a = 'X', b = 'O'; if (h == 0) swap(a, b);//обмен значениями между а и б while(1) { if (turn % 2 == h) { print(); SetColor(12, 0); if (turn>1) { printspace(30); cout << "Компьютер поставил " << b << " на " << move << endl; } printspace(34); cout << "Ваш ход: "; cin >> move; while(move > 9 || field[move-1]=='X' || field[move-1]=='O') { print(); SetColor(12, 0); printspace(15); cout << "** Пожалуйста, введите корректное значение (1-9) **\n"; printspace(34); cout << "Ваш ход: "; cin >> move; } field[move-1] = a; if (isWinner(a)) { print(); printspace(35); for(int i = 0; i < 400000000; i++) if (i%100000000==0) cout<<'.'; SetColor(2, 0); cout << "X победил!\n"; return a; } } else { print(); SetColor(12, 0); if (turn>1) { printspace(30); cout << "Вы поставили " << a << " на " << move << endl; } printspace(35); cout << "Компьютер думает"; for(int i = 0; i < 600000000; i++) if (i%100000000==0) cout<<'.'; cout << endl; move = botMove(); field[move-1] = b; if (isWinner(b)) { print(); printspace(33); for(int i = 0; i < 400000000; i++) if (i%100000000==0) cout<<'.'; SetColor(2, 0); cout << "О победил!\n"; return b; } } turn++; if (turn == 10) { print(); printspace(33); for(int i = 0; i < 400000000; i++) if (i%100000000==0) cout<<'.'; SetColor(2, 0); cout << "Ничья!\n"; return 'D'; } } }
0
|
|
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
||||||||||||
| 14.05.2015, 22:37 | ||||||||||||
Сообщение было отмечено Kuroi как решение
Решение
функция нужна для проверки ходов, но если не найдёт лучший ход то вернёт первый свободный или центральный, в общем я не понимаю зачем нужна такая функция, видимо только если для помощи игроку в возможном ходе соперника Добавлено через 4 минуты print() выводит поле выводит лого, потом выводит поле play() начинает игру и играет до конца, в play передаётся значение которое определяет за кого играет пользователь
Добавлено через 2 минуты ааа, я понял что делает botMove, он ищет возможные ходы, при котором кто-нибудь выйграет, если выйграет он, то он просто поставит туда и выйграет, а если выйграет соперник, то он поставит туда и не даст выйграть сопернику
1
|
||||||||||||
|
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
|
|
| 14.05.2015, 23:50 | |
|
Те крестики нолики что написал и выложил я ,лучше=)
1
|
|
| 14.05.2015, 23:50 | |
|
Помогаю со студенческими работами здесь
9
Крестики нолики Крестики нолики Крестики/нолики Крестики-нолики Крестики нолики Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|