えくすとらんのブログ: いきあたりばったりでプログラミング 一方的で章

いきあたりばったりでプログラミング 一方的で章

ばとる

とりあえず此方の攻撃をmobにあたえてみようとおもい

whileを使って敵のHPを0にするまで

現在の勇者のLV(まだ実装してませんが...)のランダムな攻撃力で

戦います

修正を少しずついれています

敵の名前を選ぶ時listのインデックス数とrandintの引数が

同じでなかったため5,6が選ばれたときプログラムがクラッシュしていましたが

修正してみました

つぎは敵のターンを作っていきたいですが....

まぁ ぼちぼちです^^

ストーリーも作りたいですがまだまだ先になりそうです

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import random
from time import sleep
class Syokki:

    def __init__(self,name,num,val,hp,maxdam,mindam,gold):
        self.name = name
        self.num = num
        self.val = val
        self.hp = hp
        self.maxdam = maxdam
        self.mindam = mindam
        self.gold = gold

##################################################
#name=mobname num=mobnumber val=討伐経験値 
#hp=moblifepoint maxdam=mobmaxdamage mindam=mobmindamage #
#gold=会得ゴールド        name num val hp max min gold
##################################################
ryoutenabe = Syokki("両手ナベンナー",1,3,5,1,3,3)
denkinabe = Syokki("エレキプレードン",2,3,7,1,3,4)
furaipandai = Syokki("フライパンタロン",3,6,6,2,5,2)
furaipancyu = Syokki("フライパンダ",4,7,8,3,7,3)
furaipansyo = Syokki("フライパンツァー",5,12,11,4,8,10)
furaipanfuta = Syokki("フライトン",6,14,14,8,12,7)
nabefuta = Syokki("ナベトン",7,20,16,4,14,18)
katatenabedai =Syokki("片手ナベンナー",8,20,18,10,15,18)
katatenabecyu = Syokki("片手ナベンナー哀",9,25,24,8,16,1)
katatenabesyo = Syokki("片手ナベンナー喜",10,20,26,8,16,50)
donburicyu = Syokki("ドンブリャー青",11,30,22,10,13,15)
donburisyo = Syokki("ドンブリャー赤",12,30,22,11,14,16)
ball = Syokki("タマボール",13,200,200,1,200,200)
zaru = Syokki("サルザルモンキー",14,38,40,25,30,37)
saradai = Syokki("ソーサラ魔",15,36,50,30,35,30)
saracyu = Syokki("ソーサラ天",16,36,60,30,38,32)
sarasyo = Syokki("ソーサラ破",17,36,65,28,40,35)
houcyou = Syokki ("ホー蝶",18,40,47,40,45,32)
manaita = Syokki("マナボード",19,50,52,30,50,32)
hashietc = Syokki("スプーン",20,50,65,45,55,30)
syamoji = Syokki("シャモ人",21,120,200,100,150,30)
pira = Syokki("ピーラーヒーラー",22,150,300,100,300,100)
shinktarai = Syokki("シンクタライオン",23,180,400,300,500,100)
akikan = Syokki("秋カンナ",24,190,600,500,800,150)
pura = Syokki("プラゴミン",25,50,120,200,300,100)
mu = Syokki("エクストラン",0,2000,2000,1000,5000,5000000)

nameliststage1 = [ryoutenabe.name,denkinabe.name,furaipandai.name,
furaipancyu.name,furaipansyo.name]
print(len(nameliststage1))
print(nameliststage1[4])
nameliststage2 =[furaipanfuta.name,nabefuta.name,katatenabedai.name,
katatenabecyu.name,katatenabesyo.name,donburicyu.name]

nameliststage3=[donburisyo.name,ball.name,zaru.name,saradai.name,saracyu.name,
sarasyo.name,houcyou.name,manaita.name]

nameliststage4 =[hashietc.name,syamoji.name,pira.name,shinktarai.name,
akikan.name,pura.name,mu.name]

