[Share Experiences] 写了个cp机选的脚本,纯属娱乐,仅做学习交流
Tofloor
poster avatar
anYun
deepin
2023-03-05 21:42
Author

我有理由怀疑,去cp店机选是有猫腻的……

所以我自己用 Shell脚本写了个模拟机选cp的脚本,纯属娱乐

思路

  • 根据cp游戏规则,随机生成号码 shuf
  • 对号码补位,当号码小于10时,号码前面补0
  • 根据菜单选择彩种,输入机选注数
  • 打印cp信息

脚本运行结果

录屏_选择区域_20230305133658.gif

脚本源码

#!/bin/bash
## 适用于双色球、3D、大乐透
## By anYun Kunming 2023.02.27
## https://deyun.fun 
## https://iquan.fun
## V5

## 新版日志
## 红篮球直接随机生成;增加3D彩种;增加计时器
## 双色球
function ssq(){
  red_ball=($(shuf -i 1-33 | shuf -n 6 | sort -n | tr '\n' ' '))
  bwei "${red_ball[*]}" && red_ball=(${new_arr[*]})
  blue_ball=$(shuf -i 1-16 | shuf -n 1)
  bwei "${blue_ball}" && blue_ball=${new_arr[*]}
  cpiao_arr="${red_ball[*]} + ${blue_ball}"
}

## 大乐透
function dltou(){
  red_ball=($(shuf -i 1-33 | shuf -n 5 | sort -n | tr '\n' ' '))
  bwei "${red_ball[*]}" && red_ball=(${new_arr[*]})
  blue_ball=($(shuf -i 1-12 | shuf -n 2))
  bwei "${blue_ball[*]}" && blue_ball=(${new_arr[*]})
  cpiao_arr="${red_ball[*]} + ${blue_ball[*]}"
}

## 3D
function sand(){
  cpiao_arr=""
  for (( k=0;k<3;k++ ))
  do
	  cpiao_arr="${cpiao_arr}$(shuf -i 0-9 | shuf -n 1)"
  done
}
## 补位
function bwei(){
  new_arr=($1)
  for (( i=0;i<${#new_arr[*]};i++ ))
  do
    if [ "${new_arr[$i]}" -lt 10 ];then
      new_arr[$i]="0${new_arr[$i]}"
    fi 
  done
}

## 数字判断
function isnum(){
  ## $1  传入一个数字
  ## $2  打印信息
  ## $3  执行的操作
  expr "${1}" '+' 1 >/dev/null 2>&1
  if [ $? -ne 0 ];then
    clear && echo "$2" && $3
  fi
}
function create_cpiao(){
  read -p " 问君几注为佳? " input_num
  isnum "${input_num}" " 输入非法" 'print_cpiao'
  echo -e " 正在生成彩票,请稍后..."
  timer 5 && clear
  echo ' --------------- 纯属娱乐.祝君好运 ---------------'
  echo " 彩票类型:${cpinfo}  机选注数:${input_num}"
  for (( j=1;j<=${input_num};j++ ))
  do
    $1
    n=$j
    if [ "$n" -lt 10 ];then
      n="0$j"
    fi
    echo " 第 $n 注:${cpiao_arr}"
  done
}
## 计时器
function timer(){
  t="${1}"
  while [ "${t}" -gt 0 ]
  do
    if [ "${t}" -ge 100 ];then
      echo -e "${t}\b\b\b\c"
    elif [ "${t}" -eq 99 ];then
      echo -e "   \b\b\b\c" && echo -e "\b${t}\b\c"
    elif [[ "${t}" -le 98 ]] && [[ "${t}" -ge 10 ]];then
      echo -e " \b\c" && echo -e "\b${t}\b\c"
    elif [ "${t}" -eq 9 ];then
      echo -e " \b\c" && echo -e "\b${t}\b\c"
    else
      echo -e "${t}\b\c"
    fi
    sleep 1
    t=$(( ${t} - 1 ))
  done
}
## 打印彩票
function print_cpiao(){
  echo -e ' --------------- 幸运机选.祝君好运 ---------------'
  echo -e ' 1 ------ 双色球\n 2 ------ 3D球\n 3 ------ 大乐透\n'
  read -p " 请选择要机选的彩种:" sel_num
  isnum "${sel_num}" " 输入非法" 'print_cpiao'
  case ${sel_num} in
    1)
      cpinfo='福彩双色球'
      create_cpiao 'ssq'
      ;;
    2)
      cpinfo='福彩3D'
      create_cpiao 'sand'
      ;;
    3)
      cpinfo='体彩大乐透'
      create_cpiao 'dltou'
      ;;
    *)
      clear && echo " 不支持此类输入" && print_cpiao
  esac
}
print_cpiao 
echo ' ------------- 相信美好的事情即将发生 ------------'

Reply Favorite View the author
All Replies
avatar
liwl
deepin
2023-03-05 22:02
#1

很会玩。我感觉我要暴富了

Reply View the author
avatar
xuqi
deepin testing team
2023-03-05 22:53
#2

😏

Reply View the author
avatar
anYun
deepin
2023-03-05 23:07
#3
liwl

很会玩。我感觉我要暴富了

proud

梦想要有的,万一实现了呢

Reply View the author
avatar
anYun
deepin
2023-03-05 23:07
#4
xuqi

😏

joy

Reply View the author
avatar
jjcui8595
deepin
2023-03-06 02:15
#5

like

Reply View the author
avatar
wtz
deepin
2023-03-06 02:58
#6

膜拜大佬~

Reply View the author
avatar
晚秋(lateautumn)
Moderator
2023-03-06 04:03
#7

在我眼里,能编代码的坛友都是坛神joy

Reply View the author
avatar
187******20
deepin
2023-03-06 05:31
#8

能不能多增加点种类

体彩 排列三排列五七星彩 福彩快乐8七乐彩

Reply View the author
avatar
anYun
deepin
2023-03-06 07:01
#9
187******20

能不能多增加点种类

体彩 排列三排列五七星彩 福彩快乐8七乐彩

主题思想就是利用 shuf 命令生成随机数字,然后根据游戏规则拼接起号码即可,当然我这个只是简单的单注机选,像组选、拖哪些就没有写进去

Reply View the author
avatar
anYun
deepin
2023-03-06 08:24
#10
晚秋(lateautumn)

在我眼里,能编代码的坛友都是坛神joy

Shell 脚本很好入门

2022-05-08T14:24:50.png

Reply View the author
avatar
anYun
deepin
2023-03-06 08:25
#11
wtz

膜拜大佬~

我还是一颗白菜😄

Reply View the author
avatar
青稚
deepin
2023-03-07 05:56
#12

like

Reply View the author