名字猜数字

例35

需求:1. 执行脚本后,提示输入名字(英文的,可以是大小写字母、数字不能有其他特殊符号),然后输出一个随机的0-99之间的数字,脚本并不会退出,继续提示让输入名字
2. 如果输入相同的名字,输出的数字还是第一次输入该名字时输出的结果
3. 前面已经输出过的数字,下次不能再出现
4. 当输入q或者Q时,脚本会退出

#!/bin/bash
f=/tmp/user_number.txt
j_n()
{
    while :
    do
	n=$[RANDOM%100]
	if awk '{print $2}' $f|grep -qw $n
	then
	    continue
	else
	    break
	fi
    done
}
while :
do
    read -p "Please input a username: " u
    if [ -z "$u" ]
    then
	echo "请输入用户名."
	continue
    fi
    if [ $u == "q" ] || [ $u == "Q" ]
    then
	exit
    fi 
    u1=`echo $u|sed 's/[a-zA-Z0-9]//g'`
    if [ -n "$u1" ]
    then
	echo "你输入的用户名不符合规范,正确的用户名应该是大小写字母和数字的组合"
	continue
    else
	if [ -f $f ]
	then
	    u_n=`awk -v uu=$u '$1==uu {print $2}' $f`
	    if [ -n "$u_n" ]
	    then
		echo "用户$u对应的数字是:$u_n"
	    else
		j_n
		echo "用户$u对应的数字是:$n"
	        echo "$u $n" >>$f
	    fi
	else
	    j_n
	    echo "用户$u对应的数字是:$n"
	    echo $u $n >> $f
	fi
    fi
done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python猜数字游戏可以通过使用随机数模块random来实现。在这个游戏中,计算机会随机生成一个1到100的数字,而玩家需要猜测这个数字。游戏规则是,玩家有一定的次数可以猜测,如果猜测的数字大于计算机生成的数字,则会提示"太大了",如果猜测的数字小于计算机生成的数字,则会提示"太小了",如果猜测的数字等于计算机生成的数字,则会提示"猜中了"。当玩家猜中数字或者次数用尽时,游戏结束。 下面是一个使用Python编写的猜数字游戏的示例代码: ```python import random def guess_number(chances, num): for guesses_taken in range(chances): guess = int(input('请输入你猜测的数字: ')) if guess < num: print('太小了,你还有%d次机会' % (chances - 1 - guesses_taken)) elif guess > num: print('太大了,你还有%d次机会' % (chances - 1 - guesses_taken)) else: return True return False print('你好!请告诉我你的名字是什么?') name = input() print('你好,' + name + ',我在想一个数字,你能猜出是多少吗?') print('这个数字是1到100之间的整数') chances = int(input('你想要多少次机会?请输入一个数字(5或者10):')) number = random.randint(1, 100) if guess_number(chances, number): print('恭喜你猜中了!') else: print('很遗憾,' + name + ',你没有猜中数字。') print('游戏结束!') ``` 上述代码中,我们首先引入了random模块,然后定义了一个为guess_number的函数来实现猜数字的逻辑。在主程序中,我们首先询问玩家的名字,并给出游戏的介绍。然后询问玩家希望有多少次机会来猜数字。接着,我们使用random.randint来生成一个1到100之间的随机数字,并调用guess_number函数来进行游戏。最后,根据玩家是否猜中数字,给出相应的提示信息并结束游戏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值