Skip to content

Commit e62a6d2

Browse files
author
Artem Sitnikov
committed
first commit
0 parents  commit e62a6d2

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed

README

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Правила игры
2+
Компьютер задумывает четырехзначное число. Цифры в числе не повторяются, 0 может стоять на первом месте. Игрок делает ходы, чтобы узнать это число. В ответ на каждый ход компьютер показывает число отгаданных цифр, стоящих на своих местах (число быков) и число отгаданных цифр, стоящих не на своих местах (число коров).
3+
Пример
4+
Компьютер задумал 0834. Игрок походил 8134. Компьютер ответил: 2 быка (цифры 3 и 4) и 1 корова (цифра 8).
5+
Новое число уже задумано компьютером. Играем!

bullAndCow.sh

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
#!/bin/bash
2+
version=1.0
3+
echo "version: "$version
4+
5+
rand()
6+
{
7+
rand=$((RANDOM%9000+999))
8+
#echo $rand
9+
10+
a=$((rand/1000))
11+
#echo $a
12+
b=$((rand - a*1000))
13+
b=$((b/100))
14+
#echo $b
15+
c=$((rand - a*1000 - b*100))
16+
c=$((c/10))
17+
#echo $c
18+
d=$((rand - a*1000 - b*100 - c*10))
19+
#echo $d
20+
}
21+
rand
22+
while :
23+
do
24+
25+
if [[ $a != $b && $a != $c && $a != $d && $b != $c && $b != $d && $c != $d ]]; then
26+
break
27+
else
28+
rand
29+
fi
30+
done
31+
#UNSWER - show first answer.
32+
#echo $a $b $c $d
33+
34+
echo "Игра 'Быки и Коровы' приветсвтуют Вас! "
35+
echo "
36+
Правила игры
37+
Компьютер задумывает четырехзначное число. Цифры в числе не повторяются, 0 может стоять на первом месте. Игрок делает ходы, чтобы узнать это число. В ответ на каждый ход компьютер показывает число отгаданных цифр, стоящих на своих местах (число быков) и число отгаданных цифр, стоящих не на своих местах (число коров).
38+
Пример
39+
Компьютер задумал 0834. Игрок походил 8134. Компьютер ответил: 2 быка (цифры 3 и 4) и 1 корова (цифра 8).
40+
Новое число уже задумано компьютером. Играем! "
41+
echo
42+
echo
43+
echo "Начали!"
44+
45+
while :
46+
do
47+
#clear
48+
#echo $a $b $c $d
49+
echo " cow = "$cow
50+
echo "bull = "$bull
51+
echo "Введите число:"
52+
read num
53+
echo $num
54+
55+
if [[ $num =~ ^[0-9][0-9][0-9][0-9]$ ]]; then
56+
echo
57+
else
58+
echo "Не тупи, вводи нормально!"
59+
continue
60+
fi
61+
a1=0
62+
a1=$((num/1000))
63+
b1=$((num - a1*1000))
64+
b1=$((b1/100))
65+
c1=$((num - a1*1000 - b1*100))
66+
c1=$((c1/10))
67+
d1=$((num - a1*1000 - b1*100 - c1*10))
68+
echo $a1 $b1 $c1 $d1
69+
70+
if [[ $a1 != $b1 && $a1 != $c1 && $a1 != $d1 && $b1 != $c1 && $b1 != $d1 && $c1 != $d1 ]]; then
71+
echo
72+
else
73+
echo "Не тупи, вводи нормально!"
74+
continue
75+
fi
76+
77+
bull=0
78+
79+
if [[ $a == $a1 ]]; then
80+
bull=$((bull+1))
81+
fi
82+
83+
if [[ $b == $b1 ]]; then
84+
bull=$((bull+1))
85+
fi
86+
87+
if [[ $c == $c1 ]]; then
88+
bull=$((bull+1))
89+
fi
90+
91+
if [[ $d == $d1 ]]; then
92+
bull=$((bull+1))
93+
fi
94+
#---------------------------
95+
cow=0
96+
if [[ $a1 == $b || $a1 == $c || $a1 == $d ]]; then
97+
cow=$((cow+1))
98+
fi
99+
if [[ $b1 == $a || $b1 == $c || $b1 == $d ]]; then
100+
cow=$((cow+1))
101+
fi
102+
if [[ $c1 == $a || $c1 == $b || $c1 == $d ]]; then
103+
cow=$((cow+1))
104+
fi
105+
if [[ $d1 == $a || $d1 == $b || $d1 == $c ]]; then
106+
cow=$((cow+1))
107+
fi
108+
109+
if [[ $bull == 4 ]]; then
110+
echo "Вы выиграли!!! Ура!!!"
111+
break
112+
fi
113+
done

0 commit comments

Comments
 (0)