Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
#1

крестики нолики - C++

08.01.2013, 23:27. Просмотров 548. Ответов 6
Метки нет (Все метки)

Я дошел до проверки или кто-то выиграл и тут мне немного не понравилось.Для того чтобы проверить есть ли победитель, я сравниваю элементы матрицы
C++
1
if(m[0][0]==m[0][1]&&m[0][0]==m[0][2]||m[0][0]==m[1][1]&&m[0][0]==m[2][2]) cout<<"You win";
но есть много комбинаций и мне что всех их прописывать? Вопрос вот в чем, как за один проход циклом есть ли победитель?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос крестики нолики (C++):

Крестики нолики на С - C++
Здраствуйте. Помогите пожалуйста написать игру в консоли. Это крестики нолики поле 3х3. Буду благодарен если поможете и объясните. ...

Крестики-нолики - C++
Захотелось написать игру Крестики-нолики но тут возник один вопрос, как будет ходить компютер, если пользоватся rand-ом то компютер будет...

Крестики-нолики - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; void show_cells(); void make_move(int num); void result(); ...

“Крестики-нолики” - C++
Напишите игру “Крестики-нолики”. Программа выводит игровое поле для двух игроков, проверяет правильность ходов, следит за ситуацией на...

Крестики нолики - C++
Нужно написать программу крестики нолики.

Крестики нолики - C++
Доброго времени суток, недавно я решил написать игру крестики нолики, написал, но код в ~1300 строк, что очень много, в коде много похожих...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fareiro
15 / 15 / 1
Регистрация: 06.12.2012
Сообщений: 132
08.01.2013, 23:39 #2
чуть ниже вашей темы
Крестики-нолики в консоле
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
09.01.2013, 00:08  [ТС] #3
Вот что у меня получилось, но это не очень корректно! Подскажите, как можно сократить этот код, хотя бы алгоритм какой-то подскажите)
C++
1
2
3
4
5
6
7
8
9
void result(char m[n][n]){
     
     if(m[0][2]=='X'&&m[1][1]=='X'&&m[2][0]=='X' || m[0][0]=='X'&&m[1][1]=='X'&&m[2][2]=='X') cout<<"Player "<<m[0][2]<<" win"; //диагонали
     
     if(m[0][0]=='X'&&m[0][1]=='X'&&m[0][2]=='X' || m[1][0]=='X'&&m[1][1]=='X'&&m[1][2]=='X' || m[2][0]=='X'&&m[2][1]=='X'&&m[2][2]=='X') cout<<"Player "<<m[2][2]<<" win"; //горизонталь
    
     if(m[0][0]=='X'&&m[1][0]=='X'&&m[2][0]=='X' || m[0][1]=='X'&&m[1][1]=='X'&&m[2][1]=='X' || m[0][2]=='X'&&m[1][2]=='X'&&m[2][2]=='X') cout<<"Player "<<m[2][2]<<" win"; //вертикаль
     
     }
Wolkodav
603 / 456 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
09.01.2013, 00:51 #4
А никак, лично я не знаю как. Прокатит, порой приходится грамоздить такие конструкции, бывает и хуже.
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,226
Записей в блоге: 3
Завершенные тесты: 1
09.01.2013, 10:41 #5
Цитата Сообщение от tokar2 Посмотреть сообщение
Подскажите, как можно сократить этот код, хотя бы алгоритм какой-то подскажите)
А цикл for?
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
09.01.2013, 14:21  [ТС] #6
Цитата Сообщение от Croessmah Посмотреть сообщение
А цикл for?
Ну я знаю что как-то можно for, а вот как?

Добавлено через 3 минуты
Как for пройтись по всей матрицы и проверить все комбинации?
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
09.01.2013, 14:25 #7
tokar2, как вариант процедура проверки от 1 до 3, а в цикле указать проверку строки или столбца
либо цикл в цикле для прохода сначала всех строк, потом столбцов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 14:25
Привет! Вот еще темы с ответами:

Крестики/нолики - C++
Я не понимаю почему не работает, и в этом моя проблема. Буду благодарен любой помощи, а так же любой конструктивной критике по коду. Если...

крестики-нолики - C++
Может у кого-то есть шаблон,чтобы расчертить поле в клетку,например 3x3. Покажите пожалуйста))

Крестики нолики - C++
Уж слишком запутался даже в такой простом коде: #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;string&gt; #include &lt;iomanip&gt; ...

Крестики-нолики 10 на 10 - C++
Нужно написать игру крестики-нолики. Застрял на алгоритме проверки победителя, точнее я написал, она работает, но алгоритм проверки в плане...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.01.2013, 14:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru