えくすとらんのブログ: 6月 2017

不覚....

風邪をひいてしまった

なんとかぜをひいてしまいました><

体力的にも精神的にもかなりパワフルなバイオリズムな時だったのですが

急に喉がいたくなり今日はフラフラです><

趣味のプログラミングの方は一旦おやすみとりあえずバトルシーンの

構築はほぼ終わっているのでシナリオに走るのか

それともバトルーシーンのLVアップにするのか考え中です

バトルシーンの設定はただいまstage1のモンスターだけがでてくる設定に

なっています これを歩数に応じた強さのモンスターをだしたいなぁ

なんておもっていますがどうやればいいのかはまだわかりません

こんな場合は別ファイルにstage1のファイルをコピーして

stage2のモンスターに置き換え歩数分岐でインサートしてもいいのでしょうか...

それなら最初からLV1のモンスターも別ファイルにしては?....

なんて考えも...

ブログアップは少し時間を置いてからしてみようとおもいます

まぁ いろいろやってみて素直に動く方法をみつけたいなぁなんて思っています

...話はかわりますが

グッピー飼いました






















(水槽の中をスマホの写真でとるのは結構難しいものですねぇ)

♂♀2匹づつ買ったのですが

購入時のコンディションが悪かったのか一匹死んでしまいました

グッピーといえばやはり繁殖が醍醐味

我が家の2匹の♀も早速大きなお腹になっています

オスはレッドコブラモザイク(よくわからないけどこんな感じ)

メスはイエローモザイクとブラオです

もちろんどちらのメスが子を産んでも楽しみなのですが

ブラオのほうはもともとブルーグラスの劣勢遺伝ということで

今回誕生する子はブルーグラスになるかもしれないということです

レッドコブラのモザイクとブラオのメス....

どんな子供ができるのでしょう....

楽しみですね^^


いきあたりばったりでプログラミング 勇者は化物になったで章

ゲームバランスの悪さ

数LVUPで勇者が強くなりすぎ...死なない.負けない....あげくHP10の雑魚キャラに

k超えのダメージを与え地面さえ割ってしまいそうな勢いで成長する^^

う〜むこれはこまった

少し考えなければならない

まぁ ひとまず 経験値.ゴールドの付与 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)
class Story:

    def __init__(self,story):
        self.story = story
one= Story("story1")
#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) +"です")
        while yusya_hosu > 20 and yusya_hosu < 30 and story == 0:
                print(".....少し お休みになってはどうですか?....")
                print("ん だれだ?")
                print("まわりを見渡すと")
                print("")
                story = story + 1
                eventlot()
        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()




今日はべた張りで

かなりすすんだ〜^^b











いきあたりばったりでプログラミング 強くならない勇者で章

たらこパスタ、カルボナーラ

はすきなんですけどね.....

プログラミングの業界では可読性の低いプログラムのことを

スパゲッティープログラムと読んだりするらしいですね....

そしてどんどんスパゲッティー化していくこのプログラム....

プログラミング初心者がいきあたりばったりで書いているのだから

自己満足でよいとしよう...^^;

そしてプログラムの方はようやくバトルのループがはじまりました

敵に勝った場合は敵の経験値が自分の経験値に入りその経験値が

経験値テーブル(フィボナッチ数列にしています)

を上回るとLVアップというところまできました

その後もバトルが続きますがLVがアップしてもHPやダメージ等のパラメータ

に反映していないため勇者は弱いままですTT

少しだけ最初の出だしのお話も変えてみました




パラメーターの振り分けができたらメインストーリー考えようかなぁ...


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

生か死か...

勇者のターンからmobのターンになりました

そしてどちらかのHPが0になるまで戦います

バトルのシーンはオートバトルにしています

バトルシーンもウエイトがないと一瞬で流れてしまい

趣がありませんのでウエイトをつけてみました

場合によっては一度目のバトルから魔物に殺されてしまうという

シュールさですがバランス的には大体よいのではないかなと

おもっています

勝敗の判定ができるようになりましたので勝った場合

ゴールド.経験値の付与及びLVアップを考えないといけないなぁ

なんておもっています

....フィールドやバトルが淡々と進みますのでやはりストーリーで

やる気と味付けを引き出したい.....のですが話を考えるのは

むずかしいものです^^;


アニメや音とか簡単に出す方法がないかなぁ

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

ばとる

とりあえず此方の攻撃を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を戻すすべを考えていません

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

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

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

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

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

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



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

キッチンクエスト(仮)できるかなぁ

mobのパラメータをいれてみた

仕事が終わったので...

パラメーターをそそくさとつくってみました

えいっ

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,1,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)

このしたは食器をあらうプログラムと同じものですので

いま時点で使うと経験値順になって出力します^^

コメントは自分で見ながら入れるために書いたものですのでいらなくなったら

けそうかなぁ

上から弱い順になってます

タマボールを某メ◯ルスライムのようなレアmobに位置づけています

遭遇確率は設定しないつもり?ですので

LVが低いうちに出会ったら生きるか死ぬかの攻撃力を設定してみました^^

最低攻撃力1 最高攻撃力200と幅を持たせてあります

こちらのHPが200より低い場合ランダムな攻撃力でスリリングな戦闘を

楽しめるのではないかななんて思っています

自分のキャラもこっそりいれてしまっています

経験値2000 HP2000 最大攻撃力5000 討伐時ドロップゴールド5000000

という値を設定しました(自分大好きか?)

名前だけ見ると空き缶の秋カンナさんがマスコットガールに抜擢されそうです

ゴホン....妄想はこのへんにしてと...

まあ できるかどうか謎ですけどもう少し作っていきます




またまた構想

またまた構想

主人公と作ったmobをたたかわせるため少しパラメータ

をふやすことにしてみました

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                                                                          #
##################################################################################################

普段遊んでいるRPGの敵のパラメータを見るともっといろいろな値があるようですが


とりあえず敵のHPから此方が与えたLVに応じたランダムなダメージを引いて0にする

もしくは敵のランダムな(min~max)攻撃力で此方がやられる

ようにしてみてはどうだろうかと考えています

ゲームの流れも考えてみています

1 フィールド選択(戦闘レベル選択)→mobnumでグループ分け
2 サイコロですすむ
3 テキスト(暑い,寒い,オアシスを見つけた,転んだ,歌をうたってみた,...etc)
 or 敵と遭遇(画像,音が出たら面白いだろうなぁ)
4 戦闘 勝利 or 敗北 経験値,gold会得LVUP
5 主人公ステータス表示
6 フィールド選択 or サイコロ

こんな感じのものが出来たらいいのになぁ

まぁいきあたりばったりですので技術的に難しいようならやめちゃいます

とりあえずmobのパラメータを考えてみよ〜っと





いきあたりばったりでプログラム作成 命名の章

名前を思うままに変えてみた


両手鍋 → 両手ナベンナー
電気プレート鍋 → エレキプレードン
フライパン(大) → フライパンタロン
フライパン(中) → フライパンダ
フライパン(小) → フライパンツァー
フライパン蓋 → フライトン
鍋蓋 → ナベトン
片手鍋(大) → 片手ナベンナー
片手鍋(中) → 片手ナベンナー哀
片手鍋(小) → 片手ナベンナー喜
どんぶり(中) → ドンブリャー青
どんぶり(小) → ドンブリャー赤
ボール → タマボール
ざる → サルザルモンキー
皿(大) → ソーサラ魔
皿(中) → ソーサラ天
皿(小) → ソーサラ破
包丁 → ホー蝶
まな板 → マナボード
スプーン等 → スプーン
しゃもじ → シャモ人
ピーラー → ピーラーヒーラー
シンクたらい → シンクタライオン
空き缶 → 秋カンナ
プラゴミ → プラゴミン

