Пятница, 29 Марта 2024, 00:57

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Дополнительные темы » Форумные игры » Дуэль программистов.
Дуэль программистов.
AmriДата: Понедельник, 07 Октября 2013, 22:42 | Сообщение # 1
Auriss IGD
Сейчас нет на сайте
Итак, форумная игра - "Дуэли программистов"

1. Правила игры:

Изначально заданы четыре строчки программы:

Код
00 bool A = false      
01 bool B = false      
19 out(A) // выводим A      
20 out(B) // и B      


строки программы изменять нельзя но можно добавлять недостающие (с номерами от 02 до 18)

два соперника поочерёдно добавляют по одной строчке (или могут пропускать ход).

выигрыш одного означает проигрыш другого и наоборот.

ещё на своём ходу вместо добавления строчки или пропуска хода игрок может объявить что программа зациклилась. и если он прав, то он выиграл. если нет, то он проиграл.

если все строчки заполнены или если ход был пропущен два раза подряд (один раз одним игроком и сразу после этого другим), программа запускается на исполнение.

если программа выдала различные значения A и B, то выиграл первый игрок.
если программа выдала одинаковые значения A и B, то выиграл второй игрок.
если программа зациклилась то проиграл тот кто последним добавлял строчку.

добавлять можно строчки такого вида:

Код
dd L= not(L) // d- цифра 0..9, L- переменная A или B      
dd L = L      
dd goto dd      
dd if(L) goto dd // goto посылает лишь на строчки в пределах от 02 до 018 включительно


Конструкции типа А! = В и тому подобные не компилируются. Можно добавлять лишь то, что описано.

2. Количество участников:

Игра рассчитана на двух человек. Допускается возможность ведения параллельной игры, либо играют разные пары игроков.

3. Какой тут ЯП:

используется вымышленный ЯП.

4. Это что-то вроде небольшой логической разминки? Т.е. есть цель и программисты должны её решить кодингом, так?

Именно так.


Сообщение отредактировал Amri - Вторник, 08 Октября 2013, 21:19
LunarPixelДата: Вторник, 08 Октября 2013, 19:56 | Сообщение # 2
старожил
Сейчас нет на сайте
Я бы поиграл ))
Если кто надумает, мой ход:

00 bool A = false
01 bool B = false

14 A = not (B)

19 out(A) // выводим A
20 out(B) // и B


nonameДата: Вторник, 08 Октября 2013, 20:01 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
ПРАВИЛА:



//------------------------------------------------------------------------------------------------

Цитата LunarPixel ()
Я бы поиграл ))
Если кто надумает, мой ход:


ну давай.

только я не так уж часто здесь появляюсь. но остальных хрен дождёшься.

а чего бы и не сыграть чисто ради фана и обкатки правил?

итак, мой ход:

00 bool A = false
01 bool B = false

14 A = not (B)

16 if (B ) goto 5

19 out(A) // выводим A
20 out(B) // и B


все правила форумной игры Дуэль Программистов

Сообщение отредактировал noname - Пятница, 11 Октября 2013, 01:28
LunarPixelДата: Вторник, 08 Октября 2013, 20:04 | Сообщение # 4
старожил
Сейчас нет на сайте
00 bool A = false
01 bool B = false

05 A = B

14 A = not (B)

16 if (A) goto 5

19 out(A) // выводим A
20 out(B) // и B


nonameДата: Вторник, 08 Октября 2013, 20:11 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
--

Добавлено (08.10.2013, 20:11)
---------------------------------------------
LunarPixel, там вышла накладка. ну ладно. если ты ответил не заметив моего исправления то так пусть и будет.

но вообще ты тем ходом мог тогда выиграть.

надо бы как-то учесть в правилах исправления, чтобы такие как я не мухлевали ))

итак:

Цитата (LunarPixel)
00 bool A = false
01 bool B = false

05 A = B

14 A = not (B)

16 if (A) goto 5

19 out(A) // выводим A
20 out(B) // и B


мой ход:

00 bool A = false
01 bool B = false
02 goto 6

05 A = B

14 A = not (B)

16 if (A) goto 5

19 out(A) // выводим A
20 out(B) // и B


все правила форумной игры Дуэль Программистов
LunarPixelДата: Вторник, 08 Октября 2013, 20:24 | Сообщение # 6
старожил
Сейчас нет на сайте
00 bool A = false
01 bool B = false
02 goto 6

05 A = B
06 goto 17

14 A = not (B)

16 if (A) goto 5

19 out(A) // выводим A
20 out(B) // и B

noname, упустил момент с объявлением зацикливания ) исправил ) дабы не захламлять, пока левые сообщения буду делить. Чтобы хоть одну игру можно было четко проследить )


nonameДата: Вторник, 08 Октября 2013, 20:58 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
под этим спойлером другая ветка которая не случилась:


а под этим спойлером полезное сообщение:


и хватит уже всё стирать ))


все правила форумной игры Дуэль Программистов

Сообщение отредактировал noname - Вторник, 08 Октября 2013, 21:11
LunarPixelДата: Вторник, 08 Октября 2013, 21:04 | Сообщение # 8
старожил
Сейчас нет на сайте
noname, это я из 14-й строчки не то копирнул )) сразу поправил, думал успел ))

Ладно, идем с твоего последнего ответа по всем правилам )

00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A

14 A = not (B)

16 if (A) goto 5

19 out(A) // выводим A
20 out(B) // и B


nonameДата: Вторник, 08 Октября 2013, 21:15 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
Цитата (LunarPixel)
Ладно, идем с твоего последнего ответа по всем правилам )

а я уже исправил с учётом твоего исправления.

а теперь остановись и дай мне посмотреть что получилось ))

Добавлено (08.10.2013, 21:09)
---------------------------------------------

Цитата (LunarPixel)
00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A

14 A = not (B)

16 if (A) goto 5

19 out(A) // выводим A
20 out(B) // и B

так, это хороший ответ. давай продолжать его. сейчас отвечу.

Добавлено (08.10.2013, 21:14)
---------------------------------------------
00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A

14 A = not (B)
15 A = not (A)
16 if (A) goto 5

19 out(A) // выводим A
20 out(B) // и B

Добавлено (08.10.2013, 21:15)
---------------------------------------------
вроде не зацикливается..


все правила форумной игры Дуэль Программистов

Сообщение отредактировал noname - Вторник, 08 Октября 2013, 21:08
LunarPixelДата: Вторник, 08 Октября 2013, 21:16 | Сообщение # 10
старожил
Сейчас нет на сайте
00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A

14 A = not (B)
15 A = not (A)
16 if (A) goto 5
17 if (B) goto 18

19 out(A) // выводим A
20 out(B) // и B


nonameДата: Вторник, 08 Октября 2013, 21:22 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
LunarPixel, ну ёлки, я же так выиграю:

00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A

14 A = not (B)
15 A = not (A)
16 if (A) goto 5
17 if (B) goto 18
18 if (A) goto 13
19 out(A) // выводим A
20 out(B) // и B

а дальше я могу просто пасовать и всё. по-моему так.

и, да- обкатка показала ещё одну проблему правил. очень хорошо. новые правила будут лучше.

Добавлено (08.10.2013, 21:22)
---------------------------------------------
забыл выделить жирным. вот мой ход:

Цитата (noname)
18 if (A) goto 13


все правила форумной игры Дуэль Программистов
LunarPixelДата: Вторник, 08 Октября 2013, 21:45 | Сообщение # 12
старожил
Сейчас нет на сайте
Хотя, поспешил ) спать уже хочу ))

00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A

12 goto 15

14 A = not (B)
15 A = not (A)
16 if (A) goto 5
17 if (B) goto 18
18 if (A) goto 13
19 out(A) // выводим A
20 out(B) // и B


LasmelanДата: Вторник, 08 Октября 2013, 21:46 | Сообщение # 13
Construct 2 & Classic
Сейчас нет на сайте
Упс, простите, я думал, игра закончилась!
Я правильно понял, что goto - идти к какой-то строке, а потом продолжать от goto?


Мое портфолио:

Сообщение отредактировал Lasmelan - Вторник, 08 Октября 2013, 21:47
LunarPixelДата: Вторник, 08 Октября 2013, 21:55 | Сообщение # 14
старожил
Сейчас нет на сайте
Цитата (Lasmelan)
Я правильно понял, что goto - идти к какой-то строке, а потом продолжать от goto?

