TroubleMakerVFX

导航

类和对象

类和对象

 1 class Rectangle:
 2     length = 5
 3     width = 4
 4 
 5     def getRect(self):
 6         print('矩形的长是:%.2f,宽是:%.2f'%(self.length, self.width))
 7 
 8     def setRect(self):
 9         print '请输入长和宽'
10         self.length = float(input('长:'))
11         self.width = float(input('宽:'))
12 
13     def getArea(self):
14         print('矩形的面积是:%.2f'%(self.length*self.width))
15 
16 rect = Rectangle()

 

 1 class Ticket:
 2     def __init__(self, weekend = False, child = False):
 3         self.exp = 100
 4 
 5         if weekend:
 6             self.inc = 1.2
 7         else:
 8             self.inc = 1
 9 
10         if child:
11             self.discount = 0.5
12         else:
13             self.discount = 1
14 
15     def calMoney(self, num):
16         return self.exp*self.inc*self.discount*num
17 
18 adult = Ticket()
19 child = Ticket(child=True)
20 print('2个成人+1个小孩平日票价是%.2f 元人民币'%(adult.calMoney(2)+child.calMoney(1)))

 

  1 # coding:utf-8
  2 # __author__='TM'
  3 # Email:troublemakervfx@foxmail.com
  4 import random as r
  5 legalx = [0,10]
  6 legaly = [0,10]
  7 
  8 class Turtle:
  9     def __init__(self):
 10         self.power = 100
 11         # set area
 12         self.x = r.randint(legalx[0], legalx[1])
 13         self.y = r.randint(legalx[0], legalx[1])
 14 
 15     def move(self):
 16         self.new_x = self.x + r.choice([-2, -1, 1, 2])
 17         self.new_y = self.y + r.choice([-2, -1, 1, 2])
 18 
 19         # clamp to area
 20         if self.new_x < legalx[0]:
 21             self.x = legalx[0]- (self.new_x-legalx[0])
 22         elif self.new_x > legalx[0]:
 23             self.x = legalx[1] - (self.new_x - legalx[1])
 24         else:
 25             self.x = self.new_x
 26 
 27         if self.new_y < legaly[0]:
 28             self.y = legaly[0]- (self.new_y-legaly[0])
 29         elif self.new_y > legaly[0]:
 30             self.y = legaly[1] - (self.new_y - legaly[1])
 31         else:
 32             self.y = self.new_y
 33 
 34         # change turtle parm
 35         self.power -= 1
 36         return (self.x, self.y)
 37 
 38     def eat(self):
 39         self.power += 20
 40         if self.power > 100:
 41             self.power = 100
 42 
 43 class Fish:
 44     def __init__(self):
 45         # set area
 46         self.x = r.randint(legalx[0], legalx[1])
 47         self.y = r.randint(legalx[0], legalx[1])
 48 
 49     def move(self):
 50         self.new_x = self.x + r.choice([-1, 1])
 51         self.new_y = self.y + r.choice([-1, 1])
 52 
 53         # clamp to area
 54         if self.new_x < legalx[0]:
 55             self.x = legalx[0]- (self.new_x-legalx[0])
 56         elif self.new_x > legalx[0]:
 57             self.x = legalx[1] - (self.new_x - legalx[1])
 58         else:
 59             self.x = self.new_x
 60 
 61         if self.new_y < legaly[0]:
 62             self.y = legaly[0]- (self.new_y-legaly[0])
 63         elif self.new_y > legaly[0]:
 64             self.y = legaly[1] - (self.new_y - legaly[1])
 65         else:
 66             self.y = self.new_y
 67 
 68         return (self.x, self.y)
 69 # 将类实例化
 70 turtle = Turtle()
 71 fish = []
 72 for i in range(10):
 73     new_fish = Fish()
 74     fish.append(new_fish)
 75 
 76 # 游戏开始,不出现下面情况,游戏一直进行
 77 while True:
 78     if turtle.power == 0:
 79         print('乌龟没能量了,游戏结束')
 80         break
 81     if len(fish) == 0:
 82         print('鱼吃完了,游戏结束')
 83         break
 84     # 乌龟移动一下
 85     pos = turtle.move()
 86 
 87     count = 0
 88     for each_fish in fish[:]:
 89         if each_fish.move() == pos:
 90             print('一条小鱼被吃掉了,还剩下:%d条小鱼'% (len(fish)-1))
 91             fish.remove(each_fish)
 92             turtle.eat()
 93             print('乌龟剩余能量值:%d' % turtle.power)
 94             count += 1
 95     if count == 0:
 96         print('乌龟这次啥都没吃到,能量剩余%d' % turtle.power )
 97 
 98     # 当鱼少于10条时,选择是否添加小鱼
 99     if turtle.power < 10:
100         user_input = raw_input('乌龟要没能量了,是否添加更多小鱼?yes/no:')
101         if user_input in ['Yes','yes','y']:
102             user_count = int(raw_input('你想添加几条鱼:'))
103             for i in range(user_count):
104                 new_fish = Fish()
105                 fish.append(new_fish)
 1 import math as m
 2 
 3 class Point:
 4     def __init__(self, x = 0, y = 0):
 5         self.x = x
 6         self.y = y
 7 
 8     def getX(self):
 9         return self.x
10 
11     def getY(self):
12         return self.y
13 
14 # 一条线由2个点组成,所以在构造函数里面定义2个点
15 class Line:
16     def __init__(self, p1, p2):
17         self.x = p1.getX() - p2.getX()
18         self.y = p1.getY() - p2.getY()
19 
20     def getLen(self):
21         return m.sqrt(self.x**2 + self.y**2)
22 
23 p1 = Point(0,1)
24 p2 = Point(0,0)
25 line1 = Line(p1, p2)
26 print line1.getLen()

 

 1 class Stack:
 2     def __init__(self, start = []):
 3         self.stack = []
 4         for i in start:
 5             self.push(i)
 6 
 7     def push(self, x):
 8         self.stack.append(x)
 9 
10     def isEmpty(self):
11         return not self.stack
12 
13     def pop(self):
14         if not self.stack:
15             print '警告,栈为空'
16         else:
17             return self.stack.pop()
18 
19     def top(self):
20         if not self.stack:
21             print '警告,栈为空'
22         else:
23             return self.stack[-1]
24 
25     def bottom(self):
26         if not self.stack:
27             print '警告,栈为空'
28         else:
29             return self.stack[0]
30 
31 s = Stack(['t','r','o','u','b','l','e'])

 

posted on 2017-10-25 16:59  TroubleMakerVFX  阅读(122)  评论(0)    收藏  举报