なまえを変えただけでゲームの雰囲気になってきました

名前をつけながらMOBの姿やプロフィールを考えると面白いですねぇ

とりあえず簡単なテキストゲームができたらいいかなぁ



いきあたりばったりでプログラム作成 変化ノ章

変化ノ章


なんとなくおもったのだけどこの前作った

食器classのval値をそのままにしてみんなモンスターの

名前にしてみたら面白いかも...

なんて考えた

例えば

ryoutenabe = Syokki("両手鍋",1,10)



ryoutenabe = Syokki("両手ナベンナー",1,10)←雑魚キャラっぽい

にしてみるとか

denkinabe = Syokki("電気プレート鍋",2,11)



denkinabe = Syokki("エレキプレードン",2,11)←ちょい強そう

なんてどうかなぁ

モンスターの名前は結構こんな感じのものが多そう^^

あと主人公も作ってval値(HP)で戦わせてみたらどうかなぁ

とりあえず名前考えてみよ〜っと














いきあたりばったりでプログラム作成 修正ノ章

皿洗い順番付アプリ(仮)

最後の出力と入出力の装飾を少し修正しました

このアプリは皿洗いの順番をえくすとらんの独断で勝手に並べ替えて

出力するアプリです

指示書があれば皿洗いができるかもというひとには素敵なアプリに

見えるかもしれないとおもい作成してみました

状況によっては順番通りにいかないときが多々でてくるとおもいますので

そのときは好きに洗ってください

基本的に大きなものから洗うように出来ています



今回はコードとしてはります

txtで出力とかつけたほうがいいのかな

いろいろやってみるのもおもしろいですね

個人の趣味でやってることですので技術的なことや

ソフトの実行によっておこったいかなる
トラブルにも対応できませんのでスミマセン


いきあたりばったりでプログラム作成 出来たノ章

皿洗い指令書作成アプリ(仮)

なんとなく出来ました

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

class Syokki:

    def __init__(self,name,num,val):
            self.name = name
            self.num = num
            self.val = val

ryoutenabe = Syokki("両手鍋",1,10)
denkinabe = Syokki("電気プレート鍋",2,11)
furaipandai = Syokki("フライパン(大)",3,12)
furaipancyu = Syokki("フライパン(中)",4,27)
furaipansyo = Syokki("フライパン(小)",5,111)
furaipanfuta = Syokki("フライパン蓋",6,113)
nabefuta = Syokki("鍋蓋",7,114)
katatenabedai =Syokki("片手鍋(大)",8,26)
katatenabecyu = Syokki("片手鍋(中)",9,28)
katatenabesyo = Syokki("片手鍋(小)",10,112)
donburicyu = Syokki("どんぶり(中)",11,116)
donburisyo = Syokki("どんぶり(小)",12,118)
ball = Syokki("ボール",13,29)
zaru = Syokki("ざる",14,110)
saradai = Syokki("皿(大)",15,115)
saracyu = Syokki("皿(中)",16,117)
sarasyo = Syokki("皿(小)",17,119)
houcyou = Syokki ("包丁",18,21)
manaita = Syokki("まな板",19,23)
hashietc = Syokki("お箸.スプーン等",20,121)
syamoji = Syokki("しゃもじ",21,120)
pira = Syokki("ピーラー",22,22)
shinktarai = Syokki("シンクたらい",23,122)
akikan = Syokki("空き缶",24,24)
pura = Syokki("プラゴミ",25,25)
mu = Syokki("mu",0,0)
print("シンクに見えるものを番号で入力してください")

