えくすとらんのブログ

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

ばとる

とりあえず此方の攻撃を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の経験値テーブルも作りたいなぁ

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












ちょっとお勉強

接続

pythonで一通りの基礎的な関数やlist操作等を勉強

していますが

いざプログラミングをしてみると

それをつなげる方法をもう少し勉強したほうが良いことが

わかりました

yield や returnとはなんだろう....

ちょっと勉強しよう



まぁ ぼちぼち

少しずつ修正を加えています

やはりメインストーリーは必要だろう...ということも

かんがえてお話を考え中です



#!/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))

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("歩いているとどこからか声が聞こえる...\nしばらく休憩なさっては"
"どうでしょう")
#print(one.story)




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


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,6)
        choicemob1 = nameliststage1[int(choiceno1)]
        hp = hpliststage1[int(choiceno1)]
        print(choicemob1+"があらわれた")
        fight_choice = input("たたかいますか?:")
        if fight_choice == "y":
            return 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()

しまったブログはバックスラッシュ文字化けるんだった

ということで...\はバックスラッシュですバックスラッシュnで改行だそうです

一行でもうごくようですがですがpep8(スタイルガイド)

に79文字は超えないようにしよ〜ぜ

見やすくかっこいいソースにしよ〜ぜ

と書いてあるそうですので(えくすとらんは勉強不足ですm(_ _)m)

途中で改行をすることにしました

ただいまメインストーリーのでだしを考え中....















いきあたりばったりでプログラミング 反撃しないで章

クエスト途中

バトルシーンに入ってから急にスピードダウンしています><

完全に修行不足ですが....

まあ自己満足でよいとします

何が難しいかというと....

関数読み込みの順番です

パソコン → 読んでからじゃないと答えられないよ
えくすとらん → う〜ん^^;ワカンネ

あとはなんだかグローバル変数がどうだとか....

しかしなんとか勇者は拳を振り上げモンスターに一撃を

加える所までやってきました

#!/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))
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("(LV):"+str(my_lv)+ "(経験値):"+str(my_val)+ " "+
"(HP):" + str(my_hp) + " "+ "(gold):"+ str(my_gold) +" "+  "(mindam):"
+str(my_mindam)+" "+  "(maxdam):"+ str(my_maxdam)+"になりました。")

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

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


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,6)
        choicemob1 = nameliststage1[int(choiceno1)]
        hp = hpliststage1[int(choiceno1)]
        print(choicemob1+"があらわれた")
        fight_choice = input("たたかいますか?:")
        if fight_choice == "y":
            return fight()
        elif fight_choice =="n":
            print("命からがら逃げ延びた。")
    else:
        print(random.choice(saikorolist))
        return 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) +"です")
        return eventlot()
    elif sai == "n":
        return sugoroku()
    else:
        print("y or nだよ")
        return sugoroku()
def startchoice():
    print("なにをしますか?")
    print("1:ゲームを始める")
    start_sentaku = input(":")
    if start_sentaku == "1":
        print("ゲームを初めます")
        return sugoroku()
    else:
        print("no")
        return startchoice()

startchoice()



input()

こんな感じになってます

次はモンスターのターンになりあとはどちらかのHPが0になるまでループ。

終わったアトは報酬(ゴールド)や経験値の分配やそれに伴うLVアップ等。

歩数によるLVの選択もまだ実装してません

できれば歩数によるカウントでストーリー(秋カンナさんを序盤から登場させる予定です。カンナさんのパラメータを見ただけでストーリーが思い浮かびそうです)


をオープンなんてできたら

面白いとおもいますが...えくすとらんの技術でできるのか?

まぁ少しずつ考えましょう

追記

今やってみたら....

モンスターHP マイナス表示でできますね^^;

まぁ当然と行ったら当然,正常な挙動です.

while
    if文を使って分岐させなきゃ....

時間をとらないと.... しかし貧乏暇なし><












いきあたりばったりでプログラミング 少しずつで章

そしてモンスターと遭遇(名前はまだない)

ようやく戦闘準備の準備ができようとしています

毎日ちょっとずつしかできませんが締切があるわけでもなし

まったりと楽しんで進めていきます

