python实现模拟数字的魔术游戏

游戏介绍

在游戏中,魔术师要每位观众心里想一个三位数abc (a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值。只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:“你算错了!”。

【输入】

输入一个正整数。

【输出】

输出对应的三位数。如果对应的三位数不存在,则输出:“Thesum you calculated is wrong!”。

【输入示例】

1998

【输出示例】

The sum you calculated is wrong!

解题思路

简单粗暴的进行循环赋值比较

涉及的知识点

  • python基础语法
  • 字符串类型和数字类型的相互转换
  • range()内置函数的使用
  • for循环的嵌套使用
  • if-else结构语句的使用

主要代码

def magic_numbers():
    '''
    魔术数字,根据数据总和推算原始数据
    核心思想:依次将0-9赋值给abc,进行循环比较后得出结果
    '''
    # 用户算出的数字总和,需要转换数据类型
    user_input = int(input('请输入数字的总和:\n'))
    # 默认用户失败时的输出结果
    result = 'The sum you calculated is wrong!'

    #3层嵌套for循环依次对abc进行赋值
    for a in range(10):
        for b in range(10):
            for c in range(10):

                # 将数字装换为字符串进行排列组合和拼接
                a = str(a)
                b = str(b)
                c = str(c)

                # 要将拼接好的字符串组合重新转换为数字类型 即int
                acb = int(a+c+b)
                bac = int(b+a+c)
                bca = int(b+c+a)
                cab = int(c+a+b)
                cba = int(c+b+a)

                # 计算出每种排列组合后的数字的总和
                sum = acb + bac + bca + cab + cba

                # 用排列组合的总和与用户给出的总和进行比较,相等则正确,并排列出abc的值,输出
                if sum == user_input:
                    abc = int(a+b+c)
                    # 将默认的失败值置空,备后面判断使用
                    result = ''
                    print('The original number is : ',abc)

    # 循环完成后判断默认的失败值是否改变,如果没有改变则直接输出,表示用户计算错误
    if result != '':
        print(result)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python实现模拟数字的魔术游戏

    游戏介绍 在游戏中,魔术师要每位观众心里想一个三位数abc (a.b.c分别是百位.十位和个位数字),然后魔术师让观众心中记下acb.bac.bca.cab.cba五个数以及这5个数的和值.只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少.例如,观众甲说他计算的和值是1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:"你算错了!". [输入] 输入一个正整数. [输出] 输出对应的三位数.如果对应的三位数不存在,则输出:&

  • python编写猜数字小游戏

    本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 import random secret = random.randint(1, 30) guess = 0 tries = 0 print("我叫丁丁,我有一个秘密数字!") print("数字从1到30,你只有6次机会!") while int(guess) != secret and tries < 6: print("你猜的数字是?") guess

  • python模拟点击玩游戏的实例讲解

    小编发现很多小伙伴都喜欢玩一些游戏,而手游因为玩的场景限制不多,所以受众的人更多.游戏里有很多重复的任务需要我们完成,虽然过程非常无聊,但是为了任务奖励还是有很多小伙伴不厌其烦的去做.那么,有没有什么方法,可以让我们从重复的操作中解放出来呢?今天小编就教大家用python模拟点击玩游戏. 这里以阴阳师为例,比如刷觉醒: 我们应该在探索页面中,点击左下角的觉醒材料 然后选择你要刷的麒麟 选择层数,点击挑战 点击准备 点击任意位置获得红蛋,点击任意位置开启,再次点击任意位置回到 3 开始下一次 刷刷

  • 教你如何用python开发一款数字推盘小游戏

    今年年初,新一季的<最强大脑>开播了,第一集选拔的时候大家做了一个数字游戏,名叫<数字华容道>,当时何猷君以二十几秒的成绩夺得该项目的冠军,看了这个游戏之后我决定要写一个<数字华容道>的程序,过去了半年,我终于记起了这件事,今天就来实现. 数字推盘游戏(n-puzzle)是一种智力游戏,常见的类型有十五数字推盘游戏和八数字推盘游戏等.十五数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用),当15个数字依次排序并且最后一个格子为空位即代表挑战

  • 如何利用Python写猜数字和字母的游戏

    目录 前言 猜数字游戏 猜字母游戏 前言 学完语法和正在学习语法的时候,我们可以在空闲的时候,写几个简单的小项目,今天我们就用最基础的语法看两个实战语法练习 猜数字游戏 项目游戏说明:让用户输入一个数字,然后系统自动产生一个序列里面的随机数,然后让用户猜,直到猜正确之后程序才会停止,不让就会一直运行. 涉及知识:while循环,条件语句,字符串定义,random模块(随机序列数的产生) 代码如下; # -*- coding : utf-8 -*- import random num = rand

  • Python实战之实现康威生命游戏

    前言 康威生命游戏设计并不难,我的思路就是借助pygame进行外观的展示,最近一段时间的游戏项目都是使用pygame进行的,做起来比较顺利.内部代码的实现也比较简单根据他的规则我们需要的是多次的计算和判断,再刷新数组. 一.康威生命游戏规则 当周围仅有1个或没有存活细胞时, 原来的存活细胞进入死亡状态.(模拟生命数量稀少)当周围有2个或3个存活细胞时, 网格保持原样.当周围有4个及以上存活细胞时,原来的存活细胞亦进入死亡状态.(模拟生命数量过多)当周围有3个存活细胞时,空白网格变成存活细胞.(模

  • 如何使用python实现模拟鼠标点击

    这篇文章主要介绍了如何使用python实现模拟鼠标点击,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 不知道大家在工作中有没有一些工作需要重复的点击鼠标,因为会影响到财务统计报表的关系,我们每个月底月初都要修改ERP中的单据日期,单据多的时候光修改就能让你点鼠标点到手麻.(这里要吐槽一下浪沙软件,别的单据都可以批量修改日期,就是这个移仓单不行,你们研发怎么就这么懒?剩下这么点工作就不完成他?)之前同事有跟我提到过键盘精灵,因为当时负责别的工作,

  • python实现井字棋小游戏

    本文为大家分享了python实现井字棋小游戏,供大家参考,具体内容如下 周五晚上上了python的选修课,本来以为老师是从python的基础语法开始的,没想到是从turtle画图开始,正好补上了我以前一些不懂的地方,有人讲一下还是比啃书好一点. 之前从图书馆借了一本python游戏编程,看了前面几章后就没怎么看了,晚上突然想看看,然后跟着教程写个游戏的.最后就有了这个井字棋的诞生,其实代码并不是很长,主要是思路,需要考虑的周全一点.代码写完后就和电脑下了好久的井字棋,一局都没赢,真的是很无奈了,

  • 如何利用Python动态模拟太阳系运转

    前言 提到太阳系,大家可能会想到哥白尼和他的日心说,或是捍卫.发展日心说的斗士布鲁诺,他们像一缕光一样照亮了那个时代的夜空,对历史感兴趣的小伙伴可以深入了解一下,这里就不多说了. 太阳以巨大的引力使周边行星.卫星等绕其运转,构成了太阳系,它主要包括太阳.8 个行星.205 个卫星以及几十万个小行星等,本文我们使用 Python 来简单的动态模拟一下太阳系的运转. 实现 功能的实现,主要要到的还是 Python 的 pygame 库,我们先导入需要的所有 Python 库,代码如下所示: impo

  • python产生模拟数据faker库的使用详解

    简介 使用faker可以获取很多模拟数据,如:姓名.电话.地址.银行.汽车.条形码.公司.信用卡.email.user_agen等等 学会使用这个库,再也不用为制造假数据发愁了...... 同时,使用起来非常简单,只需要安装,导入库,并创建实例,即可使用,如下: 主要的方法分类 如上面例子,每次调用 fake 实例的 name()方法时,都会产生不同随机姓名.fake 实例还有很多方法可用,这些方法分为以下几类: address 地址 person 人物类:性别.姓名等 barcode 条码类

随机推荐