valliststage1= [ryoutenabe.val,denkinabe.val,furaipandai.val,
furaipancyu.val,furaipansyo.val]
valliststage2= [furaipanfuta.val,nabefuta.val,katatenabedai.val,
katatenabecyu.val,katatenabesyo.val,donburicyu.val]
valliststage3= [donburisyo.val,ball.val,zaru.val,saradai.val,saracyu.val,
sarasyo.val,houcyou.val,manaita.val]
valliststage4= [hashietc.val,syamoji.val,pira.val,shinktarai.val,
akikan.val,pura.val,mu.val]

hpliststage1= [ryoutenabe.hp,denkinabe.hp,furaipandai.hp,
furaipancyu.hp,furaipansyo.hp]
hpliststage2= [furaipanfuta.hp,nabefuta.hp,katatenabedai.hp,
katatenabecyu.hp,katatenabesyo.hp,donburicyu.hp]
hpliststage3= [donburisyo.hp,ball.hp,zaru.hp,saradai.hp,saracyu.hp,
sarasyo.hp,houcyou.hp,manaita.hp]
hpliststage4= [hashietc.hp,syamoji.hp,pira.hp,shinktarai.hp,
akikan.hp,pura.hp,mu.hp]

print("もう何日ここをさまよっただろう....")
#sleep(2)
print("・・・・・")
#sleep(2)
for i in range(3):
    print("えええ.....まわりを見渡すとそこはただ広い平原だった........")
    #sleep(2)
print(" ")
print(" ")
print("勇者の名前を入れてください")
yusya_name = input()
print(" ")
#sleep(2)
print("私の名前は "+ yusya_name+ " 。")
#sleep(2)
print("しかしまわりの状況がわからないのは不安である....")
#sleep(2)
print("....しばらく歩く事にしよう")
for i in range(3):
    print(" ")
#sleep(3)
print("******************************")
print("******キッチンクエスト(仮)******     by xtoran")
print("******************************")
for i in range(3):
    print(" ")
#sleep(2)

print(yusya_name+ "のステータスを抽選中............")
#sleep(3)
class yusya_fastste:

    def __init__(self,num,val,hp,gold,mindam,maxdam):

        self.num = num
        self.val = val
        self.hp = hp
        self.gold = gold
        self.mindam = mindam
        self.maxdam = maxdam

yusya1 = yusya_fastste(1,0,5,200,1,10)
yusya2 = yusya_fastste(2,0,6,180,1,9)
yusya3 = yusya_fastste(3,0,7,150,1,8)
yusya4 = yusya_fastste(4,0,8,80,1,7)
yusya5 = yusya_fastste(5,0,9,70,1,6)
yusya6 = yusya_fastste(6,0,10,60,1,5)
yusya7 = yusya_fastste(7,0,11,50,1,4)
yusya8 =yusya_fastste(8,0,12,40,1,3)
yusya9 =yusya_fastste(9,0,13,30,1,2)
yusya10 = yusya_fastste(10,0,14,20,1,1)

yusya_hplist = [yusya1.hp,yusya2.hp,yusya3.hp,yusya4.hp,yusya5.hp,
yusya6.hp,yusya7.hp,yusya8.hp,yusya9.hp,yusya10.hp]

yusya_goldlist = [yusya1.gold,yusya2.gold,yusya3.gold,yusya4.gold,
yusya5.gold,yusya6.gold,yusya7.gold,yusya8.gold,yusya9.gold,yusya10.gold]

yusya_maxdamlist = [yusya1.maxdam,yusya2.maxdam,yusya3.maxdam,yusya4.maxdam,
yusya5.maxdam,yusya6.maxdam,yusya7.maxdam,yusya8.maxdam,
yusya9.maxdam,yusya10.maxdam]

yusya_mindamlist = [yusya1.mindam,yusya2.mindam,yusya3.mindam,yusya4.mindam,
yusya5.mindam,yusya6.mindam,yusya7.mindam,yusya8.mindam,
yusya9.mindam,yusya10.mindam]

