クラスの継承には、extendsを使う・・・。

まずBaseClass.javaに、

整数値iと文字列strを持つ基底クラスBaseClassを用意する・・・。

次にDerivedClass.javaに、BaseClassの派生クラスDerivedClassを定義する・・・。

継承するには、このように派生クラスの後に、extendsを付けて、さらに後ろに基底クラスを書く・・・。

DerivedClassでは、i, strに加えて、実数値のf、真偽値のbを持つようにする・・・。

コンストラクタは、

iとstrはBaseClassのprivateメンバなので、直接アクセスできないのでsetメソッドで初期値をセット・・・。
そして、fに0、bにfalseをセット・・・。

setメソッドも、

BaseClassのiとstrにアクセスできないので、BaseClassのsetメソッドを使う・・・。
引数が違うので、この場合はthisをつけなくてもBaseClassのsetであると認識してくれる・・・。
そしてthis.fに引数f、this.bに引数bをセット・・・。

outputにすると、引数が同じなので、区別のためにoutputAllと、BaseClassとは名前を変えている・・・。
BaseClassのoutputを呼んで、iとstrを出力した後、printlnでfとbを出力・・・。

オブジェクトderivedを生成・・・。

outputAllで、一旦出力・・・。

setで50, "ABCDE"をセット・・・。
呼ばれているのはBaseClassのsetメソッド・・・。

ここでoutputAllで、また出力・・。

100, "VWXYZ", 0.123f, trueをセット・・・。
引数が4つなので、DerivedClassのsetメソッドが呼ばれる・・・。

最後にoutputAllで出力・・・。

i = 0, str = -
f = 0.0, b = false
i = 50, str = ABCDE
f = 0.0, b = false
i = 100, str = VWXYZ
f = 0.123, b = true

最初の2行は、値をセットしていないので、初期値がセットされている・・・。
次の2行は、BaseClassのsetなので、iとstrだけセットされている・・・。
最後の2行は、DerivedClassのsetなので、iとstrに加えて、fとbもセットされている・・・。

Sample/MainClass.java at master · bg1bgst333/Sample · GitHub
Sample/BaseClass.java at master · bg1bgst333/Sample · GitHub
Sample/DerivedClass.java at master · bg1bgst333/Sample · GitHub

 

これ何て言うんでしたっけ?
石でできた灯籠?

DSC_9890

涼しげな場所で日当たりの良い所に
造ってもらい苔とともに生活し
いい感じになってるね

今朝はめっきり涼しくなってるわ
というかちょっと寒いくらいの朝
台風の影響?
まだまだ暑い夏を切り撮っていこう! 

 

 

ランキングに参加しています。ポチ応援嬉しいです!
  

AOJ-2232:Ennichi

2018/07/03

Problem A: Ennichi

ぷよぷよっぽいゲームをシュミレートして、1回の操作で全てのマスを消せるかを判定する問題。
操作は、隣り合う2マスを入れ替えるだけ、同じ色がN個以上縦横に並んだら消去。
消えたところには上からマスが落ちてくる。イメージはぷよぷよで考えれば良い。


マスが下に落ちる処理は、右下からループを回していき、1つ上のマスを見るだけで落下はシュミレートできる。今回作成した関数では1つずつしか落ちないので、一気に落ちるところまで、落ちる実装にしたほうがバグは少ないかもしれない。今回は落ちるところがなくなるまで、whileで回すという方法を取っています。

また、問題文の読み間違えでひっかかりそうなのが、隣り合うマスを入れ替えるのは、必ず色付き同士でなくても良いという事。問題文には「 状態 」を入れ替えるなので、空マスと入れ替えるのも処理がないと間違う。

削除は、そのマスを削除していいかの判定を保存してから、あとでまとめて削除したほうがよい。1つずつ見て、削除していくとクロスしているところなどがうまくいきませんでした。

//http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2232

#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
#include<cmath>
#include<climits>
#include<ctime>
#include<cstring>
#include<numeric>

#define ALL(v) (v).begin(),(v).end()
#define REP(i,p,n) for(int i=p;i<(int)(n);++i)
#define rep(i,n) REP(i,0,n)
#define dump(a) (cerr << #a << "=" << (a) << endl)
#define DUMP(list) cout << "{ "; for(auto nth : list){ cout << nth << " "; } cout << "}" << endl;

using namespace std;
 
int H,W,N;

vector< vector<char> > tmp;

bool win(vector< vector<char> > field)
{
	rep(y,H){
		rep(x,W){
			if(field[y][x] != .){ return false; }
		}
	}
	return true;
}

int fall()
{
	int cnt = 0;
	for(int y=H-1; y>0; y--){
		for(int x=W-1; x>=0; x--){
			if(tmp[y][x] == . && tmp[y-1][x] != .){
				swap(tmp[y][x],tmp[y-1][x]);
				cnt++;
			}
		}
	}
	return cnt;
}

void erase()
{
	vector< vector<bool> > del(H,vector<bool>(W,false));
	rep(y,H)
	{
		rep(x,W)
		{
			char self = tmp[y][x];
			if(self == .){ continue; }

			//横の処理
			int cnt=0;
			REP( i, x, W ){
				if( self == tmp[y][i] ){ cnt++; }
				else{ break; }
			}
			if(cnt >= N){
				REP( i, x, W ){					
					if( self == tmp[y][i] ){ del[y][i] = true; }
					else{ break; }
				}
			}
			
			//縦の処理
			cnt = 0;
			REP( i, y, H ){
				if( self == tmp[i][x] ){ cnt++; }
				else{ break; }
			}
			if(cnt >= N){
				REP( i, y, H ){					
					if( self == tmp[i][x] ){ del[i][x] = true; }
					else{ break; }
				}
			}
		}
	}

	rep(y,H){
		rep(x,W){
			if(del[y][x]){ tmp[y][x] = .; }
		}
	}
}

