Форум программистов, компьютерный форум, киберфорум
Наши страницы
Shell, Bash
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
IT_shnik
0 / 0 / 0
Регистрация: 21.10.2017
Сообщений: 40
Завершенные тесты: 1
1

Игра на Bash

13.05.2018, 20:02. Просмотров 836. Ответов 2
Метки нет (Все метки)

Добрый день! Нужно написать простенькую игру на bash. Можно очень примитивную, вплоть до "Вытяни спичку", "Угадай число". Я находил коды в интернете, но при подгруздке кода в WinSCP (работаю через Windows), код почему-то не запускался. Ну как не запускался, в консоли появлялась надпись "1й игрок, введите имя" потом вылетает окно "неудалось связаться с хостом" , хотя код на awk он принимает без проблем. Так же пытался запустить этот код через puTTy, но опять-таки прога не компилится, в конце кода появляется запись "-bash: !": event not found".

Кто шарит в Bash пожалуйста помогите!)



P.S вот собственно один из кодов которые я заливал.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
echo "1й игрок, введите имя"
read name1
echo "2й игрок, введите имя"
read name2
echo "Введите количество спичек"
read spichki
num=0
while [ $spichki -ge 0 ]; do
kilkist=$spichki
while [ $spichki = $kilkist ]; do
let "hid = $num % 2"
if [ $hid = 0 ];
then
echo "$name1, вытяните спичку от 1 до 3"
read riznuza
if [[ $riznuza > 3 || $riznuza < 1 ]];
then
echo "Не жульничяй!) Вы можете вытянуть  лишь от 1 до 3 спичек"
else
let "spichki -= $riznuza"
echo "Осталось $spichki спичек"
fi
else
echo "$name2,Вытяните спичку от 1 до 3"
read riznuza
if [[ $riznuza > 3 || $riznuza < 1 ]];
then
echo "Не жульничай!)Вы можете вытянуть  лишь от 1 до 3 спичек"
else
let "spichki -= $riznuza"
echo "Осталось $spichki спичек
fi
done
let "num += 1"
done 
if [ $hid = 0 ];
then
echo "$name2, вы победили!!! Поздравляю!!!"
else
echo "$name1, вы победили!!! Поздравляю!!!"
fi
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2018, 20:02
Ответы с готовыми решениями:

Bash
Я немного не понимаю, как мне из интерактивного режима перейти в командный,...

Скрипт bash
Написать и описать скрипт bash который будет похожий на &quot;телефонную книжку&quot; 1)...

скриптик на bash
Помогите реализовать скриптик. В краце расскажу ситуацию для чего нужен. Значит...

Bash: заменить while на for
как заменить while на for?

Вопрос по bash
Доброго вечера) В отсортированном по 1 полю файлу ищутся одинаковые строки ...

2
nezabudka
735 / 299 / 117
Регистрация: 28.06.2015
Сообщений: 767
Записей в блоге: 13
14.05.2018, 13:43 2
Лучший ответ Сообщение было отмечено IT_shnik как решение

Решение

Я не совсем поняла логику игры, может так

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env bash
 
read -p "1й  игрок, введите имя: " name1
read -p "2й игрок, введите имя: " name2
read -p "Введите количество спичек: " spichki
num=0
while [ $spichki -gt 0 ]; do
        if (( num % 2 )); then
                read -p "$name2, вытяните спичку от 1 до 3: " riznuza
                if [ $riznuza -gt 3 -o $riznuza -lt 1 ]; then
                        echo "Не жульничяй!) Вы можете вытянуть  лишь от 1 до 3 спичек"
                else
                        ((spichki-=riznuza))
                        echo "Осталось $spichki спичек"
                fi
        else
                read -p "$name1, вытяните спичку от 1 до 3: " riznuza
                if [ $riznuza -gt 3 -o $riznuza -lt 1 ]; then
                        echo "Не жульничай!) Вы можете вытянуть  лишь от 1 до 3 спичек"
                else
                        ((spichki-=riznuza))
                        echo "Осталось $spichki спичек"
                fi
        fi
        ((num+=1))
done
if (( num % 2 )); then
        echo "$name1, вы победили!!! Поздравляю!!!"
else
        echo "$name2, вы победили!!! Поздравляю!!!"
fi
1
IT_shnik
0 / 0 / 0
Регистрация: 21.10.2017
Сообщений: 40
Завершенные тесты: 1
22.05.2018, 20:34  [ТС] 3
nezabudka
Цитата Сообщение от nezabudka Посмотреть сообщение
может так
,да Вы правы. Но к сожалению и ваш вариант не интерпретируется. Пытался запустить в Putty, WinSCP(отдельно подгружал из файла), даже в онлайн компиляторах bash, но все безуспешно. В онлайн компиляторах выдает ошибку по типу "source_file.sh: line 33: syntax error near unexpected token `fi'
source_file.sh: line 33: `fi'", хотя в коде все правильно. А в WinSCP вылазит это.... Хотя с другим кодом проблем нет
Если будет возможность и желание, подскажите пожалуйста как решить эту проблему.
0
Миниатюры
Игра на Bash  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2018, 20:34

возврат в bash
echo &quot;Еще есть аддресса?(y/n)&quot; read y if ; then echo &quot;E-mail адрес&quot; read...

скрипт на Bash
Unix(bash) Файл состоит из нескольких столбцов. Найти среднее значение и ошибку...

Bash в emacs
Здравствуйте. Подскажите, возможно ли выполнение bash-скриптов и команд прямо в...


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

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

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