1. 程式人生 > >【python】| 烏龜吃魚遊戲雛形

【python】| 烏龜吃魚遊戲雛形

遊戲規則:
1. 遊戲背景為10*10;
2. 遊戲會自動生成1個烏龜和10條魚;
3. 它們移動方向隨機;
4. 烏龜最大移動能力為2; [-2,-1,1,2]
5. 魚最大移動能力為1; [-1,1]
6. 當移動到場景邊界, 自動反方向移動;
7. 烏龜初始化體能為100<200為上限>;每移動一次消耗體能1;
8. 當烏龜和魚的座標重合, 代表烏龜吃掉魚, 體能增加20;
9. 烏龜無體力或者魚吃光, 遊戲結束;


#!/usr/bin/env python
# coding:utf-8


""""
Name: TurtleFish.py
Date: 2018/03/29
Connect: 
[email protected]
Author: lvah Desc: """
import random class Turtle: def __str__(self): return "Turtle:(%s, %s)" %(self.x, self.y) def __init__(self): # 烏龜的座標 self.x = random.randint(0, 10) self.y = random.randint(0, 10) # 烏龜體力 self.power = 100
def is_vaild(self, new): """ 判斷座標是否越界 """ if new < 0: # -2 return 0 - new elif new > 10: # 12 return 10 - (new - 10) else: return new def move(self): # 計算移動後的x座標和y座標 new_x = self.x + random.choice([-2
, -1, 1, 2]) new_y = self.y + random.choice([-2, -1, 1, 2]) self.x = self.is_vaild(new_x) self.y = self.is_vaild(new_y) self.power -= 1 def eat(self): self.power += 20 if self.power > 200: # 體能上限為200; self.power = 200 class Fish: def __str__(self): return "Fish:(%s,%s)" %(self.x, self.y) def __init__(self): # 魚座標 self.x = random.randint(0, 10) self.y = random.randint(0, 10) def is_vaild(self, new): """ 判斷座標是否越界 """ if new < 0: # -2 return 0 - new elif new > 10: # 12 return 10 - (new - 10) else: return new def move(self): new_x = self.x + random.choice([-1, 1]) new_y = self.y + random.choice([-1, 1]) self.x = self.is_vaild(new_x) self.y = self.is_vaild(new_y) t1 = Turtle() print t1 f1=Fish() print f1 fish = [] for i in range(10): fish.append(Fish()) while True: # 判斷遊戲是否結束: if t1.power <= 0: print "烏龜死翹翹, GAME OVER!" break elif len(fish) == 0: print "魚被吃光了, GAME OVER!" break else: t1.move() for afish in fish: afish.move() if afish.x == t1.x and afish.y == t1.y: t1.eat() fish.remove(afish) print "一條魚被烏龜吃掉....." print "烏龜的最新體力: %s" %(t1.power)

相關推薦

python| 烏龜遊戲雛形

遊戲規則: 1. 遊戲背景為10*10; 2. 遊戲會自動生成1個烏龜和10條魚; 3. 它們移動方向隨機; 4. 烏龜最大移動能力為2; [-2,-1,1,2] 5. 魚最大移動能力為1; [-1,1]

python - 烏龜遊戲

#pygame 可以設定圖形,這裡不做講解。 遊戲程式設計:按以下要求定義一個烏龜類和魚類並嘗試編寫遊戲 假設遊戲場景為範圍(x,y)為0<=x<=10,0<=y<=10 遊戲生成1只烏龜和10條魚 它們的移動方向均隨機 烏龜的最大移動能力為2(它可以隨機選擇1還是2

Python 小甲魚教程 烏龜遊戲

整個程式按照答案來敲的,我覺得按照自己的水平完全沒思路寫得出來框架,就當熟悉程式碼風格來處理吧。 import random as r legal_x = [0,10]           #先定義範圍,這裡很巧妙,用一個列表2個數字來表示,而不是一個range lega

PythonPygame模組設計遊戲

Pygame是一個跨平臺Python模組,專為電子遊戲設計,包含影象、聲音。建立在SDL基礎上,允許實時電子遊戲研發而無需被低階語言(如機器語言和組合語言)束縛。 Pygame的歷史 Pygame是一

