Игры о боевых кораблях, которые должны изменить свою сетку с X - D - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть программа, использующая скрипт bash

Цель состоит в том, чтобы отобразить вывод из тестового файла в стиле сетки.

В моем файле output.txt, который хранится до тех пор, пока $ l не будет a1, a2, a3, a4, c1, c2

У меня есть функция ниже, которая будет отображать следующее

mark_seat () {

# Called by display_seats
if [ $(echo "$1" | grep -c "$2$3") -gt 0 ]
then    

    echo -en '\E[1;35mX\E[0m'
      set_colwidth "" 5

else

        set_colwidth "" 6 
fi

}

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

На мой вопрос можно установить c1, c2 в качестве корабля-эсминца, поэтому, когда он отобразит вывод, он покажет «D», а не «X».

http://www.flickr.com/photos/70250115@N02/6381735021/

1 Ответ

0 голосов
/ 06 марта 2012

вы можете сделать это с помощью подстроки

при условии, что позиции сохраняются таким образом, что строка представляет строку

A_ROW="____X_____"
echo ${A_ROW:0:4}D${A_ROW:5:4}
____D_____

однако, есть и хитрость для получения позиции персонажа в строке

ASTRING="abcdefg"
POS_d=${ASTRING%d*}
echo position of d is ${#POS_d}
#note that POS_d is actually the string abc and ${#POS_d} is the length of abc
#since values start at 0, this is the position of d
#if you have multiple occurrences you can do this multiple times
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...