えくすとらんのブログ

 マップの生成を考えてみた

scratchでマップの生成を少し考えてみました

やりたかったのは主人公は中央から動かず

背景だけが動くというマップでマップはランダムに生成されて

いく... というのがやってみたかった

map生成

少し歩かないと木が出てこないかも....

使うキーは上、下、右、左キーです

単にキーボードでクローンされたオブジェクトを動かしている

だけのものだけどずっと木が生成されていくのでこれでいいかな

とおもっている

....今はねこが木に当たると木が消えて点数が入る

設定にしてあるので次は木にあたったら動きを止めるように

してみたいなぁ

座標と歩数でイベントを起こしてみたら楽しいかも...




ふきのとうみそをつくってみた

実家の裏に毎年でてくるふきのとうが出てないかと

探してみたところありました^^

さっそく家に持ち帰って調理しています(リアルタイムで只今調理中ですが。。。)

とりあえず みそ みりん さとう サラダ油を適当に

まぜあわせ その間にふきのとうを塩ゆでしています

一度煮立ててお湯の色が変わったら水にさらし




もう一度塩ゆでしてみずにさらしています←(今ここ)

少し手間ですがアクがとりたいのです

あとは刻んでつくったお味噌ベースといっしょに炒めてできあがり

おいしいかな?
おいしいだろうな!はは
白いご飯〜
楽しみ楽しみ。。。。


さむいですねぇ

寒がりのえくすとらんは使い捨てカイロが手放せません

ふと思ったのですが....

使い捨てカイロ...別に四角でなくてもいいじゃない?....

仮にシャツやベスト.パンツの形をした使い捨てカイロがあったら暖かそう

いまのままの温度だとちょっと熱いと思うので

低発熱 長時間のものでナイロン袋から取り出しさっと着る...

もちろん使い捨て

ポケットにカイロを入れるベストとかは結構あるみたいだ

なんなら繊維自体が発熱なんていうのもありなのか?

コストがかかるのかなぁ まあかかるよね

なぜか今日はそんなことをかんがえていましたとさ







漢字ひらがな(記号)もハッシュ化

朝方 漢字でパスワードをいれる夢を見た

なのでこんなの作ってみた

#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
import hashlib

a = list(input("漢字ひらがな(記号)もハッシュ化(どうぞ):"))
b = []
for i in a:
    code = ord(i)
    hash = hashlib.sha256(str(code).encode('utf8')).hexdigest()
    b.append(hash)
print(b)
input()

素人なので凝ったことはわからないのでord()を使ってそのまま
数値化したものをハッシュ化してみました

それでは

ゲームを作ってみた(ドラゴンじゃんけん)

プログラミングを勉強してみてわかったこと

pythonの基本的な動かし方はなんとなくわかってきたような気がしていますが

なにぶんにも算数ができないんです

これが難関

文章で問題が書いてあるとしてこれを数式にすることができない

これはもうプログラミング以前の問題でしょう^^;

まぁコピペプログラミングならなんとかできるような気がしているので

趣味のプログラミングでひとまずは楽しむことはできています

あ そうだ

なんとなく作ってみたじゃんけんプログラムを公開してみよう

ツッコミどころ満載です

倉庫にいれておきます

フォルダをダウンロードしてpyファイルに実行権限をつけたら起動できるとおもいます

名前はdoragonjyanken(ドラゴンじゃんけん)

readmetextにも書いていますが音関連に外部のプログラム(sox)を使っています

ライセンス関連(よくわかりません)で違反があればすぐに消しますので教えてください


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

import random as rdm
import easygui as eg
import sys
import time
import subprocess
from subprocess import Popen

senshi_img = "yusya.png"
bijyo_img = "oujyo.png"
doragon_img= "doragon.png"


Popen(['play','chorus.mp3'])

first_msg = eg.ccbox("""この世界とは違う世界のお話。
その日空は暗黒におおわれ人々の平和な暮らしは
終わりを告げた
魔王はフラワー王国を手中におさめようと手下を
王国に次々と送り込んだが”勇者””美女””ドラゴン”の
フラワー国パーティーにことごとく敗北した
魔王は魔力を集めフラワー国パーティーと互角の戦力
”魔鏡のパーティー”を作り出し王国に侵入させた
お互いの弱点は共通である

勇者は美女に弱く
美女はドラゴンに弱く
ドラゴンは勇者に弱いのだ

フラワーパーティーは王国を守ることができるのか?
""",title="doragonjyanken",image="doraopen.png",choices=('gamestart', 'cancel'))

if first_msg == False:
    sys.exit()
elif first_msg == True:
    Popen(['play','magic2.wav'])
    pass

#自軍パラメータを割り振る
senshi_pm = eg.choicebox(title="アタックパラメータの振り分け",msg="パーティーのパラメータ(戦士)(上限70): 残り100",
choices = list(range(71)))
if int(senshi_pm) <= 71:
    Popen(['play','crrect.mp3'])
pm_furi1 = 101- int(senshi_pm)
bijyo_pm = eg.choicebox(title="アタックパラメータの振り分け",msg= "パーティーのパラメータ(美女): 残り{}".format(pm_furi1- 1),
choices=list(range(pm_furi1)))
if int(bijyo_pm) <= 71:
    Popen(['play','crrect.mp3'])
pm_furi2 = int(pm_furi1)- int(bijyo_pm)
doragon_pm = eg.choicebox(title="アタックパラメータの振り分け",msg= "パーティーのパラメータ(ドラゴン)残り{}".format(pm_furi2-1),
choices=list(range(pm_furi2)))
if int(doragon_pm) <= 71:
    Popen(['play','magic2.wav'])
#各軍のライフ
mylife = int(1000)
cpulife = int(round(100))
end_count = 1

# 敵軍パラメータを作成
enemy_senshi_pm = rdm.randint(1,100)
enemy_bijyo_pm = rdm.randint(1,100- enemy_senshi_pm)
enemy_doragon_pm = (100- (enemy_senshi_pm+ enemy_bijyo_pm))
print(enemy_senshi_pm,enemy_bijyo_pm, enemy_doragon_pm)

#def field():
#    eg.msgbox("どちらに進みますか?")
#field()

def game():
    global cpulife
    global mylife
    print(cpulife, mylife)
    class Kyara:
        def __init__(self, name):
            self.name = name
        def battle(self):
            eg.msgbox("敵-魔王軍(cpu):"+ "{}".format(self.name))

    senshi = Kyara("戦士")
    bijyo = Kyara("美女")
    doragon = Kyara("ドラゴン")


    battle_list = [senshi, bijyo, doragon]
    battle_choice1 = eg.buttonbox(title="戦うキャラクターの選択",msg='敵が現れた!どのキャラクターで\
    戦いますか?\nATKパラメータ 戦士: {0} 美女: {1} ドラゴン: {2} '.format(senshi_pm, bijyo_pm, doragon_pm),
    choices=('戦士','美女','ドラゴン'),images=(senshi_img,bijyo_img, doragon_img))
    if battle_choice1 == "yusya.png":
        Popen(['play','laser1.mp3'])
        battle_choice1= "戦士"
    elif battle_choice1 == "oujyo.png":
        Popen(['play','laser1.mp3'])
        battle_choice1= "美女"
    elif battle_choice1 == "doragon.png":
        Popen(['play','laser1.mp3'])
        battle_choice1 = "ドラゴン"
    elif battle_choice1 == None:
        sys.exit(0)
    cpu_choice2 = battle_list[rdm.randint(0,2)]
    eg.msgbox("あなた(フラワー国パーティー):"+ str(battle_choice1))
    eg.msgbox("vs")
    cpu_choice2.battle()
    print(battle_choice1,cpu_choice2.name)

    def jyanken():
        global cpulife
        global mylife
        if battle_choice1 == cpu_choice2.name:
            Popen(['play','magic2.wav'])
            eg.msgbox("ひきわけ")#drawアイテムでレアスキルを付与?

        elif battle_choice1 == "戦士" and cpu_choice2.name == "美女":#wincpu
            Popen(['play','kiss1.mp3'])
            eg.msgbox("あなたは美女にきりかかれない\n魔王軍美女はナゲキッスの呪文を唱えた\nあなたの戦士は骨ぬきにされた。\nあなたはダメージを負った")

            mylife = int(mylife)- (int(mylife)* int(enemy_bijyo_pm)/ 100)
            eg.msgbox("あなたのチームのLIFE:{0}  敵チームのLIFE:{1}".format(mylife, cpulife))

        elif battle_choice1 == "戦士" and cpu_choice2.name == "ドラゴン":#winmyteam
            Popen(['play','swish1_4.mp3'])
            eg.msgbox("あなたの戦士はエクスカリバーで切りつけた。\nあなたの勝利!")
            cpulife = int(cpulife)- (int(cpulife) * int(senshi_pm)/ 100)
            eg.msgbox("あなたのチームのLIFE:{0}  敵チームのLIFE:{1}".format(mylife, cpulife))

        elif battle_choice1 == "美女" and cpu_choice2.name == "ドラゴン":#wincpu
            Popen(['play','dragon_breath1.mp3'])
            eg.msgbox("敵のドラゴンは口から灼熱の炎を吐き出した!\nあなたはダメージを負った")
            mylife = int(mylife)- (int(mylife)* int(enemy_doragon_pm)/ 100)
            eg.msgbox("あなたのチームのLIFE:{0}  敵チームのLIFE:{1}".format(mylife, cpulife))

        elif battle_choice1 == "美女" and cpu_choice2.name == "戦士":#winmyteam
            Popen(['play','kiss1.mp3'])
            eg.msgbox("あなたの美女は魅了の魔法を使った\n魔王軍戦士は理性を失い魔王に切りかかり返り討ちにあった\nあなたの勝利!")
            cpulife = int(cpulife)- (int(cpulife) * int(bijyo_pm)/ 100)
            eg.msgbox("あなたのチームのLIFE:{0}  敵チームのLIFE:{1}".format(mylife, cpulife))

        elif battle_choice1 == "ドラゴン" and cpu_choice2.name == "戦士":#wincpu
            Popen(['play','swish1_4.mp3'])
            eg.msgbox("敵の戦士は闘気をまとった剣を振りおろした。\nあなたはダメージを負った")
            mylife = int(mylife)- (int(mylife)* int(enemy_senshi_pm)/ 100)
            eg.msgbox("あなたのチームのLIFE:{0}  敵チームのLIFE:{1}".format(mylife, cpulife))

        elif battle_choice1 == "ドラゴン" and cpu_choice2.name == "美女":#winmyteam
            Popen(['play','dragon_breath1.mp3'])
            eg.msgbox("あなたはのドラゴンは口から炎を吐き出した。\nあなたの勝利!")
            cpulife = int(cpulife)- (int(cpulife) * int(doragon_pm)/ 100)
            eg.msgbox("あなたのチームのLIFE:{0}  敵チームのLIFE:{1}".format(mylife, cpulife))

    jyanken()
    while (int(cpulife) > int(1) and int(mylife) > int(1)):
        game()
        print(cpulife,mylife)
    if cpulife < mylife:
        Popen(['play','devil_laughing1.mp3'])
        endgame = eg.ccbox("""おお ようやく我のもとへたどりついたか・・\n
        きづかなかったのか?お前たちが戦っていたのはフラワー軍のパーティー....\n
        聞こえてはいないだろうが....お前たちは見境なく殺しすぎた\n
        これからはわしの忠実な下僕としてやつらを攻撃するのだ....\n
        ふはははは.......\n
        魔王は高らかに笑った\n
       \n
        ドラゴンじゃんけん part1 end by xtoran""",image="maou.png")
        if endgame == True:
            global end_count
            end_count += 2
            cpulife  = (cpulife+ int(100)* end_count)
            mylife = mylife +int(100)
            game()
        else:
            sys.exit()
        print(endgame)
    elif cpulife > mylife:
        Popen(['play','requiem2.mp3'])
        endgame2 = eg.ccbox("""あなたのパーティーは全滅した""")
        if endgame2 == True:
            sys.exit()
        else:
            sys.exit()
        print(endgame)