python打飛機小遊戲(一)

首先宣告一點,這篇部落格完全參照了小甲魚的《零基礎入門學習Python》教學視訊 打飛機小遊戲思路: 1、載入背景音樂 2、播放背景音樂(單曲迴圈) 3、我方飛機誕生 interval = 0(

烏龜簡單遊戲-類的應用

pan self. mount += nbsp clas rtl image and class Base(object): def __init__(self,x,y,a): self.x=x self.y=y

演算法與資料結構相關LeetCode292 Nim遊戲Python

題目: 你和你的朋友,兩個人一起玩 Nim遊戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作為先手。你們是聰明人,每一步都是最優解。 編寫一個函式,來判斷你是否可以在給定石頭數量的情況下贏得遊戲。 示例: 輸入: 4 輸出

python猜拳遊戲

ubuntu下編寫的一個小遊戲,強迫症患者表示玩了好久。。。 #The finger-guessing game #coding=utf-8 #匯入一個包,可以理解為一個工具箱 import random #等待玩家輸入 playerpls = raw_inp

Python正則表達式1(未完)

pes mmu get regular rop 則表達式 line out github 1、正則表達式唯一的用途就是在文本中匹配和尋找模式,模式可以簡單,也可以復雜。 2、Regexr 這個網站很個性的就是,有一個community標簽,打開後可以看到評分由高到低

LeetCodePythonBinary Tree Inorder Traversal

nod 不知道 otto div ack return integer neu else Given a binary tree, return the inorder traversal of its nodes‘ values. For example: Gi

Python決策樹的python實現

uia bmp say 不知道 times otto outlook lru bgm 【Python】決策樹的python實現 2016-12-08 數據分析師Nieson 1. 決策樹是什麽? 簡單地理解,就是根據一些 feature 進行分類,每個節點提一個問

Python基礎知識

數據 文件 專用 一切都 元組 內存 引用傳遞 asc ilo 1. python腳本語言的第一行,目的就是指出,你想要你的這個文件中的代碼用什麽可執行程序去運行它 #!/usr/bin/python 是告訴操作系統執行這個腳本的時候,調用/usr/bin下

Pythonpython2.7 安裝配置OpenCV2

pen 2.4.1 安裝 so文件 strong make lib con ack 環境:Ubuntu16.04 anaconda Python2.7 opencv2.4.13 安裝opencv後 import cv2 遇到錯誤信息: No module named cv2

Python數組排序

log false blog sort函數 () ron 返回 imp 總結 1.numpy庫:argsort()   argsort函數返回的是數組值從小到大的索引值(升序排列) 一維: In [1]: import numpy as np In [2]: x

Pythonselenium調用IE11瀏覽器,報錯“找不到元素”NoSuchWindowException: Message:Unable to find element on closed window

conn ont csdn creates logs 註冊 target get 意思 當編寫自動化腳本,定位瀏覽器元素時,報如下錯誤: 代碼: >>> # coding=utf-8 >>> from selenium import w

PythonSelenium元素定位錯誤之解決辦法

tor log -m alt src 多個 common nbu invalid 當使用class定位元素時發現報錯: 錯誤信息:selenium.common.exceptions.InvalidSelectorException: Message: Compound

Python京東商品價格監控

ets amp inpu text init clas bject logs while import requests,json,re,winsound,time class Stock(object): def __init__(self):

pythonpython魔法方法(待填坑)

絕對值 tle init cls -m del __init__ 另一個 trunc 參考博文:http://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html 參考博文英文原版:http://www

Python05、python程序結構控制語句

python一、程序結構程序結構:語句和表達式按照什麽樣的順序執行所有語言無非就三種程序結構: 順序:默認結構 語句從上到下依次一行一行的執行, 分支:選擇一個分支執行,永遠最多只執行一個分支 循環:二、分支結構語句1、Python的比較操作

Python06、python內置數據結構1

python list 一、數據結構與獲取幫助信息1、數據結構 通過某種方式(例如對元素進行編號)組織在一起的數據元素的集合,這些數據元素可以是數字或者字符,甚至可以是其它的數據結構。 python的最基本數據結構是序列 序列中的每個元素被分配一個序號(即元素的位置),也稱為索引:索引從0開始編