void show()
{
	rep(i,H){
		DUMP(tmp[i]);
	}
	cout << "-------------------" << endl;
}

int main()
{
	cin >> H >> W >> N;
	vector< vector<char> > field(H,vector<char>(W,.));

	rep(y,H){
		rep(x,W){
			cin >> field[y][x];
		}
	}

	rep(y,H){
		rep(x,W-1)
		{
			tmp = field;
			swap(tmp[y][x],tmp[y][x+1]);
			int cnt=1;
			while(true)
			{
				while(cnt){ cnt = fall(); }
				erase();
				cnt = fall();
				if(!cnt){ break; }
			}

			if(win(tmp)){ //クリアー判定
				cout << "YES" << endl; 
				goto end;
			}
		}
	}
	cout << "NO" << endl;
end:
	return 0;
}

今日午前、スシローから謎のメールが届いた。

■□■□■□■□■ スシロー ■□■□■□■□■
╋━━━━━━━━━━━━━╋
本日から!平日限定100円引き!
╋━━━━━━━━━━━━━╋
メルマガ会員の皆様に朗報です。
本日から、18日(金)まで平日限定100円引き!
●クーポン対象商品 ・すし、サイドメニューを含む全商品
●有効期限 2016年11月14日(月)から11月18日(金)までの5日間

なにこれ?

(赤字は自身による)
早速本部に電話である。

「メールマガジンに全商品100円引きとあるんですが、これって寿司が8円になるって事ですか

「1皿で食事を終えられたらそうなります」

合計金額ですか

「合計金額です。わかにくくて申し訳ありません」

これはダメだわ。

恐らく今日中か、次回から「540円以上で」みたいな文言がつくだろう。
これ、「なんとかニュース24」あたりは本当に8円で食事してしたり顔で記事にしそうだがそうなったらいろんな意味で終わりだと思う自身である。
まー648円あたりからならお互いおかしな雰囲気になることもあるいまい。しかし客がおかしな雰囲気にならないよう気を遣うというのもわけわけめである。なのでさっさと「合計○円以上で100円引き」を設けてほしいと思う自身であった。

畑の大掃除

2018/07/03

いや、ただの草刈りですけどねw

f:id:m_uta:20161217120559j:plain
夏の間草刈りをさぼってたところの草が立ち枯れてきたので、今のうちに掃除してしまおう!という次第です。 ちょうど野菜のお世話もひと段落してきたところですし。
しかし、この写真のところなんて可愛いもので、畑のまわりは見たくもない状態。そっちも年内にはなんとかしたい(と思ってはいるのですが。。。

f:id:m_uta:20161217140901j:plain
疲れたので途中だけど、今日はここまでにします!

f:id:m_uta:20161217140924j:plain
反対側から撮ると、結構がんばったでしょ?

f:id:m_uta:20161217120629j:plain
こちらは撤収するのを忘れていた夏野菜(きゅうり、トマト、ピーマン)

f:id:m_uta:20161217141554j:plain
こんなのは簡単なもので、支柱を外して引っこ抜いたらおしまいです。なら、さっさとやっとけよという話w

草?え?みえなーい。

f:id:m_uta:20161217140939j:plain
f:id:m_uta:20161217140946j:plain
これは早生たまねぎです。マルチの有無関係なく大分大きくなってきました。

f:id:m_uta:20161217141000j:plain
一方、こっちは晩生たまねぎ。さっきの早生に比べたら小さいけど(植えた時期が違うので当然ですけどね)、ちゃんと立ち上がってるので問題ないでしょう!

f:id:m_uta:20161217142521j:plain
今日の収穫はにんじん、カブ、ねぎ。
にんじんがちゃんと作れ出したのが地味にうれしいです。
昨年まではこんなに立派なの採れなかったですよ。野菜づくりの腕もちょっとは上手くなってるってことですかね?(単に土がこなれてきただけというのが実際のところw

(。・ω・)ノシ

www.reddit.com

やっちまった のだが
やらった感たっぷりだ
大好きなジェフさんの新し目のアルバムを発見したので「くっちゅん」したら
「ありがとうございました、さぁ好きなだけダウンロードしなはれ」と出てきた。
CDを注文したつもりだったのに…
モノも貰えず金を取られた気分。
まぁいいか、今日はダイエット始めて2ヶ月目で2キロの減量を達成出来ためでたい日だ。金もかけずに体重を減らして喜んでいるのだからオアイコとゆーことで。

f:id:Inochan:20161022062000j:plain

 博多駅前陥没事故(福岡市営地下鉄七隈線延伸工事)関連ツイートをまとめました。

 

ただし、今回は日程は秘密ということにしました。題して「ドッキリ帰省ツアー2009」。そのまんまですね!!
旅割が超安で、行:13,900・帰:10,000という安っぷり。コレは帰らざるを得ない。
で、今日で期限の支払いを忘れていて、今さっき支払いを済ませました。ふぅ。

f:id:Inochan:20170904073139j:plain
これが噂の七分袖
実は この日不整脈がひどくて
隣のベースのおっちゃんに介護されながらのステージでした