game()
if __name__ == '__main__':
    _main()

とりあえず....

png wav等はフォルダにはいっています

アタックパラメータはパーセントでダメージをあたえるようにしていますが
どうもゲームバランスが悪いようなきがします
そのままアタックパラメータでダメージを与えたほうが面白くなるかもしれません







おお けっこういいかも

申告の時期がやってまいりました

えくすとらんの収入は今の所申告をするほどありませんが(。>﹏<。)

万が一申告しなければならないほどになったときのことを考え....

会計ソフトを毎年考えてみています(なにか悲しい感じになっていますが...)

で....去年はエクセルの会計ソフトをlibreofficeでちょっと使ってみました

まあ なんとか使えたのですがやはりところどころ仕様が違うための不具合が

出ているようでしたので

今年はgnucash をインストールしてみました

最初とまどってしまいましたが

”勘定科目をつくって右クリック

資産移動をおしてあちらからこちらへ資産移動”

という流れがわかると何しているかが

徐々にわかって来たような気がしています(まだそれだけしかしていませんが...)

スマホとも連携できるのでしょうか?(すばらしいですね^^)

これ使おーっと思っている今日この頃です

それではまたノ







らんだむ様の言うとおり

ちょっと 例のあのくじを買ってみようとおもい
たったのですが肝心の数字が思い浮かばないので
1~43の異なる数字を6個選択するコードを書いてみました


#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
#1~43の異なる数字を6個選択
import random

c = []
for i in range(6):
    a = random.randint(1,43)
    b = ("0"+ str(a))
    if a < 10:
      c.append(b)
    else:
      c.append(a)
c = [int(x) for x in c]
print("1から43の6つのランダムに選ばれた数字は")
print(c)
print("です。")
input()

なんの制約もつけていないので
同じ数字が出てきたりもしますが出てきたグループから
気に入ったグループを選べばいいのでこれはこれでいいにしようかなとおもっています

はい 出てきた数字を選んでくじを買ってみましたが
今の所当たりはありません^^;
もちろんこのコードを使ってくじを引いても当たる確率が変わる訳でもなく...
....まあAIを組み込むなんてこともちらっと頭のスミによぎったりもしたわけですが
そこまでしなくても....当たらないからTT(なぜならくじに当たる確率は明日事故で死んでしまう確率より低いというのだから...)
そこでランダム様にランダムな時間と僕のランダムな心でお願いするという
選択により当選を引き出そうとしているのです

よってランダム様の言うとおりなのです

なんのこっちゃ それではまたノ




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