python3 專案開發-中級篇
這個是學習python的中期專案,由一個團隊完成的,團隊人數為5-8人。我們團隊是6個人。
首先,聊天室是由團隊每個 人都要編寫的,這個是通訊基礎。
24點遊戲規則比較簡單,只需要將可行的24點組合提前存入到資料庫,然後在適當的時候呼叫一個查詢語句,隨機出來一個組合,顯示給所有使用者,然後接收使用者輸入,判斷表示式是否運算結果為24,如果是則提示正確,不是不做處理,當作正常聊天資訊即可,這樣使用者可以自己想玩就玩,不想玩可以繼續聊天。此部分程式碼由一個人來完成。
然後是天黑請閉眼遊戲,該遊戲稍微複雜一些,主要需要處理以下幾個情景:(程式碼2人完成)
1:分牌給10位玩家,系統儲存記錄玩家的身份資訊
2,while group == 魏國 or 魏國全部出局: #迴圈判斷在遊戲中的所有玩家是否只有一個陣營的
1, 天黑時,魏國3人可以輸入訊息和接收訊息,選擇攻擊目標,此時其他玩家接收不到訊息,也無法傳送訊息,這樣實現了天黑請閉眼的效果,攻擊目標出局。異常輸入處理:有且只有一個出局。
n=fun() -> return number
online.remove(n)
2,魏國3人完成之後,這3人無法收到訊息,3個蜀國的玩家可以選擇查驗一位玩家的身份,原則上是檢視3位以外的玩家的身份資訊,系統會告知3人被查驗的人身份資訊。 此時呼叫的函式和前面是基本一樣的。有且只能查一個人身份。
3,天亮了,系統提示步驟1情況下,被攻擊目標出局的訊息給的所有人,出局者此時被遮蔽掉任何訊息。
4,所有在遊戲中的人自由討論,此時所有在遊戲中玩家可以接收任何訊息,討論時間為150s。
5,時間到了,系統給每個客戶端彈框,單選一個認定需要出局的人員,如果前沒有任何玩家比其他玩家票數都高,則無人出局,否則票數最高者出局。
6,如果有出局者,則此時出局者發表遺言,其他人全部不能傳送訊息,只能接收到出局者的遺言訊息。
else:
列印勝利的組的資訊,以及原始人員的身份資訊。
24點程式碼如下:
class TwentyFour:
def __init__:
pass
def createCard(self):
"""store some tight group of 24"""
pass
def getFourCard(self,*args): -> return a sequence of 4 card
1,create 4 card which can make up 24 by some math operation
def showCards(self):
"""print 4 cards"""
def getInputResult(self,*args): -> return result
2,get input expression,return it's result
eg: 6*8+(7-5) -> 24
def AnswerRight(self,result):
result True if result == 24 else False
if __name__ == "__main__":
tf = TwentyFour()
tf.xxx()
tf.xxx()
天黑請閉眼程式碼如下:
class ThreeCountry:
"""game description:
this game usual palyed by 10 players,3 of them belong to 'wei',
3 of them belong to 'shu',orher 4 player belong to 'wu'.
'shu' group and 'wu' group fight against to 'wei',but all of them
don't each other belong to which country,so they need comunicate.
one turn:
1,wei group decide which player out game(for example p1 out),meanwhile other player will not recv any message,timeout 15s,if no choice,default out the first player which not belong to wei.
2,shu group decide which player to be shown,and the system will tell them the player belong to which group.meanwhile other player will not recv any message,timeout 15s,if no choice,default out the first player which not belong to shu
3,system msg: player 1 out to all player,and player 1 cant send any msg to others.
4,online player can send and recv any msg ,they can say anything,timeout 150s
5,decide one player out game,player input the choice,server count the vote result ,and decide one player out.
Exception situation:
p1 = 4 p2 = 4, result is no player out
p1 no vote , this vote is 0,count other vote.
game over:
1:wei group offline -> shu and wu win the game
2:shu group and wu group offline -> wei win the game
"""
def __init__(self):
pass
def sendMsgtoWei(self):
pass
def recvResultFromWei(self):
"""return tuple('1','5',5')"""
pass
def defaultNoResultFromWei(self):
"""if goal is not sure,return a current default value"""
def defaultFirstResultFromWei(self):
"""
if goal is 5,1,7, return 5
if goal is 7,1,5, return 7
"""
def outPlayer(self,*args):
"""outPlayer('1','5',5') --> online.remove(5)"""
"""outPlayer('1') --> online.remove('1')"""
pass
def timeout(self,times):
"""set timeout time,unit= second(s)"""
def sendMsgtoShu(self):
pass
def recvResultFromShu(self):
"""return tuple('1','5',5')"""
pass
def defaultNoResultFromShu(self):
"""if goal is not sure,return a current default value"""
def defaultFirstResultFromShu(self):
"""
if goal is 5,1,7, return 5
if goal is 7,1,5, return 7
"""
def vote(self):
"""
return sequence of vote result
format:("1","2","5","8","9"...)
"""
亮點內容來了:
自動閱卷考試系統:
1,進入考試系統前提示使用者,考試期間不允許切屏,如果切屏3次則立即交卷處理
此處需要編寫函式
a,不允許切屏函式,將介面全屏或者設定焦點不能改變
b,計數函式,累計切屏次數
c,切屏3次情況下,獲取當前已選題目的結果,然後將介面關閉,將該使用者從伺服器端暫時拉黑掉。
2,賬號登陸 註冊等,此處新增加密演算法,實現攔截其他非法使用者進行登陸註冊等,避免洩露題目和答案,給使用伺服器端公司帶來損失。
3,完全進入考試環境
a,主介面用網頁的方式開啟,裡面的內容使用一個函式來得到funName(singleList,dualList)
b,函式funName(singleList,dualList)的功能是獲取到題目,singleList傳入的是一個隨機數生成的列表,表示從資料庫題庫裡面去取出這些資料,長度為30. dualList引數傳入的是多選題的序號,這個序號用來從資料庫的另外一張表裡獲取題目和答案,答案存入到一個答案列表裡面,所以返回值是單選題的答案和多選題答案的兩個列表。
c,編寫函式獲取每個題目答案的方法
d,編寫提交試卷時,迴圈50次呼叫c中的方法,給到伺服器端進行處理
e,伺服器接收到提交的答案之後,對答案進行解析,然後和funName返回的答案進行比對,得到最後的分數,以及提供一個介面函式,如果使用者需要檢視詳細答案資訊,可以檢視到,但是不檢視時只顯示分數。
f,設定答案給出的時間,必須是在考試設定的時間結束之後,所以使用者考試都結束了,使用者才能得到自己的分數和答案詳細解釋。
說明:此程式需要大量的題目,所以這個工作量還是比較大的,但是為了開發和擴充套件,還需要編寫能夠批量匯入資料的函式,這個函式能夠根據指定的格式解析題目內容,答案和詳細解釋,分別存到資料庫表中的欄位裡面,這樣在後期資料量大的時候就可以批量的去增加,刪除和修改資料了,便於資料庫的維護。
另外,資料庫的查詢語句也可以編寫成為一些資料庫的函式,這樣在需要的時候直接呼叫這些函式即可。
資料安全性方面一定要做好,資料的維護的工作量是很大的,所以這些前期的函式都要寫的安全可靠,封裝起來,後面維護的時候就直接呼叫,而不是每次都去使用基礎的資料庫語句了。
相關文章
- SpringBoot專案開發(一):開篇Spring Boot
- 降魔篇之springmvc專案開發SpringMVC
- LambdaToSql(輕量級ORM) 入門篇 開源專案SQLORM
- RPA專案之開發規則篇
- android開源專案【專案篇】Android
- 完全使用 Docker 開發 PHP 專案 (二): 配置篇DockerPHP
- Android開源專案第四篇:開發及測試工具篇Android
- 在 Laradock 中開發 Vue 專案Vue
- 在開發專案中進行有效的專案管理(轉)專案管理
- 研發團隊管理:IT研發中專案和產品原來區別那麼大,專案級的專案是專案,產品級的專案是產品!!!
- 完全使用 Docker 開發 PHP 專案 (一): 安裝篇DockerPHP
- 直播類 APP 專案開發實戰(原理篇)APP
- 測試開發專題-開篇
- 軟體開發中的專案管理(轉)專案管理
- 輕鬆開發企業級中後臺專案,順手掌握工程化的react開發架構React架構
- Java專案開發中實現分頁的三種方式一篇包會Java
- iOS專案開發實戰——UIView的層級關係iOSUIView
- android開源專案【developer篇】AndroidDeveloper
- 專案開發程式
- 專案開發文件
- 專案開發過程中的管理規範
- 專案管理——遊戲開發中的成本管理專案管理遊戲開發
- Spring在開發專案中起的作用Spring
- 專案開發中容易被忽視的部分
- 在瀑布式專案中實現敏捷開發敏捷
- 行軟體開發中的專案管理 (轉)專案管理
- MIS系統開發中的專案管理(轉)專案管理
- 軟體專案管理的研究及在專案開發中的應用專案管理
- 用go設計開發一個自己的輕量級登入庫/框架吧(專案維護篇)Go框架
- 在Flutter專案中開發IOS桌面元件(WidgetExtension)FlutteriOS元件
- 專案開發中對前端資料管理的理解前端
- vue 2.0開發專案中stylus 的配置和使用Vue
- MIS系統開發中的專案管理(一)(轉)專案管理
- MIS系統開發中的專案管理(二)(轉)專案管理
- python專案開發Python
- 電商專案app開發APP
- vue專案開發-3Vue
- 專案開發框架-SSM框架SSM