Пятница, 29 Ноября 2024, 14:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Крестики-нолики на Глаголе
janusДата: Среда, 23 Июля 2008, 16:20 | Сообщение # 1
частый гость
Сейчас нет на сайте
Code
(******************************************************************************)
(**)                    ОТДЕЛ Игра;                    (**)
(******************************************************************************)
(* НАЗНАЧЕНИЕ: алгоритм игры "Крестики-нолики"                    *)
(* ПРАВИЛА:                    *)
(*   Игра идет на квадратном поле 3х3 клетки. Игроки по очереди ставят        *)
(*   в клетках - один крестики (+), второй нолики (о). Выигрывает тот,        *)
(*   кто первым замкнул линию (вертикальную, горизонтальную или диагональную).*)
(******************************************************************************)

ВИД   
   Позиция=ЦЕПЬ[10];  

ПЕР                 (*         номера клеток в позиции: |0 1 2| *)   
   позиция-:Позиция; (* текущая игровая позиция          |3 4 5| *)  
   опозиция:Позиция; (* текущий лучший ход машины        |6 7 8| *)

(******************************************************************************)
ЗАДАЧА ЕстьЛинияИз(зн:ЗНАК):КЛЮЧ;  
(* Цель:  поиск замкнутой линии в текущей позиции
  * До:    <зн> - вид искомых значков ('+' или 'о')
  * Ответ: ВКЛ, если в <позиция> есть линия из 3-х <зн> *)
УКАЗ  
   ЕСЛИ (позиция[0] = зн) И (позиция[1] = зн) И (позиция[2] = зн) ИЛИ  
        (позиция[3] = зн) И (позиция[4] = зн) И (позиция[5] = зн) ИЛИ  
        (позиция[6] = зн) И (позиция[7] = зн) И (позиция[8] = зн) ИЛИ  
        (позиция[0] = зн) И (позиция[3] = зн) И (позиция[6] = зн) ИЛИ  
        (позиция[1] = зн) И (позиция[4] = зн) И (позиция[7] = зн) ИЛИ  
        (позиция[2] = зн) И (позиция[5] = зн) И (позиция[8] = зн) ИЛИ  
        (позиция[0] = зн) И (позиция[4] = зн) И (позиция[8] = зн) ИЛИ  
        (позиция[6] = зн) И (позиция[4] = зн) И (позиция[2] = зн) ТО
     ВОЗВРАТ ВКЛ
   ИНАЧЕ
     ВОЗВРАТ ОТКЛ
   КОН
КОН ЕстьЛинияИз;  

(******************************************************************************)
ЗАДАЧА Окончена-():КЛЮЧ;  
(* Цель:  определить конец игры
  * Ответ: ВКЛ, если достигнут конец игры *)
ПЕР  
   n:ЦЕЛ;  
УКАЗ  
   ЕСЛИ ЕстьЛинияИз("+") ИЛИ ЕстьЛинияИз("о") ТО
     ВОЗВРАТ ВКЛ  
   КОН;  
   (* если еще можно ходить, то это не конец *)
   ОТ n:=0 ДО 8 ВЫП  
     ЕСЛИ позиция[n] = " " ТО
       ВОЗВРАТ ОТКЛ  
     КОН  
   КОН;  
   (* ничья *)
   ВОЗВРАТ ВКЛ  
КОН Окончена;  
    
(******************************************************************************)
ЗАДАЧА Оценить(свои:ЗНАК; alpha,beta,глубина:ЦЕЛ):ЦЕЛ;  
(* Цель:  просчет наилучшего хода методом Alpha-beta отсечения
  * До:    <свои>    - свои значки
  *        <alpha>   - нижняя оценка
  *        <beta>    - верхняя оценка
  *        <глубина> - глубина поиска
  * Ответ: оценка <позиция> с точки зрения <свои> *)
ПЕР  
   чужие:ЗНАК;  
   оценка:ЦЕЛ;  
   естьХод:КЛЮЧ;
   n:ЦЕЛ;  
УКАЗ  
   ЕСЛИ свои = "о" ТО чужие:="+" ИНАЧЕ чужие:="о" КОН;  
   ЕСЛИ ЕстьЛинияИз(чужие) ТО   
     (* это наш проигрыш *)  
     ВОЗВРАТ -1
   КОН;  
   (* пока не нашли ни одной свободной клетки *)
   естьХод:=ОТКЛ;
   (* переберем все клетки позиции *)  
   ОТ n:=0 ДО 8 ВЫП  
     ЕСЛИ позиция[n] = " " ТО   
       естьХод:=ВКЛ;
       (* сделаем ход *)  
       позиция[n]:=свои;  
       (* и оценим его *)  
       оценка:=-Оценить(чужие,-beta,-alpha,глубина+1);  
       ЕСЛИ оценка > alpha ТО  
         alpha:=оценка;  
         ЕСЛИ глубина = 0 ТО  
           опозиция:=позиция
         КОН  
       КОН;  
       (* восстановим позицию *)  
       позиция[n]:=" ";  
       (* отсечение *)
       ЕСЛИ alpha >= beta ТО  
         ВОЗВРАТ alpha
       КОН  
     КОН  
   КОН;  
   ЕСЛИ естьХод ТО
     ВОЗВРАТ alpha
   ИНАЧЕ
     (* ничья *)  
     ВОЗВРАТ 0
   КОН
КОН Оценить;  
    
(******************************************************************************)
ЗАДАЧА Ход-(n:ЦЕЛ);
(* Цель:  полуход "+" и ответный полуход "о"
  * До:    <n>       - куда ходят "+"
  * После: <позиция> - новая позиция  *)
ПЕР
   оценка:ЦЕЛ;
