Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 5.00
filip5210
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 18
#1

Написание игры "Змейка" - CMD/BAT

19.09.2013, 23:38. Просмотров 6161. Ответов 27
Метки нет (Все метки)

Вот я не понимаю: как в змейке указать ну что бы она двигалась автоматически и самое главное как что бы при нажатие на клавишу "верх" что бы она двигалась в верх? если "влево" то она двигалась влево?
как вообще создать движение? и что бы она подчинялась клавишам при нажатии "верх" "низ" "вправо" "влево" ???
Пожалуйста объясните.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 23:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написание игры "Змейка" (CMD/BAT):

Избавиться от сообщений "Файл не найден", "Системе не удается найти указанный путь", "Устройство не готово" - CMD/BAT
Здравствуйте. В батнике присутствует поиск файлов: for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do dir /b /s %%i:\lol*.*...

Не работает стрелка "влево" в движке для игры - CMD/BAT
@echo off SetLocal EnableExtensions set x==1 set y=0 Set GetKeyFileName=GetKey Call :MakeProgramGetKey %GetKeyFileName% ...

Копирование определённых файлов из папки, в которой находится сам копирующий bat-файл, в папку игры "Steam" - CMD/BAT
Здравствуйте, пишу скрипт который должен скопировать из текущей папки(где сам скрипт) в папку в которой может меняться название и буква...

for /f "delims=" %%b in ('dir !DirName! /b /s /a-d') do () жрёт символы "!" и "^" - CMD/BAT
Добрый день, коллеги. День сегодня убил, но так и не понял что делать, может поможете добрым советом. Кусок батничка: @ECHO OFF...

Небольшой движок для игры. Нужны люди, "шарящие" в Batch для его доработки! - CMD/BAT
Я создал небольшой движок для игры с помощю Dragokas .Но также для работы этой программы требуется команда ScanCode.exe ( внизу поста...

"tokens=*" "съедает" одну строчку при обработке вывода результата выполнения команды ping :) - CMD/BAT
Друзья, нашел батничек для пинга узла и вывода инфо в файл, кое что подправил под себя, но остался вопрос такого плана: Если просто...

27
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27746 / 15653 / 945
Регистрация: 15.09.2009
Сообщений: 67,839
Записей в блоге: 78
19.09.2013, 23:40 #2
сначала объясните, каким боком здесь раздел Bat/ CMD...
0
filip5210
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 18
20.09.2013, 20:19  [ТС] #3
так я в и хочу в bat написать
0
KosmonavtPad
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 5
20.09.2013, 20:54 #4
В бате такие вещи не пишут , если хочешь сделать такую игру , то юзай языки программирования (кому как конечно , но по мне легче всего C#)
0
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
21.09.2013, 15:03 #5
Старт уже положен.
Так что дерзайте: Сапер на CMD
1
Charles Kludge
Клюг
7641 / 3156 / 366
Регистрация: 03.05.2011
Сообщений: 8,382
21.09.2013, 15:06 #6
Цитата Сообщение от KosmonavtPad Посмотреть сообщение
В бате такие вещи не пишут
Ну почему же?
SNAKE.BAT - A pure Windows batch implementation of the classic game
Код
http://www.dostips.com/forum/viewtopic.php?f=3&t=4741
2
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
21.09.2013, 15:07 #7
Цитата Сообщение от filip5210 Посмотреть сообщение
при нажатие на клавишу "верх" что бы она двигалась в верх?
только стирать всю информацию на экране через cls и отрисовывать заново.

Цитата Сообщение от filip5210 Посмотреть сообщение
если "влево" то она двигалась влево?
Через получение служебного символа BackSpace: 0x08 by jeb
0
logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
21.09.2013, 15:11 #8
filip5210, нуу типа присвоить сторонам х/y/-x-y ну через определённый интервал плюсовать по еденице если небыло нажпта клавиша... но смотря как ищо ты пытаешся получить код клавиш
0
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
21.09.2013, 15:52 #9
logincyberforu, да, с отслеживанием нажатий там засада.
Здесь обсуждались нативные и не очень способы получить код клавиши.
0
logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
21.09.2013, 16:04 #10
Dragokas, как "быдло" вариант могу предложить управление только клавишей ентер, то есть змейка поварачивает толко на лево или право
0
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
21.09.2013, 16:18 #11
logincyberforu, не, принцип змейки ведь предусматривает некую скорость реакции.
Думаю, "пошаговый квест" тут не вариант -))

Можно, например, вместо стрелок использовать набор клавиш WASD, тогда интерактивность будет соблюдена с помощью встроенной в Win7 (и Win9x) choice:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
:begin
>nul CHOICE /C WASD /N
cls
call :%errorlevel%
goto begin
 
