Копался в этой ветке форума и наткнулся на несколько топиков, в которых были выложены классические игрушки 80-90ых годов, сделанные на базе Excel. Ради интереса загуглил Морской бой - нашел несколько однотипных вариантов, в которых нужно воевать против компьютера. Так вот, может кто-то встречал многопользовательскую версию, чтобы два человека играли друг против друга используя общий доступ к файлу ? :-)
Добрый день всем! :-)
Копался в этой ветке форума и наткнулся на несколько топиков, в которых были выложены классические игрушки 80-90ых годов, сделанные на базе Excel. Ради интереса загуглил Морской бой - нашел несколько однотипных вариантов, в которых нужно воевать против компьютера. Так вот, может кто-то встречал многопользовательскую версию, чтобы два человека играли друг против друга используя общий доступ к файлу ? :-)ArkaIIIa
Я реализовывал игру в гомоку (как крестики нолики, только до 5 в ряд). Задумка была в том, что как только человек сделает ход - он сохраняет файл и у другого игрока отображаются изменения и можно сделать свой ход.
ArkaIIIa, привет.
Я реализовывал игру в гомоку (как крестики нолики, только до 5 в ряд). Задумка была в том, что как только человек сделает ход - он сохраняет файл и у другого игрока отображаются изменения и можно сделать свой ход.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
ArkaIIIa, файлик нет, остался на компе на прошлой работе. Но его воспроизвести не особо сложно. Его первая модификация работала вообще без макросов - "Вась, твой ход!", "Ок, сохраняюсь...".
ArkaIIIa, файлик нет, остался на компе на прошлой работе. Но его воспроизвести не особо сложно. Его первая модификация работала вообще без макросов - "Вась, твой ход!", "Ок, сохраняюсь...".Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Один файл в общей папке аки сервер. У двух игроков файлы-клиенты. В каждом клиенте два игровых поля - игрока и скрытое. Одна кнопка "Обновить" - единовременная подтяжка данных с "сервера". Другая кнопка ">>>" - подтяжка данных каждые 20 секунд, пока они не будут отличаться от данных в "клиенте". Или пока не истечёт условное время 10 минут. В скрытые листы дублируется значение переменной, отвечающей за "Чей щас ход?". Когда ход нашего игрока - он может редактировать ячейки поля и после нажатия "Обновить" ход отправляется на сервер. Конечно, после сверки со скрытым листом на количество вносимых изменений - их должно быть ровно 1, разумеется.
Кнопка "сброс" обнуляет всё, что возможно. И отправляет в ячейку "сервера" как бы переменную, которая при обновлении на втором клиенте тоже даст полную очистку. Для начала игры достаточно нажать "обновить". При этом отправляется запрос на "сервер"... Нет, слишком пафосно звучит... Если этот "клиент" первым из двух идёт на сервер, то на сервере и в скрытом листе прописывается, чей первый ход случайным образом. А обратившийся назначается игроком № 1. Если клиент вторым по очереди идёт на сервер, то он автоматически игрок № 2 и ходит либо первым, либо вторым в зависимости от судьбы игрока 1.
ArkaIIIa,
Один файл в общей папке аки сервер. У двух игроков файлы-клиенты. В каждом клиенте два игровых поля - игрока и скрытое. Одна кнопка "Обновить" - единовременная подтяжка данных с "сервера". Другая кнопка ">>>" - подтяжка данных каждые 20 секунд, пока они не будут отличаться от данных в "клиенте". Или пока не истечёт условное время 10 минут. В скрытые листы дублируется значение переменной, отвечающей за "Чей щас ход?". Когда ход нашего игрока - он может редактировать ячейки поля и после нажатия "Обновить" ход отправляется на сервер. Конечно, после сверки со скрытым листом на количество вносимых изменений - их должно быть ровно 1, разумеется.
Кнопка "сброс" обнуляет всё, что возможно. И отправляет в ячейку "сервера" как бы переменную, которая при обновлении на втором клиенте тоже даст полную очистку. Для начала игры достаточно нажать "обновить". При этом отправляется запрос на "сервер"... Нет, слишком пафосно звучит... Если этот "клиент" первым из двух идёт на сервер, то на сервере и в скрытом листе прописывается, чей первый ход случайным образом. А обратившийся назначается игроком № 1. Если клиент вторым по очереди идёт на сервер, то он автоматически игрок № 2 и ходит либо первым, либо вторым в зависимости от судьбы игрока 1.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Rioran Круто. Жалко, что файла не осталось :-) А файлы-клиенты по части макросов были идентичные? И что, если их одновременно запускают 3 пользователя?
Rioran Круто. Жалко, что файла не осталось :-) А файлы-клиенты по части макросов были идентичные? И что, если их одновременно запускают 3 пользователя?ArkaIIIa
Сообщение отредактировал ArkaIIIa - Среда, 13.08.2014, 16:05
ArkaIIIa, всего играло 2 человека, 3-й и не подразумевался... Но на всякий случай в "сервере" было отмечено, кто игрок 1, а кто 2. Если оба этих поля заняты (то есть, кто-то уже играет), то 3-й не подключится. Но, если кто-то скопирует свой индивидуальный файл и даст другому, то могут быть глюки. Они решаемы, если продумать систему присвоения индивидуального ключа каждому игроку.
Можно было бы шагнуть дальше и продумать систему саморасширяющегося сервера - чтобы одновременно могли играть более 1-й пары игроков... Но на работе было мало любителей поугарать по логическим играм.
ArkaIIIa, всего играло 2 человека, 3-й и не подразумевался... Но на всякий случай в "сервере" было отмечено, кто игрок 1, а кто 2. Если оба этих поля заняты (то есть, кто-то уже играет), то 3-й не подключится. Но, если кто-то скопирует свой индивидуальный файл и даст другому, то могут быть глюки. Они решаемы, если продумать систему присвоения индивидуального ключа каждому игроку.
Можно было бы шагнуть дальше и продумать систему саморасширяющегося сервера - чтобы одновременно могли играть более 1-й пары игроков... Но на работе было мало любителей поугарать по логическим играм.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279