print(str(ryoutenabe.num)+ ":" + ryoutenabe.name)
print(str(denkinabe.num)+ ":" + denkinabe.name)
print(str(furaipandai.num)+ ":" + furaipandai.name)
print(str(furaipancyu.num)+ ":" + furaipancyu.name)
print(str(furaipansyo.num)+ ":" + furaipansyo.name)
print(str(furaipanfuta.num)+ ":" + furaipanfuta.name)
print(str(nabefuta.num)+ ":" + nabefuta.name)
print(str(katatenabedai.num)+ ":" + katatenabedai.name)
print(str(katatenabecyu.num)+ ":" + katatenabecyu.name)
print(str(katatenabesyo.num)+ ":" + katatenabesyo.name)
print(str(donburicyu.num)+ ":" + donburicyu.name)
print(str(donburisyo.num)+ ":" + donburisyo.name)
print(str(ball.num)+ ":" + ball.name)
print(str(zaru.num)+ ":" + zaru.name)
print(str(saradai.num)+ ":" + saradai.name)
print(str(saracyu.num)+ ":" + saracyu.name)
print(str(sarasyo.num)+ ":" + sarasyo.name)
print(str(houcyou.num)+ ":" + houcyou.name)
print(str(manaita.num)+ ":" + manaita.name)
print(str(hashietc.num)+ ":" + hashietc.name)
print(str(syamoji.num)+ ":" + syamoji.name)
print(str(pira.num)+ ":" + pira.name)
print(str(shinktarai.num)+ ":" + shinktarai.name)
print(str(akikan.num)+ ":" + akikan.name)
print(str(pura.num)+ ":" + pura.name)

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]

sentakukei = []
sentakunum1=[]
syokkival1 = []
for i in range(26):
    sentakunum = int(input("数字を選んでenter.0で終了 : "))
    sentaku = syokkilist[int(sentakunum)]
    syokkival = syokkivallist[int(sentakunum)]
    sentakukei.append(sentaku)
    sentakunum1.append(sentakunum)
    syokkival1.append(syokkival)
    if sentaku == "終了":
        break
sentakukei.remove("終了")
sentakunum1.remove(0)
syokkival1.remove("no")
print(sentakukei)
#print(sentakunum1)
#print(syokkival1)
print("が選ばれました。並べ替えます")
henkan = dict(zip(tuple(syokkival1),tuple(sentakukei)))
a = sorted(henkan.items(), key=lambda x: x[0])
#print(tuple(a))
for i in a:
    print(i)
print("の順番で洗うとよさそうです")
input()

一応順番は出てきます

val値10番台は"避ける"をいれたいのですがひとまず未実装です

洗う順番はえくすとらんの考えで決めていますので

こっちのほうがいいだろうってのはあるとおもいますが....

その時はval値をかえていただけると順番が変わると思います

素人が作ったものですので素人目にも荒い出来ですが

恥ずかしながら....恥を忍んで公開しておきます

せっかくclassを作ったのにlistを後で生成

さらに辞書まで作ってしまい プリントはタプルのままという始末....

なにか良い方法があるのでしょうが勉強不足のえくすとらんではこれが精一杯

まぁたのしかったのでおkとします

またなにかつくろっかなぁ...












いきあたりばったりでプログラム作成

お皿洗い指令書(仮)作成中

わけもわからずclassを使ってみている

ひとまずインスタンスというものが作成できるということが

わかっているので

これを使っていきたい

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

class Syokki:

    def __init__(self,name,num,val):
            self.name = name
            self.num = num
            self.val = val

