设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

猜密码游戏

[复制链接]

0

主题

0

好友

64

积分

注册会员

Rank: 2

42#
发表于 2017-7-21 18:15:40 |只看该作者
怎么跟他们一样把代码复制上来,可以让别人复制代码呀
回复

使用道具 举报

0

主题

0

好友

64

积分

注册会员

Rank: 2

41#
发表于 2017-7-21 17:42:54 |只看该作者
我也来试下,请老师批阅~

# -*- coding: cp936 -*-
import random
def JudgePasswd(a,b):   
    if a == b:
        return 1
    else:
        return 0
list1 = ['0','1','2','3','4','5','6','7','8','9']
str_1 = random.sample(list1,4)
num_1 = int(str_1[0])
num_2 = int(str_1[1])
num_3 = int(str_1[2])
num_4 = int(str_1[3])
True_num = 0
str_2 = raw_input('请输入四位密码(四位0-9且不重复):')
while True_num != 4:
    num_11 = int(str_2[0])
    num_12 = int(str_2[1])
    num_13 = int(str_2[2])
    num_14 = int(str_2[3])
    True_num_1 = JudgePasswd(num_1,num_11)
    True_num_2 = JudgePasswd(num_2,num_12)
    True_num_3 = JudgePasswd(num_3,num_13)
    True_num_4 = JudgePasswd(num_4,num_14)
    True_num = True_num_1 + True_num_2 + True_num_3 +True_num_4
    if True_num < 4:
        print '此次您的结果为%dA%dB' %(True_num,4-True_num)
        str_2 = raw_input('请重新输入四位密码(四位0-9且不重复):')
else:
    print '恭喜!游戏结束'
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

40#
发表于 2017-3-12 18:40:34 |只看该作者
这个是我的实现方案
  1. from random import randint

  2. passwdInt = randint(1000,9999)
  3. passwd = str(passwdInt)
  4. print(passwd)
  5. while True:
  6.     # print("请输入猜测的密码:")
  7.     inputpassWd = input()
  8.     if len(inputpassWd) == 0:
  9.         continue
  10.     rightPosCount = 0
  11.     rightNumberCount = 0
  12.     char = ''
  13.     for i in range(len(inputpassWd)):
  14.         char = inputpassWd[i]
  15.         if char == passwd[i]:
  16.             rightPosCount += 1
  17.         else:
  18.             if char in passwd:
  19.                 rightNumberCount += 1

  20.     if rightPosCount== 4 and rightNumberCount == 0:
  21.         print('结果正确:' + str(rightPosCount) + 'A' + str(rightNumberCount) + 'B')
  22.         break
  23.     else:
  24.         print('结果错误:' + str(rightPosCount) + 'A' + str(rightNumberCount) + 'B')
复制代码
回复

使用道具 举报

1

主题

0

好友

45

积分

新手上路

Rank: 1

39#
发表于 2017-3-9 06:45:37 |只看该作者
crossin先生 发表于 2017-3-8 17:21
留言框上有一个  标志,可以添加代码

谢谢~~~
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

38#
发表于 2017-3-8 17:21:17 |只看该作者
huiwenwu 发表于 2017-3-8 06:22
看完教程写的,比较初级。。
不知有什么方便的方法复制代码到留言区?

留言框上有一个 <> 标志,可以添加代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

45

积分

新手上路

Rank: 1

37#
发表于 2017-3-8 06:22:38 |只看该作者
看完教程写的,比较初级。。
不知有什么方便的方法复制代码到留言区?

#!/usr/bin/python

import re

passwd='1234'
#for i in passwd:
#  passwd_li.append(i)

guess=input('Please enter your guess: ')
guess_str=str(guess)
A=0
B=0
times=0

if re.findall(r'\d{4}',guess_str):
  guess_li=[]
  for i in guess_str:
    guess_li.append(i)

  for i in guess_str:
    if i==passwd[times]:
      A+=1
      times+=1
    elif re.findall(i,passwd):
      B+=1
      times+=1
    else:
      times+=1

  print '%dA%dB' % (A,B)

else:
  print 'Please input 4 numbers.'


回复

使用道具 举报

0

主题

0

好友

26

积分

新手上路

Rank: 1

36#
发表于 2017-1-23 10:25:28 |只看该作者
import random

s = range(10)
password = random.sample(s,4)
password = list(map(str,password))
#print(password)
dic_password = dict(list(enumerate(password)))
#print(dic_password)
win = False
while win ==False:
    guess = input("guess the password(4 digtals):")
    dic_guess = dict(list(enumerate(list(guess))))
    #print(dic_guess)
    A = 0
    B = 0
    for i in dic_password:
        for j in dic_guess:
            if i == j:
                    if dic_password[i] == dic_guess[j]:
                        A += 1
            else:
                    if dic_password[i] == dic_guess[j]:
                        B += 1

    result = str(A)+"A"+str(B)+"B"
    print(result)
    if result == "4A0B":
        win = True
        print("you win!")





回复

使用道具 举报

1

主题

0

好友

47

积分

新手上路

Rank: 1

35#
发表于 2016-4-15 22:41:14 |只看该作者
import random
l = [0,1,2,3,4,5,6,7,8,9]
du = ""
for i in range(4):
    ff = random.choice(l)
    du += str(ff)
    l.remove(ff)
print("答案是"+ du )
def guess(du):
    you = input("请输入四位数 不能重复")
    if you == du:
        print("good")
    else :
        right_nume = 0
        wrong_nume = 0
        i = 0
        while i < 4:
            if you[i] in du:
                if you[i] == du[i]:
                    right_nume += 1
                else :
                    wrong_nume += 1
            i += 1
        print(str(right_nume) + "A" + str(wrong_nume) + "B")
        guess(du)
guess(du)
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

34#
发表于 2016-4-13 14:25:38 |只看该作者

这次加上随机的,自己做了一遍,写了20多组才得到正确答...

  1. #!/usr/bin/env python
  2. # coding:utf8
  3. # writen by Lisp at 16/4/13

  4. import random

  5. # 初始化密码,随机初始化
  6. str1 = random.sample(range(10), 4)
  7. str1 = ''.join(map(lambda m: str(m), str1))

  8. print '请输入四位不重复的数字密码'
  9. while True:
  10.     A = 0
  11.     B = 0
  12.     str2 = raw_input('> ')
  13.     b = [x for x in str2 if str2.count(x) > 1]
  14.     if len(str2) == 4 and str2.isdigit() and not b:
  15.         for i in range(len(str1)):
  16.             # print i
  17.             if str1[i] == str2[i]:
  18.                 A += 1
  19.             elif str1[i] in str2:
  20.                 B += 1
  21.         print '{0}A{1}B'.format(A, B)
  22.         if A == 4 and B == 0:
  23.             print 'Bingo!'
  24.             exit(0)
  25.     else:
  26.         print '输入错误! 请输入四位不重复的数字密码.'
复制代码
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

33#
发表于 2016-4-13 14:08:05 |只看该作者
刚看到这个板块的内容,非常棒!以后就经常来这里训练了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-18 17:49 , Processed in 0.018875 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部