设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 11770|回复: 3
打印 上一主题 下一主题

我做了一个小游戏

[复制链接]

9

主题

2

好友

164

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2021-7-24 20:55:06 |只看该作者 |倒序浏览
  1. from random import sample
  2. from easygui import msgbox, enterbox


  3. def guess_and_password(guess, password):
  4.     """
  5.     比较guess和password,计算出应print的值
  6.     :param guess: 用户输入
  7.     :param password: 实际密码
  8.     :return: 应print的值
  9.     """
  10.     a = 0
  11.     b = 0

  12.     for i in guess:
  13.         if i == password[guess.index(i)]:
  14.             a += 1
  15.         if i in password and i != password[guess.index(i)]:
  16.             b += 1

  17.     return f'{a}A{b}B'


  18. def main():
  19.     password = ''.join(map(str, sample(range(1, 11), 4)))

  20.     msgbox('''
  21.     游戏规则:
  22.    
  23.     请你猜一个4位密码,
  24.     密码由0-9组成,
  25.     不重复。
  26.     猜对正确位置上的数字为A,
  27.     猜到数字但位置不正确为B。
  28.     每次显示答案中A和B的个数。
  29.    
  30.     比如:密码是1234
  31.    
  32.     猜2345,显示0A3B
  33.     猜4231,显示2A2B
  34.    
  35.     直到显示4A0B的时候,
  36.     游戏胜利。
  37.    
  38.     如果想退出,
  39.     就点击“Cancel”。
  40.     ''')

  41.     while True:
  42.         guess = enterbox('你猜,密码是几呢?')
  43.         if guess is None:
  44.             msgbox(f'猜不出来吗?密码是{password}哟!')
  45.             break

  46.         result = guess_and_password(guess, password)

  47.         msgbox(result)

  48.         if result == '4A0B':
  49.             msgbox('恭喜你,你赢了!')
  50.             break
  51.         else:
  52.             msgbox('不对哦!')


  53. if __name__ == '__main__':
  54.     main()
复制代码
注:该程序需在终端/命令行中输入sudo pip3 install easygui/pip install easygui安装easygui库,这可是一个有GUI的程序哦!
本来还想用cpickle库做一个存档机制,但觉得有点复杂,ver1.0就不做了(既然有ver1.0,就一定会有ver2.0的 !至于发布时间嘛……有可能要到下周、下下周,但也可能就在明天)
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2021-7-24 23:37:15 |只看该作者
可以的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

9

主题

2

好友

164

积分

注册会员

Rank: 2

板凳
发表于 2021-7-25 11:18:35 |只看该作者
crossin先生 发表于 2021-7-24 23:37
可以的

你难道不觉得每次猜错都会“不对哦”很烦吗
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2021-7-25 19:07:05 |只看该作者
ZZZZZ 发表于 2021-7-25 11:18
你难道不觉得每次猜错都会“不对哦”很烦吗

那你可以不提示呗
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-11-25 06:09 , Processed in 0.022470 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部