ryoutenabe = Syokki("両手鍋",1,10)
denkinabe = Syokki("電気プレート鍋",2,11)
furaipandai = Syokki("フライパン(大)",3,12)
furaipancyu = Syokki("フライパン(中)",4,27)
furaipansyo = Syokki("フライパン(小)",5,111)
furaipanfuta = Syokki("フライパン蓋",6,113)
nabefuta = Syokki("鍋蓋",7,114)
katatenabedai =Syokki("片手鍋(大)",8,26)
katatenabecyu = Syokki("片手鍋(中)",9,28)
katatenabesyo = Syokki("片手鍋(小)",10,112)
donburicyu = Syokki("どんぶり(中)",11,116)
donburisyo = Syokki("どんぶり(小)",12,118)
ball = Syokki("ボール",13,29)
zaru = Syokki("ざる",14,110)
saradai = Syokki("皿(大)",15,115)
saracyu = Syokki("皿(中)",16,117)
sarasyo = Syokki("皿(小)",17,119)
houcyou = Syokki ("包丁",18,21)
manaita = Syokki("まな板",19,23)
hashietc = Syokki("お箸.スプーン等",20,121)
syamoji = Syokki("しゃもじ",21,120)
pira = Syokki("ピーラー",22,22)
shinktarai = Syokki("シンクたらい",23,122)
akikan = Syokki("空き缶",24,24)
pura = Syokki("プラゴミ",25,25)
print("シンクに見えるものを番号で入力してください(スペース区切り)(例)1 2 3")
print(str(ryoutenabe.num)+ ":" +ryoutenabe.name)
print(str(denkinabe.num)+ ":" +denkinabe.name)

print(str(furaipandai.num)+ ":" + furaipandai.name)
print(str(furaipancyu.num)+ ":" + furaipancyu.name)
print(str(furaipansyo.num)+ ":" + furaipansyo.name)
print(str(furaipanfuta.num)+ ":" + furaipanfuta.name)
print(str(nabefuta.num)+ ":" + nabefuta.name)
print(str(katatenabedai.num)+ ":" + katatenabedai.name)
print(str(katatenabecyu.num)+ ":" + katatenabecyu.name)
print(str(katatenabesyo.num)+ ":" + katatenabesyo.name)
print(str(donburicyu.num)+ ":" + donburicyu.name)
print(str(donburisyo.num)+ ":" + donburisyo.name)
print(str(ball.num)+ ":" + ball.name)
print(str(zaru.num)+ ":" + zaru.name)
print(str(saradai.num)+ ":" + saradai.name)
print(str(saracyu.num)+ ":" + saracyu.name)
print(str(sarasyo.num)+ ":" + sarasyo.name)
print(str(houcyou.num)+ ":" + houcyou.name)
print(str(manaita.num)+ ":" + manaita.name)
print(str(hashietc.num)+ ":" + hashietc.name)
print(str(syamoji.num)+ ":" + syamoji.name)
print(str(pira.num)+ ":" + pira.name)
print(str(shinktarai.num)+ ":" + shinktarai.name)
print(str(akikan.num)+ ":" + akikan.name)
print(str(pura.num)+ ":" + pura.name)

とりあえずここまで^^

classを使わないほうが良かったのか?

まぁ使ってみたかったのだからよいとしよう

これからinput()をつかって入力を受け付けたい

番号から名前へそしてvalを並び替え名前で出力で完成といきたい

もっと簡単にできるかと思っていたのに結構難しそうだ

できるかなぁ



作成環境

皿洗い指令書作成アプリ(仮)作成中^^

一応、名前、ナンバー、順位付けのための数字

を入れてみました


1 両手鍋 避ける(10)    
2 電気プレート鍋 避ける(11)
3 フライパン(大)避ける(12)
4 フライパン(中) (27)
5 フライパン(小) (111)
6 フライパン蓋 (113)
7 鍋蓋 (114)
8 片手鍋(大) (26)
9 片手鍋(中) (28)
10 片手鍋(小) (112)
11 どんぶり(中) (116)
12 どんぶり(小) (118)
13 ボール (29)
14 ざる (110)
15 皿(大) (115)
16 皿(中) (117)
17 皿(小) (119)
18 包丁 (21)
19 まな板 (23)
20 お箸.スプーン.フォーク (121)
21 しゃもじ (120)
22 ピーラー (22)
23 シンクたらい (22)
24 空き缶 (24)
25 プラゴミ (25)
#まな板の上にピーラ 包丁が乗っている場合が多いので包丁ピーラはまな板の前

これに従ってデータを入れていこうとおもいます

エディタはleafpadが大好きですが今回はpython専用IDE Ninja IDEを