:1
echo W
exit /B
 
:2
echo A
exit /B
 
:3
echo S
exit /B
 
:4
echo D
exit /B
Для Win XP choice.exe, к сожалению, придется тянуть вместе с батником.
0
logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
21.09.2013, 16:30 #12
Dragokas, ууу так я думал прога и должна быть в формате bat. Чиста для прогеров давненько я в такие не играль.
а вот с ентером ступил,- както запамятывал что прога будет ждать нажатия ентер.

чесно говоря такого вопроса както не вставало... могу припомнить только "REPLY.COM" но думаю что он не подойдёт...
0
Eva Rosalene
Male-to-Female
4049 / 1586 / 242
Регистрация: 06.01.2013
Сообщений: 4,176
Завершенные тесты: 1
21.09.2013, 16:45 #13
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
set coordx=10
set coordy=10
set turn=0
:again
choice /C WASDP /T 1 /D P > nul
set /a turn=%turn%+1
if "%errorlevel%"=="1" (set /a coordy=%coordy%+1)
if "%errorlevel%"=="2" (set /a coordx=%coordy%-1)
if "%errorlevel%"=="3" (set /a coordy=%coordy%-1)
if "%errorlevel%"=="4" (set /a coordx=%coordx%+1)
cls
echo.Turn: %turn%
echo.Pos: {0x: %coordx% 0y:%coordy%}
goto again
Что-то типично-бредовое =D

Добавлено через 7 минут
Есть вариант попробовать на AutoIT кейграббер написать. С блекджеком и красивыми девушками. Но вот только он будет перехватывать сообщения даже когда окно игры неактивно (или придется добавить соответствующую проверку).
1
logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
21.09.2013, 17:01 #14
Просмотрел всю справку по cmd нашол только две команды которые могут быть полезны,- расширеная клава и расписание событий... но и из них только с большим трудом можно извлечь чтото полезное...

так что проще написать прогу на другом яп в консольном окне, а всем говорить что это cmd, но в exe
0
Eva Rosalene
Male-to-Female
4049 / 1586 / 242
Регистрация: 06.01.2013
Сообщений: 4,176
Завершенные тесты: 1
21.09.2013, 17:48 #15
Например:
Код
$Args = $CmdLine[0]
Dim $HKeys[$Args]
$HKeys[0] = ""
For $i = 1 to $CmdLine[0] - 1
 $HKeys[$i] = $CmdLine[$i + 1]
 HotKeySet($HKeys[$i], "SKey")
Next
if $CmdLine[0] = 0 then
   $delay = 200
else 
   $delay = Number($CmdLine[1])
EndIf
$T = TimerInit()
$Key = 0

While(True)
 if TimerDiff($T) >= $delay then 
	Exit($Key)
 EndIf
WEnd

Func SKey()
 for $i = 0 to $CmdLine[0] - 1
   if @HotKeyPressed = $HKeys[$i] then $Key = $i
 Next
EndFunc
Пример вызова из батника:
Bash
1
2
3
@echo off
start /wait KeyPress 2000 {ESCAPE} {UP} A
echo.%errorlevel%
Сначала идет время в миллисекундах, потом названия кнопок в формате AutoIT (они совпадают с VBS)
Только после окончания времени скрипт завершается и возвращает порядковый номер последней нажатой клавиши из списка, или 0, если такая клавиша не была нажата.
1
Вложения
Тип файла: zip KeyPress.zip (280.1 Кб, 35 просмотров)
21.09.2013, 17:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 17:48
Привет! Вот еще темы с ответами:

Поиск файлов с атрибутом "скрытый" ("hidden") на заданном дисковом томе с целью их дальнейшего удаления - CMD/BAT
Всем здравствуйте!!! Помогите пожалуйста создать батник. Задание: Поиск файлов с атрибутом "скрытый" ("hidden") на заданном...

Установить для пользователя значение "FALSE" параметра "PasswordExpires" командой WMIC - CMD/BAT
wmic useraccount where "name='имя_пользователя' " set passwordexpires=false это строка не работает

Разработать "универсальную" программу, позволяющую "динамически" изменять параметры окружения среды - CMD/BAT
Разработать "универсальную" программу позволяющую пользователю "динамически" (во время работы процедурного файла) изменять параметры...

Почему в начале вывода команды DIR указываются две папки с именами "." и "..", хотя их нигде нет? - CMD/BAT
Привет. Почему в выдаче в начале первые две папки имеют имена "." и "..", хотя их нигде нет?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru