ここまで順調?にすすんできましたが....
いきあたりばったりの仕様上少し変更したほうがよいかな
と思っている箇所がでてきました
最初に作ったLV別のリストですが当初の考えではLV別に作っておけば
呼び出しが簡単になるのではないかと思っていたのですが
どうやらこれを呼び出すと戦闘場面の処理などをもう一度書かないといけないようで
これならリストをひとまとめにしてランダムで選ぶ数字の方を制御したほうが
効率がよさそうかななんておもっています
#!/usr/bin/python
# -*- coding: utf-8 -*-
import random
import sys
from time import sleep
class Syokki:
def __init__(self,name,num,val,hp,mindam,maxdam,gold):
self.name = name
self.num = num
self.val = val
self.hp = hp
self.mindam = mindam
self.maxdam = maxdam
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,3,2)
furaipancyu = Syokki("フライパンダ",4,7,8,3,5,3)
furaipansyo = Syokki("フライパンツァー",5,12,11,2,5,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]
maxdamstage1= [ryoutenabe.maxdam,denkinabe.maxdam,furaipandai.maxdam,
furaipancyu.maxdam,furaipansyo.maxdam]
maxdamstage2= [furaipanfuta.maxdam,nabefuta.maxdam,katatenabedai.maxdam,
katatenabecyu.maxdam,katatenabesyo.maxdam,donburicyu.maxdam]
maxdamstage3= [donburisyo.maxdam,ball.hp,zaru.maxdam,saradai.maxdam,
saracyu.maxdam,sarasyo.maxdam,houcyou.maxdam,manaita.maxdam]
maxdamstage4= [hashietc.maxdam,syamoji.maxdam,pira.maxdam,shinktarai.maxdam,
akikan.maxdam,pura.maxdam,mu.maxdam]
mindamstage1= [ryoutenabe.mindam,denkinabe.mindam,furaipandai.mindam,
furaipancyu.mindam,furaipansyo.mindam]
mindamstage2= [furaipanfuta.mindam,nabefuta.mindam,katatenabedai.mindam,
katatenabecyu.mindam,katatenabesyo.mindam,donburicyu.mindam]
mindamstage3= [donburisyo.mindam,ball.hp,zaru.mindam,saradai.mindam,
saracyu.mindam,sarasyo.mindam,houcyou.mindam,manaita.mindam]
mindamstage4= [hashietc.mindam,syamoji.mindam,pira.mindam,shinktarai.mindam,
akikan.mindam,pura.mindam,mu.mindam]
goldstage1= [ryoutenabe.gold,denkinabe.gold,furaipandai.gold,
furaipancyu.gold,furaipansyo.gold]
goldstage2= [furaipanfuta.gold,nabefuta.gold,katatenabedai.gold,
katatenabecyu.gold,katatenabesyo.gold,donburicyu.gold]
goldstage3= [donburisyo.gold,ball.hp,zaru.gold,saradai.gold,
saracyu.gold,sarasyo.gold,houcyou.gold,manaita.gold]
goldstage4= [hashietc.gold,syamoji.gold,pira.gold,shinktarai.gold,
akikan.gold,pura.gold,mu.gold]
print("瞼の裏に届く柔らかな光とわずかな草の香りで少しずつ覚醒してゆく"
"気だるさを感じながら""ああそろそろ時間か...と体をおこした")
#sleep(1)
print("・・・・・")
#sleep(1)
for i in range(3):
print("えええ.....まわりを見渡すとそこはただ広い平原だった........")
#sleep(1)
print(" ")
print(" ")
print("勇者の名前を入れてください")
yusya_name = input()
print(" ")
#sleep(1)
print("私の名前は "+ yusya_name+ " 。")
#sleep(1)
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(2)
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,20)
yusya2 = yusya_fastste(2,0,6,180,1,18)
yusya3 = yusya_fastste(3,0,7,150,1,16)
yusya4 = yusya_fastste(4,0,8,80,1,14)
yusya5 = yusya_fastste(5,0,9,70,1,12)
yusya6 = yusya_fastste(6,0,10,60,1,10)
yusya7 = yusya_fastste(7,0,11,50,1,8)
yusya8 =yusya_fastste(8,0,12,40,1,6)
yusya9 =yusya_fastste(9,0,13,30,1,8)
yusya10 = yusya_fastste(10,0,14,20,1,22)
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+"のステータスは")
sleep(1)
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)
def one():
global story
while yusya_hosu > 20 and yusya_hosu < 30 and story == 0:
story = story+ 1
print(story)
sleep(1)
print(".....少し お休みになってはどうですか?....")
sleep(1)
print("ん だれだ?")
sleep(1)
print("まわりを見渡すと自分が今通ってきたばかりの場所に")
sleep(1)
print("真っ黒な服を着た少女が立っていた")
sleep(1)
print("あれ...さっきまで.....そうおもったがなにより人と出会えたことがうれしい")
sleep(1)
print("こんにちは...焦りをさとられないよう 紳士的にあいさつをかわすことにした")
sleep(1)
print("こんにちは...少女は少し照れながらあいさつをかわした")
sleep(1)
print("しばらく沈黙が続いたあとオウム返しのように")
sleep(1)
print("この辺に少し落ち着ける場所はないですか?と口をひらいた")
sleep(1)
print("少女は私がこの世界のことを何も知らないことをみすかしているかのように")
sleep(1)
print("少し説明的な口調で喋り初めた")
sleep(1)
print("さて...いきなりですがあなたはこの世界で勇者となってふえつづける食器MOB")
print("と戦っていただきます")
sleep(1)
print("なぜ?")
sleep(1)
print("なぜ?...と考えましたね")
sleep(1)
print("答えはこのゲームがそういうゲームだからです")
sleep(1)
print("あ....はぁ...")
sleep(1)
print("自己紹介しておきます 私はゲームマスターの秋カンナ..")
sleep(1)
print("ひとまずここから50ほど歩いたところに町があるのでそこへ向かって下さい")
print("そこでまたあいましょう")
sleep(1)
print("そうゆうと煙とともに消えてしまった...")
sleep(1)
print("ああ...消えちゃうんだ まぁ驚かない.... この世界はそんなもの..と")
print("考えることにした。")
sleep(1)
print("少し疲れた..はやく町にたどり着いて休むことにしよう...")
eventlot()
#print(one.story)
def fib(n):
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
return result
lvtable = (fib(999999900000000))
del lvtable[0:5]
#print(len(lvtable))
table = lvtable[my_lv]
def fight():
#print(choiceno1)
global hp
global zanhp
global hit
global my_hp
global now_myhp
global val
global my_val
global table
global my_lv
global my_gold
global now_gold
global my_mindam
global my_maxdam
val = valliststage1[choiceno1]
now_myhp = int(my_hp)
hp = hpliststage1[choiceno1]
now_gold = goldstage1[choiceno1]
while int(hp) or now_myhp> 0:
hit = random.randint(my_mindam,my_maxdam)
print(str(yusya_name)+ "の攻撃")
#sleep(1)
hp -= int(hit)
print(choicemob1+"に"+str(hit) + "のダメージをあたえた")
#sleep(1)
if int(hp)<= 0:
my_val = my_val + val
my_gold = int(my_gold)+ int(now_gold)
#print(str(val)+"の経験値"+ " "+ str(now_gold)+ "のゴールドを手に入れた")
break
print(choicemob1+"の残りHPは"+ str(hp))
#sleep(1)
print(str(choicemob1)+"の攻撃")
#print(mobmin,mobmax)
mobhit = random.randint(mobmin,mobmax)
#sleep(1)
print(str(yusya_name)+ "は"+ str(mobhit)+ "のダメージを受けた")
now_myhp-= int(mobhit)
if now_myhp <=0:
print("あなたは死んだ sayonara")
#sleep(3)
sys.exit(0)
print("あなたのHPは"+ str(now_myhp))
#sleep(1)
print(choicemob1+"に勝利した")
print(str(val)+"の経験値"+ " "+ str(now_gold)+ "のゴールドを手に入れた")
print("経験値:"+ str(my_val)+ "ゴールド:"+ str(my_gold))
if my_val > int(table):
my_lv = my_lv + 1
print("LVアップだ",my_lv)
table = lvtable[my_lv]
print(table)
my_hp = int(my_hp)+ (round(int(my_hp)/2))+ int(my_lv)
my_mindam = int(my_mindam)+(round(my_mindam/2))+int(my_mindam)
my_maxdam= int(my_maxdam)+(round(my_maxdam/2))+int(my_maxdam)
print("(LV):"+str(my_lv)+ "(HP):" + str(my_hp) + " "+ "(gold):"
+ str(my_gold) +" "+ "(mindam):"
+ str(my_mindam)+" "+ "(maxdam):"+ str(my_maxdam)+"になりました。")
sugoroku()
def eventlot():
global evelot
for i in range(saikoro):
evelot = random.randint(1,1000)
if evelot <= 400 and yusya_hosu <= 200:
global choicemob1
global fight_choice
global hp
global choiceno1
global mobmin
global mobmax
choiceno1 = random.randint(0,4)
choicemob1 = nameliststage1[int(choiceno1)]
mobmin = mindamstage1[int(choiceno1)]
mobmax = maxdamstage1[int(choiceno1)]
hp = hpliststage1[int(choiceno1)]
print(choicemob1+"があらわれた")
fight_choice = input("たたかいますか? y or n:")
if fight_choice == "y":
fight()
else:
print(random.choice(saikorolist))
sugoroku()
yusya_hosu = 0
story = 0
def sugoroku():
print("サイコロを振りますか?")
sai = input("y or n :")
if sai == "y":
global saikoro
global yusya_hosu
global story
saikoro = random.randint(1,6)
yusya_hosu = yusya_hosu+int(saikoro)
print("サイコロの目は"+ str(saikoro)+ "です")
#sleep(1)
print("歩数は"+str(yusya_hosu) +"です")
one()
eventlot()
elif sai == "n":
sugoroku()
else:
print("y or nだよ")
sugoroku()
def startchoice():
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(" ")
print("1:ゲームを始める")
print(" ")
start_sentaku = input(":")
if start_sentaku == "1":
print("ゲームを初めます")
sugoroku()
else:
print("no")
startchoice()
startchoice()
input()
20歩進んだところにストーリーを追加しました
(あとは同じように◯歩ごとにストーリー追加ができるはず?...)
話が面白いかは別として....ストーリーが入ると一気にゲームっぽく
なってきます
そこしづつ敵を強くしていきたい+”歩数を戻す”を実装したい
をとりあえず目標にしていきたいとおもっていますが途中で折れる可能性もあります
^^;
風邪がなかなか治りませんTT
0 件のコメント:
コメントを投稿