えくすとらんのブログ

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

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

わけもわからず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にて調...