えくすとらんのブログ

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

勇者降臨

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

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

簡単な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とします

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












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