zoukankan      html  css  js  c++  java
  • 模拟射击文字类游戏(Python)

      之前使用java进行一个比较简单的实验——模拟打枪游戏,具体内容就在这里不多说了,以下是python版本,对于python在语法要求上相对其他语言较为松散,所以在编写时遇到了一些坑。

      因为单纯以实现为目的,所以以下代码编写的并不简洁,这里主要说说遇到的坑:在处理变量的时候,因为python中的变量在使用时并不需要声明数据类型,但是如果直接拿来使用又会报错:TypeError: unsupported operand type(s) for -: 'method' and 'int'

      百度了一下,发现是语法问题。

      关于上述提示错误:是因为在Python中不需像C一样,需要 int sum (指定sum的类型),但并不是说可以直接放在表达式中去计算,所以还是需要先定义的(这些都是小细节,平时都应该尽量避免,做好类似问题的收集)

    代码:

    1 class BULLET_BOX:
    2     def __init__(self):
    3         self.bullet_count = 0
    4 
    5     def Add_Bullet(self, count):
    6         self.bullet_count = count
    7 
    8     def See_Bullet(self):
    9         return self.bullet_count
     1 class GUN:
     2     def __init__(self, BULLET_BOX):
     3         self.BULLET_BOX = BULLET_BOX
     4 
     5     def Shoot(self):
     6         self.count = self.BULLET_BOX.See_Bullet()
     7         if (self.count > 0):
     8             self.count = self.BULLET_BOX.See_Bullet()
     9             self.count = self.count - 1
    10             self.BULLET_BOX.Add_Bullet(self.count)
    11             print("砰——")
    12             print("当前子弹数:",self.count)
    13         else:
    14             print("子弹不足!")
    1 class BULLET_BOX:
    2     def __init__(self):
    3         self.bullet_count = 0
    4 
    5     def Add_Bullet(self, count):
    6         self.bullet_count = count
    7 
    8     def See_Bullet(self):
    9         return self.bullet_count
     1 import time, PEOPLE, GUN, BULLET_BOX
     2 
     3 from PEOPLE import *
     4 from GUN import *
     5 from BULLET_BOX import *
     6 
     7 a = BULLET_BOX()
     8 a.Add_Bullet(5)
     9 b = GUN(a)
    10 c = PEOPLE(b)
    11 
    12 while True:
    13     c.Fire()
    14     time.sleep(1)

    代码效果:

  • 相关阅读:
    K3Wise K3List.OCX引入dotnet问题处理方法
    k3wise dotnet开发老单据时序簿工具条添加按钮
    c#调用dotnet写的com组件碰到注册失败的错误的补救方法
    bat注册dotnet com
    dotnet动态加载以及卸载dll的代码
    c#获取com对象的progid
    jpg和png的区别
    Fragment的FragmentTransaction 的commit()和commitAllowingStateLoss()以及commitNow()和commitNowAllowingStateLoss()
    Java泛型类型擦除与运行时类型获取
    rxjava介绍
  • 原文地址:https://www.cnblogs.com/moegarn/p/12355113.html
Copyright © 2011-2022 走看看