nameval = len(yusya_name)
for i in range(nameval):
    steval = random.randint(1,10)

my_hp = yusya_hplist[steval-1]
my_gold = yusya_goldlist[steval-1]
my_mindam = yusya_mindamlist[steval-1]
my_maxdam = yusya_maxdamlist[steval-1]
my_lv = 1
my_val =0

print(" ")
print(yusya_name+"のステータスは")
print(" ")
print("***********************************")
print("(LV):"+str(my_lv)+ "(経験値):"+str(my_val)+ " "+
"(HP):" + str(my_hp) + " "+ "(gold):"+ str(my_gold) +" "+  "(mindam):"
+str(my_mindam)+" "+  "(maxdam):"+ str(my_maxdam)+"になりました。")
print(" ")

saikorolist = ["足が痛い","歌をうたってみた","道草を食べた..すぐにはきだした。",
"何も考えられないので空をみあげた。","川をみつけた","石をなげてみた","険しい山だ",
"屈伸運動をした","傾いた像がある","火をおこしたい","花のようなものが咲いている",
"コンビニないかな...","遠くでガンッとゆう音がした","大木がある","苦笑してみた",
"なにか獣臭い","遠くで何かが光った","大声を出してみた","ちかくでガサガサ音がする",
"ちょっと寒い","背中がかゆい","知らない間に足のツメが剥がれている","ガスの元栓占めたかなぁ",
"涙がでてきた",]
#print(len(saikorolist))
#sleep(1)
class Story:

    def __init__(self,story):
        self.story = story
one= Story("story1")
#print(one.story)



def fight():
#print(choiceno1)
    global hp
    global zanhp
    global hit
    hp = hpliststage1[choiceno1]
    while int(hp) > 0:
        hit = random.randint(my_mindam,my_maxdam)
        print(str(yusya_name)+ "の攻撃")
        hp -= int(hit)
        print(choicemob1+"に"+str(hit) + "のダメージをあたえた")
        print(choicemob1+"の残りHPは"+ str(hp)+"だ")
    print(choicemob1+"に勝利した")


def eventlot():
    global evelot
    for i in range(saikoro):
        evelot = random.randint(1,1000)
    if evelot <= 400 and yusya_hosu <=400:
        global choicemob1
        global fight_choice
        global hp
        global choiceno1
        choiceno1 = random.randint(0,4)
        choicemob1 = nameliststage1[int(choiceno1)]
        hp = hpliststage1[int(choiceno1)]
        print(choicemob1+"があらわれた")
        fight_choice = input("たたかいますか?:")
        if fight_choice == "y":
            fight()
        elif fight_choice =="n":
            print("命からがら逃げ延びた。")
    else:
        print(random.choice(saikorolist))
        sugoroku()
yusya_hosu = 0
def sugoroku():
    print("サイコロを振りますか?")
    sai = input("y or n :")
    if sai == "y":
        global saikoro
        global yusya_hosu
        saikoro = random.randint(1,6)
        yusya_hosu = yusya_hosu+int(saikoro)
        print("サイコロの目は"+ str(saikoro)+ "です")
        print("歩数は"+str(yusya_hosu) +"です")
        eventlot()
    elif sai == "n":
        sugoroku()
    else:
        print("y or nだよ")
        sugoroku()
def startchoice():
    print("なにをしますか?")
    print(" ")
    print("1:ゲームを始める")
    print(" ")
    start_sentaku = input(":")
    if start_sentaku == "1":
        print("ゲームを初めます")
        sugoroku()
    else:
        print("no")
        startchoice()

startchoice()



input()


lvの経験値テーブルも作りたいなぁ

どんどん複雑になってゆく....^^;












0 件のコメント:

コメントを投稿

 久しぶりの更新です 備忘録 使っているarchlinuxにnvidiaのドライバを入れたところドライバがあっていなかったのかxが起動せずこれをアンインストールしたがその後xf86-video-nouveauが入っているにもかかわらずxが起動しなくなったのでarchwikiにて調...