CWarBot
Материал из wiki-MyMakerBot
/start
<b>«Филлер» — игра для двух игроков</b> Игра проходит на поле, состоящем из квадратных клеток нескольких разных цветов. В начале игры клетки раскрашены случайным образом (как правило, объединены в кластеры по несколько). Каждый игрок начинает игру со своей стартовой клетки, находящейся на краю поля (в углу). <b>Бот начинает играть ↖️ в левом верхнем углу, вы начинаете ↘️ в правом нижнем!</b> На каждом ходу игрок изменяет цвет стартовой клетки на любой другой — при этом все клетки, примыкающие к стартовой по стороне и окрашенные в тот же цвет, также перекрашиваются в выбранный цвет. Таким образом игрок «захватывает» соседние клетки, перекрашивая свою область в цвет этих клеток. Игрок не может выбрать цвет, которым на этом ходу окрашена область противника. Цель игры состоит в захвате более половины клеток игрового поля. <b>Игра создана на конструкторе</b> @MyMakerBot {key l=2 t='Начать играть' c='/begin'}
/begin
{filler oper='make_game' width=8 height=8} {$data = [ 'field' => $field, 'width' => $width, 'height' => $height, 'l1' => $l1, 'l2' => $l2 ]} {interface name='filler' value=$data} {import c='/show'}
/step
{interface name='filler'} {$field = $filler.field} {$width = $filler.width} {$height = $filler.height} {$l1 = $filler.l1} {$l2 = $filler.l2} {filler oper='change_color' field=$field width=$width height=$height target=$argv[1]} {$data = [ 'field' => $field, 'width' => $width, 'height' => $height, 'l1' => $l1, 'l2' => $l2 ]} {interface name='filler' value=$data} {import c='/show'}
/show
{interface name='filler'} {$field = $filler.field} {$width = $filler.width} {$height = $filler.height} {$l1 = $filler.l1} {$l2 = $filler.l2} Создано на @MyMakerBot {$m = ['', '🈹', '🈺', '🈳', '🚺', '💹', '🈁']} {for $y=0 to $height-1} {for $x=0 to $width-1} {key l=10+$y t=$m[$field[$y][$x]] c="/s"} {/for} {/for} {if ($l1+$l2) < ($width*$height)} {key l=99 t="бот: {$l1} --- {$l2} :{$user.first_name}" c='/show'} {for $i=1 to count($m)-1} {if $i == $field[0][0] || $i == $field[$height-1][$width-1]} {key l=100 t="⚪️" c="/show"} {else} {key l=100 t=$m[$i] c="/step {$i}"} {/if} {/for} {else} {db_form name='rating' idx=$user_id} {if empty($rating)} {db_save name='rating' idx=$user_id data=['win'=>0, 'games'=>0, 'rate'=>0, 'iam'=>0, 'bot'=>0]} {db_form name='rating' idx=$user_id} {/if} {if $l1 == $l2} {return dialog='Ничья'} {elseif ($l1>$l2)} {return dialog="📺 Бот выиграл со счетом {$l1} : {$l2}"} {else} {$rating.win=$rating.win+1} {return dialog="🎉 Поздравляем! 🎉 {$user.first_name} выиграл со счетом {$l2} : {$l1}"} {/if} {$rating.games=$rating.games+1} {$rating.bot=$rating.bot+$l1} {$rating.iam=$rating.iam+$l2} {$rating.rate=round($rating.iam/$rating.bot,3)} {db_save name='rating' idx=$user_id data=$rating} {key l=1000 t='💠 Заново' c="/start"} {key l=1000 t='📊 Рейтинг' c="/rating"} {/if} /rating {db_form name='rating' order=['rate'=>'desc'] limit=900} 💠 <b>FILLER</b> 💠 <i>N. Rate (Win / Games)</i> _____________________ {$n=0}{$place=0}{$all=0} {foreach from=$rating key=k item=v}{$all=$all+$v.games} {if ($v.games>=10)} {$n=$n+1}{if $v.user_create.user_id==$user_id}{$place=$n}{/if} {if $n<=20} {$n}. <b>{$v.rate}</b> <i>({$v.win} / {$v.games})</i> - <code>{mb_substr(str_replace('@', '',$v.user_create.first_name), 0, 25, 'utf-8')} {mb_substr($v.user_create.last_name, 0, 25, 'utf-8')}</code> {/if}{/if} {/foreach} {$rating_cnt=count($rating)} {db_form name='rating' idx=$user_id} {if $rating.games>=10} {if $place>0}Ваше место: <b>{$place}</b> из <b>{$rating_cnt}</b>{/if} {else} Для попадания в рейтинг вы должны сыграть не менее <b>10-ти</b> игр {/if} Всего сыграно <b>{$all}</b> игр! {interface name='filler'} {if !empty($filler)} {key l=2 t='💠 Продолжить играть' c='/show'} {else} {key l=2 t='💠 Начать играть' c='/begin 8 8'} {/if}