hejinmax 发表于 2019-7-21 22:54

[Python] 猜数大冒险1.0 用控制台玩的简易文字冒险游戏

以学习为目的,我自己写了一个没有界面的,用控制台操作的小游戏,初步涉及到随机ROLL点和放置元素。
如果有朋友喜欢的话,可能还会进一步开发。
我的设计理念是,最简洁的画面,和最耐玩的游戏性。
PS: 系统需要安装Python3,只使用内置模块,无需安装第三方轮子。

以下是部分代码:
import random


def main():

    round_counter = 0   # 回合计数器
    print('第一关')
    while True:

      # 单次猜数字1-9
      max_num = 9
      a = random.randint(1, max_num)
      # print(a)    # 调试用
      counter = 0         # 单回合猜的次数

      while 1:
            c = input('范围1-%d,请输入:' % max_num)
            if c.isdigit():   # 判断数据类型是否是 数字
                b = int(c)
                if b > a:
                  print('猜大了')
                elif b < a:
                  print('猜小了')
                elif b == a:
                  print('猜对了,正确答案就是 %d' % b)
                  counter += 1
                  break
                counter += 1
            else:
                print('请输入一个整数')

      if counter > 3:
            round_counter = 0
      if counter < 4:
            round_counter +=1
            print('成功在三次以内猜中了答案,已连续猜对%s次' % round_counter)
      if round_counter >= 3:
            input('你已经连续三回合,在三次以内猜中答案,恭喜过关,按回车继续:')
            round_counter = 0
            break


if __name__ == '__main__':
    main()

import random
import time


def jiqimao(max_num):

    for i in range(1,max_num + 1):
      print('本次猜 %d' % i)
      if i == a:
            print('终于猜到了,正确答案是%d' % i)
            break
      time.sleep(0.5)


def main():

    global a
    round_counter = 0   # 回合计数器
    print('第四关')
    input('系统奖励你一只猜谜猫,帮助你自动猜数字,按回车开始:')
    while True:
      print('第 %d 回合开始' % (round_counter + 1))
      # 单次猜数字1-20
      a = random.randint(1,20)
      # print(a)    # 调试用
      jiqimao(20)
      round_counter += 1
      
      if round_counter >= 10:
            input('你已经十回合猜中答案,恭喜过关,按回车继续:')
            round_counter = 0
            break


if __name__ == '__main__':
    main()

import random
import time


def main():
    # 角色名 = [生命值,攻击力]
    player1 =
    player2 =
    招式=['摆拳','勾拳','侧踹腿','过肩摔','上步抱膝摔','右鞭拳','侧弹腿','横扫腿','夹颈过背摔','接腿转压摔']

    # 决定出手的先后顺序
    field =
    a = random.randint(0,100)
    if a <= 50:
      field.reverse()   # list元素反向排序

    print('第六关:BOSS战开始')

    while 1:
      atk_ad = field    # field[先手的角色][该角色攻击力]
      # 对敌人造成的伤害幅度为 攻击力 * 0.8 到 攻击力 * 1.2 之间
      # uniform函数区间,不包括右侧临界值
      dmg= int(random.uniform(0.8,1.3) * atk_ad)
      field -= dmg    # 防守角色的血量
      print('%s 使出了 *%s* 对 %s 造成了 %d 点伤害' % (field, random.choice(招式), field, dmg))
      if field < 1:
            print('%s 将 %s 击倒' % (field, field))
            break
      field.reverse()
      time.sleep(1)
    input('你已经打败老鼠精,恭喜过关,按回车继续:')


if __name__ == '__main__':
    main()

完整代码已打包,双击main.py运行完整流程:
链接:https://pan.baidu.com/s/1oCAm12C7f7WAAEJTJdXE9g
提取码:8wx5

热血最强 发表于 2019-7-22 00:18

谢谢大神,让我学习学习
页: [1]
查看完整版本: [Python] 猜数大冒险1.0 用控制台玩的简易文字冒险游戏