|
v7: Где ошибка в алгоритме? | ☑ | ||
---|---|---|---|---|
0
s-pc
22.08.11
✎
11:23
|
Видимо, следует предупредить. Я НЕ программист. Потому, будьте, пожалуйста, снисходительны ;-)
А вопрос такой: Вот в свою "дебютную" программку (Игра - "Крестики Нолики") вставил вот этот алгоритм, который взял из абсолютно рабочей программы. Правда, в той программе результат вычислялся в Функции и передавался в переменную. А у меня тут "то же самое", но в Процедуре. Так вот - у меня компьютер то жмет нужную клавишу (т.е. ставит в нужное поле свой крестики или нолик), то ничего никуда не ставит. Подскажите, пожалуйста, мою ошибку и... если возможно, на бытовом языке, мол... " у тебя компьютер в этой Процедуре делает то-то, а нужно чтобы он еще сделал вот это".. ну вот как то так... к1,к2.... к9 - это, естественно, сами кнопки игрового поля к1 | к2 | к3 к4 | к5 | к6 к7 | к8 | к9 Подскажете? === Процедура ХодКомпьютера() Если (к1=к2) и (к1=к3) и (к1="") Тогда Жмем(к1); ИначеЕсли (к4=к5) и (к4=к6) и (к4="") Тогда Жмем(к4); ИначеЕсли (к7=к8) и (к7=к9) и (к7="") Тогда Жмем(к7); ИначеЕсли (к1=к4) и (к1=к7) и (к1="") Тогда Жмем(к1); ИначеЕсли (к2=к5) и (к2=к8) и (к2="") Тогда Жмем(к2); ИначеЕсли (к3=к6) и (к3=к9) и (к3="") Тогда Жмем(к3); ИначеЕсли (к1=к5) и (к1=к9) и (к1="") Тогда Жмем(к1); ИначеЕсли (к3=к5) и (к3=к7) и (к3="") Тогда Жмем(к3); КонецПроцедуры |
|||
1
Ёпрст
22.08.11
✎
11:25
|
Не подскажем.
Ты сам то понимаешь то, что спрашиваешь? |
|||
2
Lepochkin
22.08.11
✎
11:27
|
к1,к2... - это идентификаторы кнопки???
|
|||
3
kosts
22.08.11
✎
11:31
|
(0) Ветка "иначе" где?
|
|||
4
s-pc
22.08.11
✎
11:34
|
Ой! Правда в вопросе напортачил. И в код не все скопировалось.
Ну вобщем так: У меня код по-другому совсем выглядит, я просто хотел (для вопроса) его максимально упростить.. не получилось... :-) Вобщем, вот мой реальный код: Процедура ХодКомпьютера() ХОХ = "О"; Если (Форма.к1.Заголовок()=Форма.к2.Заголовок()) И (Форма.к1.Заголовок()=Форма.к3.Заголовок()) И (Форма.к1.Заголовок()="") Тогда Форма.к1.Заголовок(ХОХ); ИначеЕсли (Форма.к4.Заголовок()=Форма.к5.Заголовок()) И (Форма.к4.Заголовок()=Форма.к6.Заголовок()) И (Форма.к4.Заголовок()="") Тогда Форма.к4.Заголовок(ХОХ); ИначеЕсли (Форма.к7.Заголовок()=Форма.к8.Заголовок()) И (Форма.к7.Заголовок()=Форма.к9.Заголовок()) И (Форма.к7.Заголовок()="") Тогда Форма.к7.Заголовок(ХОХ); ИначеЕсли (Форма.к1.Заголовок()=Форма.к4.Заголовок()) И (Форма.к1.Заголовок()=Форма.к7.Заголовок()) И (Форма.к1.Заголовок()="") Тогда Форма.к1.Заголовок(ХОХ); ИначеЕсли (Форма.к2.Заголовок()=Форма.к5.Заголовок()) И (Форма.к2.Заголовок()=Форма.к8.Заголовок()) И (Форма.к2.Заголовок()="") Тогда Форма.к2.Заголовок(ХОХ); ИначеЕсли (Форма.к3.Заголовок()=Форма.к6.Заголовок()) И (Форма.к3.Заголовок()=Форма.к9.Заголовок()) И (Форма.к3.Заголовок()="") Тогда Форма.к3.Заголовок(ХОХ); ИначеЕсли (Форма.к1.Заголовок()=Форма.к5.Заголовок()) И (Форма.к1.Заголовок()=Форма.к9.Заголовок()) И (Форма.к1.Заголовок()="") Тогда Форма.к1.Заголовок(ХОХ); ИначеЕсли (Форма.к3.Заголовок()=Форма.к5.Заголовок()) И (Форма.к3.Заголовок()=Форма.к7.Заголовок()) И (Форма.к3.Заголовок()="") Тогда Форма.к3.Заголовок(ХОХ); КонецЕсли; КонецПроцедуры |
|||
5
Жан Пердежон
22.08.11
✎
11:37
|
(4) видимо не все варианты состояний перебираются
|
|||
6
Жан Пердежон
22.08.11
✎
11:42
|
(4) твой алгоритм ставит ХОХ в пустую линию, если такой линии нет, то и хода комп не делает
|
|||
7
s-pc
22.08.11
✎
11:54
|
(5) (6) БЛАГОДАРЮ!!! Так оно и есть! :-)
|
|||
8
Злопчинский
22.08.11
✎
12:30
|
программировать игру в крестики-нолики тупым перебором - это афигеть. в качестве учебы - возьми крестики нолики на доске 10-на-10 и попрограммируй...
|
|||
9
s-pc
22.08.11
✎
12:42
|
(8) Ну это, собственно, и была первая фраза второго урока моего виртуального учителя (ну такой видеокурс по программированию "для чайников") - почти слово в слово! :-))))) Да и в первом уроке, пока он все на примере крестиков-ноликов и этого алгоритма показывал он раз 10 дико извинился и предупредил, что мол - не дай Бог вам вот так писать программы, но, мол, что с вами поделать, если мы пока только с тремя операторами познакомились...
Сейчас вот прохожу второй урок и... он тут объясняет практически то же самое, что мне на Мисте уже подсказали. Да, и кстати про "Крестики нолики на бесконечном поле" тоже упомянул. ;-) А программа получилась вполне работоспособной - только компьютер в ней такой тупой! :))) Я его уже раз десять обыграл! :-))))))))))))))))))))))))) |
|||
10
Ёпрст
22.08.11
✎
12:46
|
(9)выиграй у тупого рандома, хотя бы 500$
http://infostart.ru/public/16423/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |