想用python,做一个猜数游戏,实现人机互动原理

“人机猜数游戏”C高手来~~~~~~~~~~~~~~~~~~~~? - 爱问知识人
(window.slotbydup=window.slotbydup || []).push({
id: '2491531',
container: s,
size: '150,90',
display: 'inlay-fix'
“人机猜数游戏”C高手来~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
”的总流程图,if和for循环的部分流程图
*程序与程序注释
#include&stdio.h&
#include&time.h&
#include&stdlib.h&
void main()
{
int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数*/
ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/
stime=(unsigned int)ltime/2;
srand(stime);
z=random(9999); /*计算机想一个随机数*/
printf("I have a number with 4 digits in mind,please guess.\n");
for(c=1;;c++) /*c: 猜数次数计数器*/
{
printf("Enter a number with 4 digits:");
scanf("%d",&g); /*请人猜*/
a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i&5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
s=g;m=1;
for(t=1;t&5;t++) /*人所猜想的数*/
{
if(a%10==s%10) /*若第i位与人猜的第t位相同*/
{
if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜数字中的位置*/
if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
s/=10;
}
a/=10;
}
printf("You hane correctly guessed %d digits,\n",j);
printf("and correctly guessed %d digits in exact position.\n",k);
if(k==4) /*若位置全部正确,则人猜对了,退出*/
}
printf("Now you have correctly guessed the whole number after %d times.\n",c);
}
您的举报已经提交成功,我们将尽快处理,谢谢!
这次明明圈掉的是 (2 )
一个数 与 这个数各个数位数字和 被9除后的余数相等
所以,这个数减去各个数位数字和之后能被9整除
去这个网查一下吧不知是不是
好象不像你说的那样,总之去看看!!!!
#include"stdafx.h"#include&time.h&voidguess(intrandomNum...
i(2-i)=2i+1.
看完记得给个好评哦,谢谢!
其实本题用"中国剩余定理"(&数论&中有专门论述)很容易求得答案;符合条件的有85,169,...,等等,其中最小的是85。
大家还关注world77 的BLOG
用户名:world77
文章数:191
评论数:225
访问量:455738
注册日期:
阅读量:5863
阅读量:12276
阅读量:356927
阅读量:1053632
51CTO推荐博文
& & & 从第一个python的脚本到写着这篇博客,日子也不短了,没有像样的写个博客,人老懒散,恶习难改啊,不知老之将至矣,。古人是“发愤忘食,乐以忘忧,才会忘记老之将至”,呜呼,无病呻吟下。。。 & & & 好了,言归正传,开始今天的正题,今天这里讲要介绍一个简单的脚本――猜数字,这种小脚本几乎每个编程语言都会有的练习题,好了,下面直接上脚本了:看脚本之前介绍下这篇博客的3个回合:1.正常脚本运行2.添加统计猜测次数的代码3.如何利用作弊器来作弊,确保百发百中。#!/usr/bin/env python
import random
secret=random.randint(1,100)
print "This game is to guess a number for you!"
print " It is a number form 1 to 99,I'll give you 6 times to try. "
while guess != secret and tries & 6:
guess=input("Please input your guess number: ")
if guess & secret:
print "====Your guess is too low !====\n"
elif guess & secret:
print "====Your guess is too high!====\n"
tries=tries+1
if guess == secret:
print "Congratulations to you! Your
guess is right ! "
print "No more guesses! Better luck next time for you!"
print "The secret number was",secret & 上面的脚本十分简单,下面来解释下:第三行:secret=random.randint(1,100) & &表示这个数字是在1--99之间的范围,random这个模块是个求随机数的功能。第四,五行是定义了2个变量,第6,7行只是提示作用,没有其他作用,相信大家没有问题。第8行开始while的一个循环,并且规定了次数不能超过6次。第9--14行是个判断,如果猜测的数字和系统产生的数字比较之后,给出的提示。第15行的作用,当每输入一次并且猜测的不对的时候,次数加一做记录。第16行表示猜测正确之后的提示。 & & 下面我来给个脚本运行结果的截图吧:This game is to guess a number for you!
It is a number form 1 to 99,I'll give you 6 times to try.
Please input your guess number: 34
====Your guess is too high!====
Please input your guess number: 17
====Your guess is too high!====
Please input your guess number: 10
====Your guess is too high!====
Please input your guess number: 8
====Your guess is too high!====
Please input your guess number: 4
====Your guess is too high!====
Please input your guess number: 2
====Your guess is too high!====
No more guesses! Better luck next time for you!
The secret number was 1 &这个结果看上还不错吧,但是还不是很直观,我想给他加个猜测的次数,这样看起来就更清晰点:我们来看下最后的结果:C:\Documents and Settings\qhz\桌面&python a.py
This game is to guess a number for you!
It is a number form 1 to 99,I'll give you 6 times to try.
Please input your guess number: 23
====Your guess is too low !====
Above is No 1 Times guess
Please input your guess number: 34
====Your guess is too low !====
Above is No 2 Times guess
Please input your guess number: 56
====Your guess is too high!====
Above is No 3 Times guess
Please input your guess number: 49
====Your guess is too high!====
Above is No 4 Times guess
Please input your guess number: 42
====Your guess is too high!====
Above is No 5 Times guess
Please input your guess number: 40
====Your guess is too high!====
Above is No 6 Times guess
No more guesses! Better luck next time for you!
The secret number was 37这个结果就需要在原来的脚本上添加一行代码: print &Above is No & + str(tries) + & Times guess \n& & 打印结果表示这个是第几行。 & &哈哈,最后这个脚本介绍的差不多了,最后我想给他加个作弊器,想预先知道这个系统产生的数字是多少,你只要 在脚本中添加一行 print secret ,这样一个简单的作弊器就好了,哈哈,你可以运行下,方便你的测试,我们添加这行代码之后,可以运行下看看结果:C:\Documents and Settings\qhz\桌面&python a.py
The game system generated number is 62
This game is to guess a number for you!
It is a number form 1 to 99,I'll give you 6 times to try.
Please input your guess number: 45
====Your guess is too low !====
Above is No 1 Times guess
Please input your guess number: 34
====Your guess is too low !====
Above is No 2 Times guess
Please input your guess number: 62
Above is No 3 Times guess
Congratulations to you! Your
guess is right ! & & 哈哈,有作弊器就是管用,我也懒得猜了,直接输入结果,GAME OVER......最后贴下完整的代码:#coding=utf-8
#!/usr/bin/env python
Edit By QiaoHaiZhong
Version 0.0.1
import random
secret=random.randint(1,100)
print secret
print "The game system generated number is " + str(secret) + "\n"
print "This game is to guess a number for you!"
print " It is a number form 1 to 99,I'll give you 6 times to try. "
while guess != secret and tries & 6:
guess=input("Please input your guess number: ")
if guess & secret:
print "====Your guess is too low !====\n"
elif guess & secret:
print "====Your guess is too high!====\n"
tries=tries+1
print "Above is No " + str(tries) + " Times guess \n"
if guess == secret:
print "Congratulations to you! Your
guess is right ! "
print "No more guesses! Better luck next time for you!"
print "The secret number was",secret本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)Python基础(1)
据说Python语言是装逼神器,所以学Java的我也来学下Python。
Python的语法确实比较优美,都不要{},连标点符号都很少,下面我们用Python来写个猜数字游戏练练手。
&pre class=&python& name=&code&&# -*- coding: utf-8 -*-
Created on Sun Oct 23 19:35:01 2016
@author: qq
import random
x = randint(0,300)
print 'x=',x
print '您最多有五次猜数字的机会'
for i in range(5):
r = input()
print '猜大了,还剩',5-i-1
print '猜小了,还剩',5-i-1
print '猜中了'
print '猜数字游戏已结束'
其实语法和Java的增强的for循环相似,结果截图:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3533次
排名:千里之外
原创:17篇
评论:10条
(4)(7)(4)(4)用Python实现一个简单的算术游戏_Linux编程_Linux公社-Linux系统门户网站
你好,游客
用Python实现一个简单的算术游戏
来源:Linux社区&
作者:buaa_shang
用Python实现一个简单的算术游戏:
#!/usr/bin/env python
from operator import add, sub from random import randint, choice
ops = {'+': add, '-':sub}#定义一个字典MAXTRIES = 2
def doprob():& & op = choice('+-')& & #用choice从'+-'中随意选择操作符 &&
nums = [randint(1,10) for i in range(2)]& & #用randint(1,10)随机生成一个1到10的数,随机两次使用range(2) &
&nums.sort(reverse=True)& & #按升序排序&&
ans = ops[op](*nums)& & #利用函数&
&pr = '%d %s %d = ' % (nums[0], op, nums[1])& & oops = 0 & & #oops用来计算failure测试,当三次时自动给出答案& & while True:& & & & try:& & & & & & if int(raw_input(pr)) == ans:& & & & & & & & print 'correct'& & & & & & & & break& & & & & & if oops == MAXTRIES:& & & & & & & & print 'answer\n %s%d' % (pr, ans)& & & & & & & & break& & & & & & else:& & & & & & & & print 'incorrect... try again'& & & & & & & & oops += 1& & & & except (KeyboardInterrupt, EOFError, ValueError):& & & & & & print 'invalid ipnut... try again'def main():& & while True:& & & & doprob()& & & & try:& & & & & & opt = raw_input('Again? [y]').lower()& & & & & & if opt and opt[0] == 'n':& & & & & & & & break& & & & except (KeyboardInterrupt, EOFError):& & & & & & break
if __name__ == '__main__':& & main()
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 人机互动盲人声音识别 的文章

 

随机推荐