使うことにしました

(pythonしか使わないしIDEこれしか入れてないし軽くてよさそうです)





















class hoge:
と入れると自動的にdef __init__(self):を補完してくれました おお^^

プログラムが完成するかどうかはわかりませんがとりあえず

チャレンジです

ちょっとずつ...

食器たちにパラメータをつけてみました

111 両手鍋 避ける(10)    
112 電気プレート鍋 避ける(11)
113 フライパン(大)避ける(12)
114 フライパン(中) (27)
115 フライパン(小) (111)
116 フライパン蓋 (113)
117 鍋蓋 (114)
118 片手鍋(大) (26)
119 片手鍋(中) (28)
120 片手鍋(小) (112)
121 どんぶり(中) (116)
122 どんぶり(小) (118)
123 ボール (29)
124 ざる (110)
125 皿(大) (115)
126 皿(中) (117)
127 皿(小) (119)
128 包丁 (21)
129 まな板 (23)
130 お箸.スプーン.フォーク (121)
131 しゃもじ (120)
132 ピーラー (22)
133 シンクたらい (22)
134 空き缶 (24)
135 プラゴミ (25)
#まな板の上にピーラ 包丁が乗っている場合が多いので包丁ピーラはまな板の前

避けるグループは10番台

今の所、追加も削除もしないと思いますが
昔エクセルでデータの番号を数字の1からふり追加も削除も出来ず
コマッタ事になったことがありましたので^^;数字の前後には
遊びをもたせてみました

まずはインプットのプログラムを組もうと思いますが
....
どうしよう(数字を選んで入力するのがスマートかなと思う) 

ひとまず今日はここまでに...

追記
やはり名前の番号で3桁は使い勝手がわるいかも...
ここは1〜の数字に直そう...


読み違い...

今朝ブログを書いたとおり

洗う食器の順番を出力するプログラムを作ろうと思っているのだが

ブログを書いた後実際に食器を洗ってみると意外な落とし穴が

存在していることに気がついた

山になっている所からまず大きな物を避ける...もしくは洗う

ここはいいんじゃないかとおもっている

あとは大きさ順に大きな方から洗っていけば作業領域の確保を優先しつつ

スピーディーな食器洗いができるであろうと思っていたのだが

洗う前の台所の様子は

シンクの外の作業台にまな板、その上に包丁、ピーラーという

状態が高確率で存在している

これはもちろん包丁で物を切ったあとそのままで放置してある状態だが

このシンク横の作業台は非常に重要なポジションにあり

私は節水対策のため水を出さないで一度食器を洗剤のついたスポンジだけで洗い

それをSWAPさせておくのにつかう領域にしている

そしてさらに問題をややこしくしているのが包丁、あるいは刃物類である

仮に大きさ順に並べて洗うのであればまな板の方を包丁より先に洗うことになってしまう

こうなってしまうと上のものを払い落としておいてまな板を洗わなければならない

刃物類でこういったことしようとすれば当然リスクが跳ね上がる

よって順番は

蛇口の確保(大きなものの移動)・まな板の上の刃物・まな板・あともろもろ

になるのではないかとおもっている


プログラムは

ひとまず書き出している全ての食器に優先順位をつけてみたい

その後で

class Syokki:
    def __init__(self,name,val,num):
        self.name = name
        self.val = val
        self.num = num

インスタンス生成

として各食器の名前とパラメータ(順位)を設定しインプットナンバーを変換

さらにパラメータで序列を変えて出力...

なんてことを考えているが上手く行くかどうかはまだわからない

まぁ食器洗いのプロでもなくもちろんプログラムは趣味でかじった程度

なので内容はかなり適当なことを気分で書いている

まぁ期日はないのでゆっくり作ることにしよう














構想

とりあえずまたまた簡単な何かをプログラミングしてみたいなという考えで

身近にある環境で目につくものを考えてみた

毎日山になってしまう台所の食器....