продолжать с той строки, на которую тебя goto отправило. Если на 18-й строке написано goto 4, то идешь на 4-ю строку и продолжаешь с нее.


LasmelanДата: Вторник, 08 Октября 2013, 22:03 | Сообщение # 15
Construct 2 & Classic
Сейчас нет на сайте
А, понятно! А кто из вас за то, чтобы две переменные совпали?

Мое портфолио:
nonameДата: Вторник, 08 Октября 2013, 22:12 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Цитата (LunarPixel)
Ну весьма интересно ) напиши обновления для правил, если таковые имеются, обновим )

да, спасибо.

а тестирование оказалось полезным и стало ясно, что правила надо менять:

во-первых, надо убрать безусловные операторы.

во-вторых, нельзя допускать строчки вида: A = B или A = not ( B ) иначе одна такая строчка на 18-й позиции полностью определяет кто выиграет ( если только игра не зациклится ).

ну и новые правила проще. если всё будет нормально, можно будет усложнять. количество строчек пока оставляю такое же, хотя руки очень чешутся сократить их до 00..10.

//------------------------------------------------------------------------------------------------

предложение по организации игр:



//------------------------------------------------------------------------------------------------

следующая версия правил:



Добавлено (08.10.2013, 22:08)
---------------------------------------------
//------------------------------------------------------------------------------------------------

Цитата (Lasmelan)
А, понятно! А кто из вас за то, чтобы две переменные совпали?

ну в правилах написано что "если программа выдала одинаковые значения A и B, то выиграл второй игрок" в прошедшей игре вторым игроком был я.

Добавлено (08.10.2013, 22:12)
---------------------------------------------
//------------------------------------------------------------------------------------------------
Цитата (LunarPixel)
Хотя, поспешил ) спать уже хочу ))

00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A

12 goto 15

14 A = not (B)
15 A = not (A)
16 if (A) goto 5
17 if (B) goto 18
18 if (A) goto 13
19 out(A) // выводим A
20 out(B) // и B

ого! серьёзная заявка! ( а потом когда игра закончится надо будет перенести окончание игры ДО новых правил)

сейчас отвечу.


все правила форумной игры Дуэль Программистов

Сообщение отредактировал noname - Вторник, 08 Октября 2013, 23:33
LasmelanДата: Вторник, 08 Октября 2013, 22:25 | Сообщение # 17
Construct 2 & Classic
Сейчас нет на сайте
Цитата (noname)
dd if(A) goto dd // goto посылает лишь на строчки в пределах от 02 до 018 включительно
dd if(B) goto dd

А можно if not(a)?


Мое портфолио:
nonameДата: Вторник, 08 Октября 2013, 22:41 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)

10 B = A
11 goto 14
12 goto 15

14 A = not (B)
15 A = not (A)
16 if (A) goto 5
17 if (B) goto 18
18 if (A) goto 13
19 out(A) // выводим A
20 out(B) // и B

Добавлено (08.10.2013, 22:41)
---------------------------------------------

Цитата (Lasmelan)
А можно if not(a)?

нет. только то что написано и никак иначе.

составить хорошие правила не так уж и просто. недостатки старых правил я уже описал.

если у новых правил не будет выявлено недостатков, то их можно будет постепенно усложнять и обкатывать.


все правила форумной игры Дуэль Программистов
LunarPixelДата: Вторник, 08 Октября 2013, 22:46 | Сообщение # 19
старожил
Сейчас нет на сайте
00 bool A = false
01 bool B = false
02 goto 6

04 goto 17

05 A = B
06 A = not (B)
07 if (B) goto 18

10 B = A
11 goto 14
12 goto 15

14 A = not (B)
15 A = not (A)
16 if (A) goto 5
17 if (B) goto 18
18 if (A) goto 13
19 out(A) // выводим A
20 out(B) // и B


LasmelanДата: Вторник, 08 Октября 2013, 22:52 | Сообщение # 20
Construct 2 & Classic
Сейчас нет на сайте
Интересная битва! Следующая будет завтра? Хочу участвовать!

Мое портфолио:
Форум игроделов » Дополнительные темы » Форумные игры » Дуэль программистов.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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