えくすとらんのブログ

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

変化ノ章


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

食器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

インスタンス生成

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

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

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

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

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

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














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