Python入門經典練習題之坦克大戰(簡化版)

2021-09-23 07:41:35 字數 2292 閱讀 5023

# -*- coding: utf-8 -*-

"""******************************===

author: keen

created on: 2019/5/18

e-mail:[email protected]

******************************===

"""import random

class basetank(object):

# 類屬性,定義初始值

def __init__(self):

self.live = 1

self.position = random.randint(1, 10)

self.hp = 1

self.attck_position = random.randint(1, 10)

def hit(self, other):

if self.attck_position == other.position:

other.hp -= 1

if other.hp == 0:

other.live = 0

class mytank(basetank):

def move(self):

while true:

try:

# 將位置更新為移動的目標位置

self.position = int(input("請輸入要移動的目標位置【1-10】:"))

# 判斷輸入是否符合業務規範,不符合則丟擲異常

if self.position not in range(1, 11):

ex = exception("請輸入1-10之間的整數")

raise ex

else:

return self.position

# 捕獲資料型別錯誤異常

except valueerror:

print("請輸入整數!")

# 捕獲丟擲的異常

except exception as res:

print(res)

def bullet_launch(self):

while true:

try:

self.attck_position = int(input("請輸入要攻擊的目標位置【1-10】:"))

if self.attck_position not in range(1, 11):

ex = exception("請輸入1-10之間的整數")

raise ex

else:

return self.attck_position

except valueerror:

print("請輸入整數!")

except exception as res:

print(res)

class pctank(basetank):

def move(self):

# 移動後,更新位置

self.position = random.randint(1, 10)

def bullet_launch(self):

self.attck_position = random.randint(1, 10)

def main():

my = mytank()

pc = pctank()

while true:

# 玩家和電腦先後**

my.bullet_launch()

pc.bullet_launch()

# 判斷是否被擊中,並輸出戰況

my.hit(pc)

print("玩家**=>電腦位置%s,玩家攻擊位置%s,電腦生命值%s"

% (pc.position, my.attck_position, pc.hp))

if pc.live == 0:

print("遊戲結束,玩家勝利!")

break

pc.hit(my)

print("電腦**=>玩家位置%s,電腦攻擊位置%s,玩家生命值%s"

% (my.position, pc.attck_position, my.hp))

# 判斷存活狀態,為0則輸出結果,退出遊戲

if my.live == 0:

print("遊戲結束,電腦勝利!")

break

my.move()

pc.move()

if __name__ == '__main__':

main()

Python入門之經典練習題

第 1 題,輸出九九乘法表 分析思路 1.for 迴圈機制,先取第乙個for迴圈i的第1個值,跟j遍歷完來組合。11 12 13 21 22 23.得出結論,此處的 i 無需做限制。2.找規律 第1行 j 1 i 1 第2行 j 1,2 i 2 第3行 j 1,2,3 i 3 得出結論 j 的最大取...

python入門練習題

1.使用者鍵盤輸入一年份,判斷是否為閏年?如果是閏年,則輸出 是閏年 如果不是閏年,則輸出 不是閏年 判斷閏年的方法 1 能被4整除但不能被100整除 2 能被400整除 2.for迴圈巢狀 列印9 9乘法表 3.輸入兩個數,求這兩個數的最大公約數和最小公倍數 1.企業發放的獎金根據利潤提成。利潤 ...

python入門練習題2

1.利用遞迴方法求5!def tang j sum value 0 if j 0 sum value 1 else sum value j tang j 1 return sum valuefor i in range 10 print d d i,tang i 利用遞迴函式呼叫方式,將所輸入的5個...