python源碼下載,python游戲源碼回合制游戲_python game源碼下載

 2023-10-04 阅读 31 评论 0

摘要:#-*- encoding:utf-8 -*- # ########################################################################### python源碼下載、# # 從前,有一只怪獸Y被四位美麗的公主抓走(=。=),并關在一座魔塔中。 # # # 終于有一位英雄X挺身而出去救出,

#-*- encoding:utf-8 -*-

# ###########################################################################

python源碼下載、# # 從前,有一只怪獸Y被四位美麗的公主抓走(=。=),并關在一座魔塔中。 #

# # 終于有一位英雄X挺身而出去救出,為了救出怪獸而與公主們浴血奮戰。 #

# # 喂,什么設定 (ノ?益?)ノ彡┻━┻ #

python源碼安裝?# # 玩法:將下面的username/password更改為你的賬號與密碼, #

# # 啟動GameCli.py,然后請你寫一個AI程序與127.0.0.1:22031通信。 #

# # 每次客戶端都會發送當前局面,而你AI要做的就是根據局面發送行走指令。#

python優秀源碼?# # (hjkl這四個指令,你懂的)懂你喵!(╯>д<)╯?˙3˙? #

# # 狀態說明: #

# # ATK:攻擊力 DEF:防御力 HP: 生命值 #

python程序代碼、# # X:行坐標 Y:列坐標 L:當前樓層 #

# # Score:英雄分數,初始18888,每發一次指令-1,當分數為負時游戲結束 #

# # 游戲勝利時分數會計入排行榜,可打開218.245.4.113:5000查看當前排名 # #

用python制作游戲?# # 戰斗說明: #

# # 遭遇公主即觸發戰斗,采用回合制,每回合勇士先攻擊,然后公主攻擊。 #

# # 每次攻擊中 被攻擊目標HP損失=攻擊者ATK-被攻擊者DEF。 #

# # 說明: #

# # # ----- 墻,不可移動 #

# # . ----- 空地,可移動 #

# # / ----- 向上的樓梯,當走到該處會自動被傳送到上一層的向下樓梯處 #

# # \ ----- 向下的樓梯,當走到該處會自動被傳送到下一層的向上樓梯處 #

# # X ----- 你的英雄,初始 ATK:10 DEF:10 HP:1000 #

# # Y ----- 待拯救的怪獸 #

# # A ----- 紅寶石 ATK 5 #

# # D ----- 藍寶石 DEF 5 #

# # P ----- 阿三神油 HP 500 #

# # a ----- 公主a ATK:80 DEF:60 HP:1000 #

# # b ----- 公主b ATK:200 DEF:100 HP:100 #

# # c ----- 公主c ATK:300 DEF:150 HP:1000 #

# # d ----- 公主d ATK:300 DEF:250 HP:3000 #

# # 勝利條件:解決四位公主,拯救怪獸 #

# # 提示:可以先運行GameCli.py,再用TELNET連接,便于熟悉游戲 #

# # !!!注意:請不要對出題人進行人身攻擊!!! #

# # (╯‵□′)╯炸彈!???*~●出題人 #

# ###########################################################################

import socket

import re

import copy

import struct

def userInfo():

username = 'username'#改我改我 \(^o^)/~

password = 'password'#改我改我 o(*≧▽≦)ツ

return username '|' password

class game(object):

def __init__(self):

self.win = '''

...............................

.#.............#..#...##...#...

..#.....#.....#...#...#.#..#...

...#...#.#...#....#...#..#.#...

....#.#...#.#.....#...#...##...

.....#.....#......#...#....#...

.....%s....

....Your.Score:.%010d.....

'''

self.lose = '''

...............................

...#......##.....###...####....

...#.....#..#...#......#.......

...#.....#..#....##....####....

...#.....#..#......#...#.......

...####...##....###....####....

...............................

....Your.Score:.-111111111.....

'''

self.att = [

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~Your~Hero~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~ATK:%06d~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~DEF:%06d~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~HP:%07d~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~Score:%010d~',

'~~~~~~~~~~~~~~~~~~~',

'~~L:%03d~X:%02d~Y:%02d~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~',

'~~~~~~~~~~~~~~~~~~~'

]

self.f1ag = 'justforfun' #我是flag,交我交我 \(^o^)/~

self.map = ''

self.out = ''

self.ATK = 0

self.DEF = 0

self.HP = 0

self.Score = 0

self.posL = 0

self.posX = 0

self.posY = 0

self.stat = 0

self.flag = ''

def deal(self, s):

if len(s) > 441:

self.map = s[-441:]

self.stat, self.ATK, self.DEF, self.HP, self.posL, self.posX, self.posY, self.Score = struct.unpack('iiiiiiii',s[0:32])

r = re.findall('flag\{. \}', s)

if r:

self.flag = r[0]

return

def getAll(self):

if self.stat == 0:

return self.win % (self.flag, self.Score)

if self.stat == 1:

return self.lose

ret = list()

att = copy.deepcopy(self.att)

att[6] = att[6] % self.ATK

att[8] = att[8] % self.DEF

att[10] = att[10] % self.HP

att[12] = att[12] % self.Score

att[14] = att[14] % (self.posL, self.posX, self.posY)

for i in range(21):

ret.append(self.map[i*21:i*21 21] '|' att[i] '\n')

ret[self.posX] = list(ret[self.posX])

ret[self.posX][self.posY] = 'X'

ret[self.posX] = ''.join(ret[self.posX])

return ''.join(ret)

BUFFSIZE = 999999

HOST = '218.245.4.113'

#HOST = '127.0.0.1'

PORT = 21010

ADDR = (HOST, PORT)

LOCALHOST = '127.0.0.1'

LOCALPORT = 22031

LOCALADDR = (LOCALHOST, LOCALPORT)

tcpAISer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

tcpAISer.bind(LOCALADDR)

tcpAISer.listen(5)

while True:

print('wating for AI...')

tcpAI, addr = tcpAISer.accept()

print('AI connection from:', addr)

tcpCliSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

tcpCliSock.connect(ADDR)

tcpCliSock.send(userInfo())

r = tcpCliSock.recv(BUFFSIZE)

if r != 'OK':

print('Wrong')

exit()

g = game()

r = tcpCliSock.recv(BUFFSIZE)

g.deal(r)

tcpAI.send(g.getAll())

while True:

data = tcpAI.recv(BUFFSIZE)

try:

tcpCliSock.send(data)

except Exception:

break

if data == '!':

break

r = tcpCliSock.recv(BUFFSIZE)

g.deal(r)

print(g.getAll())

tcpAI.send(g.getAll())

if g.stat != 3:

break

tcpAI.close()

tcpCliSock.close()

socket.setdefaulttimeout(None)

print('Game Over')

break

tcpAISer.close()

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/113182.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息