コードはツッコミどころ満載(自分ではツッコむところすらもわかりません><)

がひとまずはエラーがでなければいいなぁなんておもっているところです

ゲームは只今サイコロをふってイベント or mobを表示したところまで

やってきました

mobのところは歩数によって出現モンスターを振り分けたいななんておもっているので

moblistをLV別に分けていけばいいのかなぁと考えているところです

密かにmob出現のイラストカットインや音とか出来たら.....

いいのにな......とか....

これはもう少しあとで考えることにします

今日はベタ貼り自分用ウエイト無しバージョンです



#!/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)


syokkilist = [ "終了",ryoutenabe.name,denkinabe.name,furaipandai.name,
    furaipancyu.name,furaipansyo.name,furaipanfuta.name,nabefuta.name,
    katatenabedai.name,katatenabecyu.name,katatenabesyo.name,donburicyu.name,
    donburisyo.name,ball.name,zaru.name,saradai.name,saracyu.name,
    sarasyo.name,houcyou.name,manaita.name,hashietc.name,syamoji.name,
    pira.name,shinktarai.name,akikan.name,pura.name,mu.name]

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

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("(LV):"+str(my_lv)+ "(経験値):"+str(my_val)+ " "+
"(HP):" + str(my_hp) + " "+ "(gold):"+ str(my_gold) +" "+  "(mindam):"
+str(my_mindam)+" "+  "(maxdam):"+ str(my_maxdam)+"になりました。")

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

def sugoroku():
    print("サイコロを振りますか?")
    sai = input("y or n :")
    if sai == "y":
        global saikoro
        global yusya_hosu
        yusya_hosu = int(0)
        saikoro = random.randint(1,6)
        a = yusya_hosu+int(saikoro)
        print("サイコロの目は"+ str(saikoro)+ "です")
        print("歩数は"+str(a) +"です")
    elif sai == "n":
        startchoice()
        sugoroku()

    else:
        print("y or nだよ")
        sugoroku()
sugoroku()





def eventlot():
    global evelot
    for i in range(saikoro):
        evelot = random.randint(1,1000)
    if evelot <= 400:
        print("mob"+"があらわれた")
    else:
        print(random.choice(saikorolist))
eventlot()


input()

どっか散歩にいってこよ....


いきあたりばったりでプログラミング 混沌de章

こんなはずでは...

当初 考えていたのは自分でつけた名前の敵が出る。倒す。

ぐらいの数行で終わる感じにしたかったのですが...

こんなのあったらちょっとおもしろいかも.....

なんてことをちょこちょこ考えていたら

170行を超えてきてしまっていました^^;

自分的にはこれからが面白いところです(しかし難しいのでできるかどうかは....)

当初 エリア別で選択してMOBの強さを分けようとおもっていたのですが

サイコロを振って歩数にプラスしてゆく方法になった(した)ので

歩数がすすめば進むほど強い敵になるように設定してゆけばよいのかな

なんておもっています

ターミナルで進む物語ですが一生懸命に打ち込んだテキストの表示が早すぎで

趣に欠けるという事もあり調べてみると

from time import sleep

timeモジュールの中にsleepというのがありこれでウエイトを

付けることにしました

なんかいい感じになってきたんじゃないか....

今の所サイコロの目を出す所までできているのでこれを

なんとかしてコメント or 戦闘 に振り分けたいなぁ

なんておもっています あとはメインストーリーを考えて....

ってどうやってだすんだろ....




できるかなぁ....

いきあたりばったりでプログラミング 勇者ノ章

勇者降臨

今日はとりあえず勇者のステータスを作ってみました

名前によって変化するようにしてみました

簡単なRPG ですのでHP.マックスダメージ.マインダメージ

位でいこうとおもいます

ああ

いま 重大な事に気づきました   orz

このゲームHPを戻すすべを考えていません

.....むむむ ヒールか薬草を実装しなければならないかもしれません

いや もしくは戦いが起こるたびに....
いや やはり自分で戻したい

今の所ゴールドは飾りです

ゴールドなど持っていても役に立たない世界なのです

捨てることもできませんのでどんどん貯まっていくのです

とりあえずステータス表示までを.....



こんな感じになってます ちょっと出てきますノノ

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