7 / 7 / 1
Регистрация: 12.01.2015
Сообщений: 87
|
||||||
1 | ||||||
Как выйти из оператора if21.07.2015, 17:32. Показов 4605. Ответов 22
Метки нет (Все метки)
Пишу ИИ для крестиков-ноликов и вопрос в том, если исполниться одино условие как сделать так что бы другие не проверялись? break чето в if'ие не пашет, есть какие-то другие варианты?
0
|
21.07.2015, 17:32 | |
Ответы с готовыми решениями:
22
Как правильно выйти из оператора if Как выйти? Как обратиться с сервера на клиент (или как выйти из безнадежной ситуации) Как выйти из положения? |
47 / 47 / 23
Регистрация: 14.04.2013
Сообщений: 188
|
||||||
21.07.2015, 17:44 | 2 | |||||
2
|
26 / 15 / 17
Регистрация: 09.07.2015
Сообщений: 47
|
||||||
21.07.2015, 17:45 | 3 | |||||
1
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
21.07.2015, 18:00 | 4 |
1) Храните двухмерный массив
2) Используйте цикл 3) храните в массиве числа -1, 0, 1. Отсюда победа это если сумма ряда или -3 или 3, где кто выигрывает думаю понятно, так же про диагональ и про вертикаль. 4) Используйте цикл 5) Используйте константную char переменную для хранения символа вывода на экран "фишки игрока" 6) используйте уже наконечно циклы!
2
|
7 / 7 / 1
Регистрация: 12.01.2015
Сообщений: 87
|
||||||
21.07.2015, 18:19 [ТС] | 5 | |||||
Ребят сейчас сделал как говорите и все равно же не помогает, потому что есть цикл if, что тогда сейчас ?
Добавлено через 16 минут Ребят, кто-то может помочь ?
0
|
26 / 15 / 17
Регистрация: 09.07.2015
Сообщений: 47
|
|
21.07.2015, 18:21 | 6 |
нет не всегда
0
|
7 / 7 / 1
Регистрация: 12.01.2015
Сообщений: 87
|
|
21.07.2015, 18:24 [ТС] | 7 |
Ну даже если не всегда это же не играет роли.... Должно же исполняться только раз и все... Пробую разные штуки и пока что глухо
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
21.07.2015, 18:43 | 8 |
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
21.07.2015, 20:10 | 9 |
Как много If.Гляньте еще Switch Case.
0
|
Avazart
|
|||||
21.07.2015, 20:17
#10
|
|||||
Не по теме:
Используйте функции, классы, перечисления, switch/case ... да и вообще язык С++ наконец .... :D cut
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
21.07.2015, 20:22 | 11 |
Как много у вас условий сразу. Никогда не начинайте сразу чистовой сложный код. Нужно писать постепенно усложняя программу с записью версий где нить например в MS Word и номер версии кода. Используйте вывод отладочной инфы чтобы проверять как на самом деле работают ваши условия.
Или например выводить вам типа: Найдено возможных ходов 4. Возможная победа на ходов:2 Просчитано ходов вперед:2. Также можно например рисовать букву или символ или цветную точку на экране где комп предполагает ход игрока. Также есть куча примеров в инете на С++ вы погуглили вопрос? Хорошие программисты стараются максимально изучить вопрос а затем пробовать самому. Или вам интересно вообще самому с нуля сделать?
1
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
|
21.07.2015, 21:03 | 12 |
Если запутались в if'ах, сделайте это в виде функции и делайте return в нужном Вам месте выхода.
1
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
21.07.2015, 21:28 | 13 |
А как вам моя рекомендация, что множественный return плох в плане отлова ошибки, чтения вашего кода и оптимизации компилятором ?
0
|
7 / 7 / 1
Регистрация: 12.01.2015
Сообщений: 87
|
|
21.07.2015, 23:02 [ТС] | 14 |
0
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
|||||||||||
21.07.2015, 23:12 | 15 | ||||||||||
Сообщение было отмечено David_Ok как решение
Решение
Т.е. правильнее писать так:
1
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||||||||||
21.07.2015, 23:31 | 16 | ||||||||||
Что это было?))))
Это даже кодом тяжело назвать) Добавлено через 1 минуту
Сделайте все пункты, что здесь написаны / покажите сюда код, а с пунктами 2, 4, 6 - я вам помогу сам на месте же ж!
0
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
|
22.07.2015, 01:38 | 17 |
rikimaru2013, очень странно, что Вы не поняли, что это был просто пример, чтоб показать 2 варианта записи.
Да, я его сделал очень простым, но если вместо a++ будут другие преобразования, а вместо таких простых условий, будут более сложные, тогда как правильнее записывать? И самое главное, почему?
0
|
22.07.2015, 07:05 | 18 | |||||
Лично я считаю что да, так правильнее.
До поры до времени. Пример слишком прост. Функции могут быть намного больше и запутаннее. Когда знаешь, что выход из функции только один, становится намного проще её изучать. Добавлено через 12 минут Дополню ответ. Встречал и подобную конструкцию:
2
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
22.07.2015, 10:35 | 19 |
В том варианте 2 return, что уже неправильно. Как так, castaway, ? У вас есть доводы, что опревергают моё
Моя рекомендация один и только один. Бывает и сам пишу 2 return, но противно в душе до ужаса, но в тех случаях более читабельно через два. А так только 1. Он и является для меня главным <3
1
|
22.07.2015, 10:54 | 20 |
"Я извиняюсь за свой английский", немного неправильно выразился. Слово "правильнее" было неправильным с моей стороны, просто отталкивался от вопроса ТС, содержащего его. Мне следовало бы заменить выражение "так правильнее" на "по-хорошему так, я считаю".
Моё мнение - 1 return для "сложных" функций, максимум - два оператора для простых, где оба видны с первого взгляда.
1
|
22.07.2015, 10:54 | |
22.07.2015, 10:54 | |
Помогаю со студенческими работами здесь
20
как выйти из циклов Как выйти из man? Как выйти из цикла? Как выйти из рекурсии? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |