python小游戏

import time,random

# 需要的数据和变量放在开头
player_list = [‘【狂血战士】‘,‘【森林箭手】‘,‘【光明骑士】‘,‘【独行剑客】‘,‘【格斗大师】‘,‘【枪弹专家】‘]
enemy_list = [‘【暗黑战士】‘,‘【黑暗弩手】‘,‘【暗夜骑士】‘,‘【嗜血刀客】‘,‘【首席刺客】‘,‘【陷阱之王】‘]
players = random.sample(player_list,3)
enemies = random.sample(enemy_list,3)
player_info = {}
enemy_info = {}

# 随机生成角色的属性
def born_role():
life = random.randint(100,180)
attack = random.randint(30,50)
return life,attack

# 生成和展示角色信息
def show_role():
for i in range(3):
player_info[players[i]] = born_role()
enemy_info[enemies[i]] = born_role()

# 展示我方的3个角色
print(‘----------------- 角色信息 -----------------‘)
print(‘你的人物:‘)
for i in range(3):
print(‘%s 血量:%d 攻击:%d‘
%(players[i],player_info[players[i]][0],player_info[players[i]][1]))
print(‘--------------------------------------------‘)
print(‘电脑敌人:‘)

# 展示敌方的3个角色
for i in range(3):
print(‘%s 血量:%d 攻击:%d‘
%(enemies[i],enemy_info[enemies[i]][0],enemy_info[enemies[i]][1]))
print(‘--------------------------------------------‘)
input(‘请按回车键继续。\n‘) # 为了让玩家更有控制感,可以插入类似的代码来切分游戏进程。

# 角色排序,选择出场顺序。
def order_role():
global players
order_dict = {}
for i in range(3):
order = int(input(‘你想将 %s 放在第几个上场?(输入数字1~3)‘% players[i]))
order_dict[order] = players[i]

players = []
for i in range(1,4):
players.append(order_dict[i])

print(‘\n我方角色的出场顺序是:%s、%s、%s‘ %(players[0],players[1],players[2]))
print(‘敌方角色的出场顺序是:%s、%s、%s‘ %(enemies[0],enemies[1],enemies[2]))

# 角色PK
def pk_role():
round = 1
score = 0
for i in range(3): # 一共要打三局
player_name = players[i]
enemy_name = enemies[i]
player_life = player_info[players[i]][0]
player_attack = player_info[players[i]][1]
enemy_life = enemy_info[enemies[i]][0]
enemy_attack = enemy_info[enemies[i]][1]

# 每一局开战前展示战斗信息
print(‘\n----------------- 【第%d局】 -----------------‘ % round)
print(‘玩家角色:%s vs 敌方角色:%s ‘ %(player_name,enemy_name))
print(‘%s 血量:%d 攻击:%d‘ %(player_name,player_life,player_attack))
print(‘%s 血量:%d 攻击:%d‘ %(enemy_name,enemy_life,enemy_attack))
print(‘--------------------------------------------‘)
input(‘请按回车键继续。\n‘)

# 开始判断血量是否都大于零,然后互扣血量。
while player_life > 0 and enemy_life > 0:
enemy_life = enemy_life - player_attack
player_life = player_life - enemy_attack
print(‘%s发起了攻击,%s剩余血量%d‘ % (player_name,enemy_name,enemy_life))
print(‘%s发起了攻击,%s剩余血量%d‘ % (enemy_name,player_name,player_life))
print(‘--------------------------------------------‘)
time.sleep(1)
else: # 每局的战果展示,以及分数score和局数的变化。
# 调用show_result()函数,打印返回元组中的result。
print(show_result(player_life,enemy_life)[1])
# 调用show_result()函数,完成计分变动。
score += int(show_result(player_life,enemy_life)[0])
round += 1
input(‘\n点击回车,查看比赛的最终结果\n‘)

if score > 0:
print(‘【最终结果:你赢了!】\n‘)
elif score < 0:
print(‘【最终结果:你输了!】\n‘)
else:
print(‘【最终结果:平局!】\n‘)

# 返回单局战果和计分法所加分数。
def show_result(player_life,enemy_life): # 注意:该函数要设定参数,才能判断单局战果。
if player_life > 0 and enemy_life <= 0:
result = ‘\n敌人死翘翘了,你赢了!‘
return 1,result # 返回元组(1,‘\n敌人死翘翘了,你赢了!‘),类似角色属性的传递。
elif player_life <= 0 and enemy_life > 0:
result = ‘\n悲催,敌人把你干掉了!‘
return -1,result
else :
result = ‘\n哎呀,你和敌人同归于尽了!‘
return 0,result

# (主函数)展开战斗流程
def main():
show_role()
order_role()
pk_role()

# 启动程序(即调用主函数)
main()

原文地址:https://www.cnblogs.com/fierce/p/10486914.html

时间: 2024-10-14 06:24:17

python小游戏的相关文章

python小游戏之课堂提问器

今天,接着前边的python小游戏,又写了个课堂提问器小程序.供大家一乐! #coding:utf-8 from random import randint print '\033[1;32;40m', print '你好,请选择需要几位作答者?\n' print '请输入作答者的人数:', t=1 i=input() data=[] while t<=i:     r=randint(0,32)    # print m[r],     data.append(m[r])     t+=1 p

python小游戏之一--------猜数字

看了一下python的入门书,拿个小游戏来练练手,其实就几行代码,也只有新手和脸皮厚的吊丝才好意思拿出来献丑 就好像张X忠一样,来,上海带,天朝海军天下无敌了 这里主要是一个random函数和 while 循环语句的使用,没了 #-*- encoding: utf-8 -*- ''' Created on 2014年5月8日 @author: Administrator ''' import random keys = random.randint(1,100)    #这个函数的作用是给一个随

Python小游戏、小程序

python 小游戏之摇骰子猜大小 python 实现一个双色球生成程序 python-循环与判断练习题 原文地址:https://www.cnblogs.com/wushuaishuai/p/9219065.html

python小游戏之圣诞树

圣诞期间,看了下python的for循环.刚好实践一下,一时兴起,就写了个圣诞树的小程序.供诸君一乐! 下面附上代码: #coding:utf-8 import sys def christmas(h):         print '\033[1;36;40m\t欢迎光临!\n正在为你制作专属于您的圣诞树,请稍等!\033[0m'         print '\033[1;32;40m'        # print '\t',             for i in range(1,h+

[python] 小游戏 - play_plane

alien_invasion.py import sys import pygame from settings import Settings from ship import Ship import game_functions as gf from pygame.sprite import Group def run_game(): # 初始化游戏并创建一个屏幕对象 pygame.init() ai_settings = Settings() screen = pygame.display

python小游戏之彩票机选器二

今天又对这个小程序做了些修改,使其更贴近现实,也更加人性化. 比如:当系统提示你选择彩票种类时,本来只有1和2两个选项,但你不小心输错了,怎么办呢?没关系,它会提示你重新输入1和2.说了这么多,还是先上代码吧.各位可以一试为快! #coding=utf-8 n=34 m=range(0,n) import time from random import randint def chnum():     print '请选择彩票种类:1为排列三,2为双色球'     print '请输入:',  

python小游戏(剪刀石头布)

#!/usr/bin/python#-- coding: utf8--import random #导入随机数的模块 computer = random.choice(['石头', '剪刀', '布'])player = raw_input('请出拳(石头/剪刀/布): ') print "Your choice: %s, Computer's choice: %s" % (player, computer)if player == '石头':if computer == '石头':p

弱智python小游戏猜数字

from random import randintnum = randint(0,100)print("Guess what I think:?")bingo = Falsewhile bingo == False: answer = int(input()) if answer < num: print("too small!") if answer > num: print("too big") if answer == num

python小游戏,石头/剪子/布

#从控制台输入石头(1)/剪子(2)/布(3) player=int(input("玩家出拳 石头(1)/剪子(2)/布(3)")) #电脑随机出拳 computer computer == 1 print("玩家出的拳是%d - 电脑出的拳是%d" %(player , computer)) #玩家选择出拳%d player if (player == 1 and computer == 2)or(player == 2 and computer == 3)or(