もう何から手をつけてよいかわからず途方に暮れてしまう

それならば目につく物を入力 → 片付ける順番にして出力

簡単に書いてしまうとこんな感じのものが作ってみたいなぁ

なんておもってみたりしている

ここでの問題は物理の法則にしたがって?いつでも食器が混沌な方向へと

積み重ねられていくことである

そしてそれはシンクを占領しあわよくば蛇口までの距離を縮め作業領域を

奪おうと画策しているかのようにさえ思える

ということで...

大きなものを最初に洗うことで作業領域を確保ということをベースに

考えてゆきたいが例外として両手鍋(大)のようなシンクに

置かれた時点ですでに

蛇口まで到達。作業領域を奪っているものをとりあえずどこか別のところへ

避けるグループにいれてみたい

一応目につく食器類をメモしてみた

両手鍋
電気プレート鍋
フライパン(大)
フライパン(中)
フライパン(小)
フライパン蓋
鍋蓋
片手鍋(大)
片手鍋(中)
片手鍋(小)
どんぶり(中)
どんぶり(小)
ボール
ざる
炊飯器釜
炊飯器蓋
皿(大)
皿(中)
皿(小)
包丁
まな板
お箸.スプーン.フォーク
しゃもじ
ピーラー
シンクたらい

ん〜とりあえずこんな感じでどうだろう?

今日はここまで...

できるかなぁ









もう少し... アルバイト時間計算機 for gui

自分で使う場合は割と15,6日分の計算をまとめてすることがおおいので

何度も回せるようにループを書いてみました

最初に何度も計算するのかをきくようにしました

NOを入力すると一度の計算でおわります

yesを入力すると無限ループですがキャンセルボタンで抜けることができるようです

基本的にシンプルなものがすきなのでこれ以上機能は増やしたくはないですが

なにかが突然おりてきたらつついてみたくなるかもしれません

#!/usr/bin/python
# -*- coding: utf-8 -*-
from easygui import*
def albaito():
    gui1 = enterbox("開始時刻(24H)半角数字(*:**)といれてください:")
    kaishi = gui1.split(":")
    kaishi1 = (int(kaishi[0])*60) + int(kaishi[1])
    gui2 = enterbox("終了時刻(24H)半角数字(*:**)といれてください:")
    syuryou = gui2.split(":")
    syuryou1 = (int(syuryou[0])*60) + int(syuryou[1])
    keikajikan_fun = syuryou1 - kaishi1
    keikajikan = divmod(keikajikan_fun,60)
    jikan = keikajikan[0]
    fun = keikajikan[1]  
    msgbox("経過時間は"+ str(jikan)+ "時間"+ str(fun)+ "分です(^^)")
cnt = ynbox("何度も入力しますか?","アルバイト時間計算(^^;)")
albaito()

while cnt == True:
    albaito()

コードの外部リンクだと環境によって見えないときがあるようですので
テキストベタ貼りにしていますm(_ _)m


改造だ 簡易アルバイト計算機 for gui

なんとなくeasyguiを使ってgui化してみたくなった

#!/usr/bin/python
# -*- coding: utf-8 -*-
from easygui import*
gui1 = enterbox("開始時刻をいれてください(例)8:13:")
kaishi = gui1.split(":")
kaishi1 = (int(kaishi[0])*60) + int(kaishi[1])
gui2 = enterbox("終了時刻をいれてください(例) 9:15:")
syuryou = gui2.split(":")
syuryou1 = (int(syuryou[0])*60) + int(syuryou[1])
keikajikan_fun = syuryou1 - kaishi1
keikajikan = divmod(keikajikan_fun,60)
jikan = keikajikan[0]
fun = keikajikan[1]
msgbox("経過時間は"+ str(jikan)+ "時間"+ str(fun)+ "分です(^^)")

これでウインドウが出てきました























ちょっとしたgui化にはeasyguiが使いやすいなぁ^^

そろそろいかなくては....


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