УКАЗ
   позиция[n]:="+";  
   ЕСЛИ НЕ Окончена() ТО   
     оценка:=Оценить("о",-2,2,0);  
     позиция:=опозиция  
   КОН  
КОН Ход;

(******************************************************************************)
ЗАДАЧА НачатьЗаново-;
(* Цель:  подготовиться к новой игре *)
УКАЗ
   позиция:="         "
КОН НачатьЗаново;

КОН Игра.

Вот такой вот язык, мне лично читать даже неудобно.
ЗЫ Взято из примеров http://www.glagol.nad.ru/


тсе:\ - отстой
home/junus
GC-VicДата: Среда, 23 Июля 2008, 18:18 | Сообщение # 2
GcUp.ru
Сейчас нет на сайте
Ну это язык программирования, в котором используются русские (слова) команды. Весьма интересная вещь.

Закон Мерфи: "Если вы уверены, что ваш поступок встретит всеобщее одобрение, кому-то он обязательно не понравится".
janusДата: Среда, 23 Июля 2008, 19:26 | Сообщение # 3
частый гость
Сейчас нет на сайте
Русская лексика ты хотел сказать? Вопрос был в том, что целесообразно ли это? Ведь в математике мы используем "латинский" язык, а не "кириллицу", хотя несомненно, по синтаксису, он схож с Паскалем.

тсе:\ - отстой
home/junus
SindДата: Среда, 23 Июля 2008, 21:31 | Сообщение # 4
был не раз
Сейчас нет на сайте
Вообще-то это не первый и не последний в прямом смысле русский язык программирования. И в Советском Союзе были такие и сейчас есть... но они как раз-таки не были никогда популярны, ни тогда, ни сейчас. Имеют право на жизнь, но выбирать или нет - это уже дело личности. Я на нём пытался программить чуть-чуть, вроде неплохая вещь.
janusДата: Четверг, 24 Июля 2008, 17:04 | Сообщение # 5
частый гость
Сейчас нет на сайте
Sind, я в 7м классе помню кодил на КуМире, гадость полная, даже бейсик лучше. Хотя конечно это дело вкуса.

ЗЫ скажу по секрету таких языков больше 50 штук точно (= smile Всё таки в СССР жили далеко не дебилы.


тсе:\ - отстой
home/junus
MoonshieldДата: Четверг, 24 Июля 2008, 22:45 | Сообщение # 6
частый гость
Сейчас нет на сайте
Что то не очень...

Не знаю даже что сказать wink

Не впечатлило что ли ?...


GameCreating.org.ru - всё о создании игр!
GnomovДата: Пятница, 25 Июля 2008, 02:16 | Сообщение # 7
Пустота – основа всего...
Сейчас нет на сайте
Quote (janus)
Sind, я в 7м классе помню кодил на КуМире, гадость полная, даже бейсик лучше. Хотя конечно это дело вкуса. ЗЫ скажу по секрету таких языков больше 50 штук точно (= Всё таки в СССР жили далеко не дебилы.

не дебилы - это отдназначно. Но были и советские языки на латыни и инглише в частности. А то вы так сказали, мол в СССР разрабатывали языки программирования только на кирилице.


KrostДата: Понедельник, 16 Марта 2009, 19:05 | Сообщение # 8
частый гость
Сейчас нет на сайте
Прога вроде неплохая,но до движка ей далековато...
ТритонДата: Среда, 02 Мая 2012, 17:12 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (janus)
Вот такой вот язык, мне лично читать даже неудобно.
А чему удивляться? Русские походу способны хорошо сделать только тот язык, на котором собираются общаться между собой.

Добавлено (02.05.2012, 17:12)
---------------------------------------------

Quote (janus)
Всё таки в СССР жили далеко не дебилы.
скорей не только.


Не всё так плохо, как оно есть на самом деле.
MatouДата: Среда, 02 Мая 2012, 17:14 | Сообщение # 10
Исходный коТ
Сейчас нет на сайте





Сообщение отредактировал Matou - Среда, 02 Мая 2012, 17:14
ArtGrДата: Среда, 02 Мая 2012, 17:34 | Сообщение # 11
старожил
Сейчас нет на сайте
Quote (Тритон)
А чему удивляться? Русские походу способны хорошо сделать только тот язык, на котором собираются общаться между собой.


Мат в качестве ЯП? Это будет оригинально.

По-моему, в языках программирования целесообразно использовать только английский как самый распространенный и привычный. А русский язык программирования - это такая же бессмысленница, как и домен .рф



... ла-ла-ла-ла-ла-ла-ла-ла! :-)
noTformaTДата: Среда, 02 Мая 2012, 18:37 | Сообщение # 12
Ukrainian independent game developer
Сейчас нет на сайте
Русские слова?
Вроде бы сейчас все известные яп, начинают поддерживать юникод.... ас3 точно скомпилит код ниже....

var приветМирТекст:String = "мир, привет";

function отобразитьПриветМир():void
{
trace(приветМирТекст);
}

for(var итерратор:int = 0; итерратор < 10; итерратор++)
{
отобразитьПриветМир();
}

весьма удобно для абфускации...


@noTformaT
GavolotДата: Среда, 02 Мая 2012, 19:49 | Сообщение # 13
Последователь Тени
Сейчас нет на сайте
noTformaT, ого даже не подозревал)) Тогда я смогу ведь часто упоминаемые вещи объявлять на русском и он его поймет))

В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.


Сообщение отредактировал Gavolot - Среда, 02 Мая 2012, 19:50
JSentДата: Среда, 02 Мая 2012, 22:18 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Перевести в IDE С++ на русский, тоже труда не составит. Но зачем?

Программист — человек, больной тяжёлой формой поражения коры головного мозга — интеллектом, который выражается в маниакально-деструктивном стремлении писать непонятные и бессмысленные наборы символов и словосочетаний.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг