「テトリス」を含む日記 RSS

はてなキーワード: テトリスとは

2019-02-16

テトリス99楽しい

スイッチリリースされたやつだけど、イイね

500円のぷよぷよは全く勝てなくてシンドかったけど、これはだいたい5位以内には入れるくらいの難易度だったので、とても楽しいです

2019-02-15

anond:20180113092228

今更だけど1年前のこの記事選手たち

今頃すごいかがやいでるんだろうな

テトリスの最新作出たか

テトリス99

強い人をバッジ可視化してそれを狙われやすくするというのは一見巧みなゲームメカニクスだが、あんまりうまく機能してない気がする。

どうせ終盤まで生き残っていれば必然的バッジが転がり込んでくるので、バッジを集めるインセンティブが薄い。

バッジ未所持でも、たくさんバッジ持ってる人から理不尽な数のラインを送られて死ぬみたいなことは無いし。

2019-02-14

テトリス99やってみて99人中30位だった俺を誰か慰めて

2019-01-16

サーバ攻撃受けたとか言ってるけど

艦これ運営に限っては、この発言は全く信用出来ないんだよなあ。

まあ警察に届け出たとツイートしてたらしいから多分本当なんだろうけど、今までのあの運営のやり口見てると、心情的には嘘としか思えないんだわ。

「頭にきました」とかキャラセリフ引用するのも安直まりないし。

艦これ遊んでない人には分かりにくいし、遊んだとある奴にとっては気持ち悪いだけ。

バカじゃねーの。


そもそもここの運営接続障害をほぼ全てユーザ側の回線が原因として片付けやがるのがすげー気に入らない。

流石はしょぼいブラゲというか、一度に請けられる任務最大数が6なうえに自動受託も未だに実装できない開発が無能なら、インフラインフラ仕事してねーじゃん。

まともな原因究明もやらない給料泥棒を雇ってんじゃねーよ。

それに最近腕組みデブ中年お気に入り絵師と、社員として雇った声優しか積極起用していないし、全体的にやる気の無さが垣間見えるんだよなあ。


あと、大昔「ツール不正利用は発見次第BAN」とか言ってたけど実際は怪しいもんだね。

だって遠征だけでレベル70とか、遠征だけで資材20万とか、人間が手動でやってたら気が遠すぎて、できるわけねー

テトリスを延々プレイするとか、MMOを1日23時間遊ぶのとはわけが違うんだよ。

ぶっちゃけ、どう考えてもツールマクロ使わなきゃありえねー話だわ。

まあ資材は課金してる奴もいそうだけど。


課金といえば、大型艦建造の画面で出る明石の警告がまた、偽善者ぶってて腹立たしいんだよなあ。

「押すなよ、絶対押すなよ!」ってか?

あんなもん、課金頼みじゃなきゃ「出るまで回す」みたいな芸当は無理だと分かって書いてるのバレバレなんだよ。

全く、いちいちやることが頭悪い上に性格悪いとか、救えねーわ。

2019-01-06

しかったけど

コピペ元も だいたいコーダー底辺労働者だったりしても

おれらコピペしてるけだけど 給料いからとか

そんなのりだってのがわかって

オリジナルコードをきれいに書くって

やっちゃいけないことなだって

教えてもらった

ありがとう

 

テトリスコードでなにか残すつもりが

なんというかコピペして

それだけのひとのご飯になって

ちゃんオリジナルを書く人が沈められる文化

まだのこってたんだなと

 

しろ、昔よりもひどくなったんだな

2019-01-04

anond:20190104054605

テトリスプログラムをざっくり書いたけど

キャリアもう20年近い

わざと雑に書いているけど

清書しようとおもったら

何回も何回もくりかえし書き直すしかない

プロでもそんなかんじ

はじめてから日記の日数がわりとあるのは、休みからもあるけど

本業の合間でやるとしても、大変だから

楽で給料が高いってのはあまりない

でも、言い方を変えれば根性さえあればひたすら書き直すだけともいえる

[]2019年1月3日木曜日増田

時間記事文字数文字数平均文字数中央値
00719892139.337
01366742187.358.5
02337078214.561
03115436494.2100
04151533102.218
05234368189.945
06126098508.267
07144361311.566
0834330097.149
09576856120.343
1092839191.229
1185606771.434
12708691124.240
136410543164.725
1466609092.340
158913096147.143
1671325645.927
17899813110.340
181151064392.532
19123654653.236
2010611900112.334
211981393670.434.5
22166943156.831
231811147663.431
1日1821185543101.935

頻出名詞 ()内の数字単語が含まれ記事

人(165), ワイ(134), 自分(126), 増田(109), 今(81), 話(77), 好き(56), あと(52), 問題(50), 必要(46), 人間(45), 気(43), 日本(40), 前(40), 他人(39), 感じ(39), 仕事(39), 相手(38), 理由(36), 結婚(36), 普通(35), 女性(35), 人生(33), 子供(32), 一人(32), 最近(31), 男(31), 頭(30), 手(30), 女(30), ネット(29), 投稿(29), 気持ち(29), ー(28), しない(28), 今日(27), 時間(26), 一番(26), 家族(25), 子(25), 無理(25), 関係(25), 今年(25), 時代(25), 意味(24), 正月(24), 大学(24), 他(24), ゲーム(24), 嫌(24), 韓国(23), 勝手(23), 結局(23), レベル(22), 平成(22), 社会(21), 目(21), 別(21), 世界(20), 会社(20), しよう(20), 本(20), 親(20), 理解(20), 昔(20), 幸せ(20), ハラスメント(19), お金(19), 先(19), ゴミ(19), 受験(19), 顔(19), 全部(19), 加害(19), そうだ(19), 一つ(19), 存在(19), 学校(19), 絶対(18), 会話(18), 家(18), 自体(18), 最初(18), 言葉(18), 甘え(18), 内容(18), 漫画(18), 個人(17), 男性(17), 逆(17), では(17), 金(17), バカ(17), ホモ(17), 興味(17), 勉強(16), 経験(16), 間(16), 認定(16), 女の子(16), 東大(16), ダメ(16), 母(16)

頻出固有名詞 ()内の数字単語が含まれ記事

ワイ(134), 増田(109), 日本(40), 韓国(23), 平成(22), 東大(16), 元増田(14), じゃなくて(12), KKO(12), キモ(11), 被害者(11), ブコメ(11), 承認欲求(11), 可能性(10), アプリ(10), マジで(10), 一般論(10), ブログ(9), 一緒に(8), 低脳(8), イケメン(8), なんだろう(8), 京大(8), アメリカ(8), ムーブ(7), 阪大(7), 北朝鮮(7), 何度(7), PC(7), 被害妄想(7), ブクマ(7), テトリス(7), 3日(7), LGBT(7), 自衛隊(7), 低能先生(7), 具体的(7), 藁人形(7), 同人誌(7), わからん(7), キチガイ(6), どんだけ(6), 社会人(6), 娘(6), なんの(6), はてサ(6), 3年(6), スマホ(6), キモい(6), 生産性(6), -1(6), ブクマカ(6), Amazon(6), ネトウヨ(6), VR(6), 2019年(6), Google(6), metoo(6), t(6), 30歳(5), 円高(5), 個人の感想(5), その子(5), is(5), 日本政府(5), 昭和(5), プレイ(5), アレ(5), ヤバい(5), いいね(5), Apple(5), 数年(5), 高校時代(5), s(5), 大学受験(5), 個人的(5), P(5), バーサーカー(5), Oculus(5), オナホ(5), SNS(5), 東京(5), な!(5), 中国(5), 好きな人(5), 20代(5), なんJ(5), hatena(5), twitter(5), 10年(5), 過去問(5), 脳内(4), 熊本(4), 上の(4), 日(4), 人間性(4), 国立大(4), ロシア(4), 早稲田(4), 卑怯者(4), A(4), 1人(4), かもしれん(4), 2人(4), ウザ(4), 政権批判(4), 100点(4), FGO(4), 竹下通り(4), ガチャ(4), キツ(4), いない(4), ガチ(4), youtube(4), 偏差値(4), センター試験(4), お酒(4), おせち(4), 数年前(4), OK(4), 1番(4), 1000円(4), -3(4), 外国人(4), ノンケ(4), 自分自身(4), 40歳(4), 何回(4), ザ・ノース・フェイス(4), …。(4), 自分語り(4), にも(4), 地震計(4), 専業主婦(4), 1年(4), ー(4), はてブ(4), 滑り止め(4), ツイート(4), アセクシャル(4), レズ(4), 安倍(4), 3人(4), 30代(4), 高3(4), ええんや(4), CM(4)

本日の注目単語 ()内の数字単語が含まれ記事

わらい(4), ロスカット(3), バーサーカー(5), 今年の抱負(3), Quest(3), 竹下通り(4), 初売り(3), そごう(3), 赤本(3), 非コミュ(3), 破れる(3), 年賀状(11), 正月(24), ワイ(134), 加害(19), 包丁(9), 早々(10), 年末年始(8), metoo(6), ハラスメント(19), 受験生(6), 地震(15), 京大(8), 低脳(8), 藁人形(7), 平成(22), 受験(19), 再(32), 東大(16), 思い出(14), 試験(11), 甘え(19), 去年(10), ホモ(17)

頻出トラックバック先(簡易)

■兄に虐待されていたこと /20190103065022(14), ■誰かと付き合いたいと思う感情が湧かないまま20代が終わった /20181230221848(11), ■買った鞄がホモランドセルと呼ばれている噂を知り感情を整理できない /20190103174931(10), ■承認欲求という奴がよくわからん /20190103053948(9), ■姉と一線越えかけた話 /20190103055748(8), ■電車の中で外人さんに話しかけられた /20190103224650(7), ■ /20190102211142(7), ■転職する度に後悔している /20190103224035(7), ■〇〇は平成で終わりにする /20190103085720(7), ■孫がウザい /20190103145155(7), ■小さなことを気にしない奴が主人公の話 /20190103161935(6), ■電子マネークレカ中心で生活してて、広域停電になったら /20190103134507(6), ■コミュ障活字中毒者は漢字の読み方を知らない /20190102215750(6), ■こういうドラマがみたい /20190103104753(6), ■笑い以外の感情を湧かせる芸人っていますか /20190103190346(6), ■「起立性調節障害学校にいけない状態」には適したサポートをしてほしい /20190103015906(5), ■東大までの受験の思い出 /20190102063518(5), ■ラーメン屋に行ったけど /20190102154322(5), ■ダメージジーンズ業界もっと現実を見ろ /20190103101841(5), ■正月モヤモヤした気持ちのとりとめもないメモ /20190103212946(5), ■引っ越したら住所変更しろ /20190102225933(5), ■年始早々のクソ縁起悪い話 /20190101213910(5), ■結婚したいけどできない人なんているんかな /20190102213349(5)

増田合計ブックマーク数 ()内の数字は1日の増減

5917212(0)

2019-01-03

anond:20190103193510

次はシューティングなどでもよくある

当たり判定

 

まり過去の落ちた残骸のBOX

今のBOXがあたるかどうかの判定

 

テトリスBOXをあたりはんてい

というのはどうかとはおもうけど

基本は一緒

 

これができれば まぁ マリオもできなくはない

anond:20190103170543

テトリス

落ちてくるブロックの描き方

わかりやす関数化してみた

まずはブロックの種類は3種類

 

WriteBoxLとWriteBoxIとWriteBoxZ

の違いをよく見比べて

自力で違いがわかれば

プログラマーにはなれるとおもう

とはいえ、コレを自力でわかるならもっと儲かる仕事あるとはおもうけどな

 

	BOOL WriteBox()
	{
		switch (boxType)
		{
		case 0:
			return WriteBoxI();
		case 1:
			return WriteBoxL();
		case 2:
			return WriteBoxZ();

		}
	}
// WindowsProject7.cpp: アプリケーションエントリ ポイント定義します。
//

#include "stdafx.h"
#include "WindowsProject7.h"

#define MAX_LOADSTRING 100

// グローバル変数:
HINSTANCE hInst;                                // 現在インターフェイス
WCHAR szTitle[MAX_LOADSTRING];                  // タイトル バーテキスト
WCHAR szWindowClass[MAX_LOADSTRING];            // メイン ウィンドウ クラス名

// このコード モジュールに含まれ関数宣言転送します:
//ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

#include <list>

class MyWindow;
	
std::list< MyWindow *> windows;

class MyWindow
{
public:

	HWND hWnd;



	MyWindow()
		:hWnd(NULL)
	{
		windows.push_back(this);
	}

	virtual ~MyWindow()
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			if (*it == this)
			{
				windows.erase(it);
				break;
			}
		}
	}

	static MyWindow * find(HWND key)
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			MyWindow *target = *it;

			if (target->hWnd == key)
			{
				return target;
			}

		}

		return NULL;
	}



	//
	//  関数: MyRegisterClass()
	//
	//  目的: ウィンドウ クラス登録します。
	//
	ATOM MyRegisterClass(HINSTANCE hInstance)
	{
		WNDCLASSEXW wcex;

		wcex.cbSize = sizeof(WNDCLASSEX);

		wcex.style = CS_HREDRAW | CS_VREDRAW;
		wcex.lpfnWndProc = WndProc;
		wcex.cbClsExtra = 0;
		wcex.cbWndExtra = 0;
		wcex.hInstance = hInstance;
		wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT7));
		wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
		wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
		wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT7);
		wcex.lpszClassName = szWindowClass;
		wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

		return RegisterClassExW(&wcex);
	}

	//
	//   関数: InitInstance(HINSTANCE, int)
	//
	//   目的: インスタンス ハンドルを保存して、メイン ウィンドウ作成します。
	//
	//   コメント:
	//
	//        この関数で、グローバル変数インスタンス ハンドルを保存し、
	//        メイン プログラム ウィンドウ作成および表示します。
	//
	BOOL InitInstance()
	{
		hInst = hInstance; // グローバル変数インスタンス処理を格納します。

		ATOM c = MyRegisterClass(hInstance);
		x = 0;
		y = 0;
		boxType = 0;

		hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
			CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

		if (!hWnd)
		{
			return FALSE;
		}

		return TRUE;
	}

	BOOL ShowWindow()
	{
		BOOL ret;
		ret = ::ShowWindow(hWnd, SW_SHOW);
		::UpdateWindow(hWnd);

		return ret;
	}


	HINSTANCE hInstance;
	MSG msg;
	BOOL run;
	int x;
	int y;
	BOOL Main()
	{

		HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT7));
		run = true;
		int rc;
		// メイン メッセージ ループ:
		while (run)
		{
			DWORD obj = MsgWaitForMultipleObjectsEx(0, NULL,  100 , QS_PAINT| QS_ALLEVENTS,0);
			if (obj <= WAIT_OBJECT_0)
			{
				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
				{
					if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
					if (msg.message == WM_QUIT) {
						run = FALSE;
					}
					if (msg.message == WM_CLOSE) {
						run = FALSE;
					}

				}
			}
			else if (obj == WAIT_TIMEOUT)
			{
				y++;
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				this->OnPaint(ps);
				EndPaint(hWnd, &ps);
				::UpdateWindow(hWnd);
				RECT Rect2 = { 0,0,48*9,48 * 8 };
				InvalidateRect(hWnd, &Rect2, TRUE);
			}
			else if (obj == WAIT_FAILED)
			{
				rc = GetLastError();
			}
			else {

			}
		}


		return TRUE;

	}

	int boxType;

	BOOL WriteBox()
	{
		switch (boxType)
		{
		case 0:
			return WriteBoxI();
		case 1:
			return WriteBoxL();
		case 2:
			return WriteBoxZ();

		}
	}

	BOOL WriteBoxZ()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) - 1;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) - 1;

		ret = FillRect(hdc, &Rect, hBrush);


		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.left += width;
		Rect.right += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);


		DeleteObject(hBrush);

		return TRUE;
	}


	BOOL WriteBoxL()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) -1 ;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) -1;

		ret = FillRect(hdc, &Rect, hBrush);


		Rect.top    += width; 
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.left   += width;
		Rect.right  += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}

	BOOL WriteBoxI()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) - 1;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) - 1;

		ret = FillRect(hdc, &Rect, hBrush);


		//Rect.left   += width;
		//Rect.right  += width;
		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}


	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		if (x > 8) {
			x = 0;
		}
		if (x <0) {
			x = 8;
		}
		if (y > 8) {
			y = 0;
			boxType++;
			if (boxType > 2)
			{
				boxType = 0;
			}
		}

		this->WriteBox();

		return TRUE;
	}



	BOOL OnKey()
	{
		x++;
		return TRUE;
	}


};


int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: ここにコードを挿入してください。

    // グローバル文字列初期化しています。
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_WINDOWSPROJECT7, szWindowClass, MAX_LOADSTRING);
    //MyRegisterClass(hInstance);



	MyWindow win;



	win.hInstance = hInstance;

	// アプリケーション初期化を実行します:
	if (!win.InitInstance())
	{
		return FALSE;
	}

	BOOL ret;

	win.ShowWindow();

	ret = win.Main();

	if (ret)
	{
		return 0;
	}else {
		return (int)win.msg.wParam;
	}



}






//
//  関数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的:    メイン ウィンドウメッセージを処理します。
//
//  WM_COMMAND  - アプリケーション メニューの処理
//  WM_PAINT    - メイン ウィンドウの描画
//  WM_DESTROY  - 中止メッセージを表示して戻る
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 選択されたメニューの解析:
            switch (wmId)
            {
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
		break;
	case WM_KEYDOWN:
		{
			MyWindow *target = MyWindow::find(hWnd);
			target->OnKey();
		}
	break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

			MyWindow *target = MyWindow::find(hWnd);
			target->OnPaint(ps);


            // TODO: HDC を使用する描画コードをここに追加してください...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// バージョン情報ボックスメッセージ ハンドラーです。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

anond:20190103170216

ま、きちんと基礎を習っていれば

テトリスぐらいはすぐに作れる

とはいえ、基礎を習っていれば

絵ぐらいすぐに書けるとか

そりゃなんでもそうだっていう突っ込みはあるだろうけど

 

結構 短いコードテトリスは動く

(もちろん、音とか背景とか 凝りだしたらキリがない)

anond:20190103155208

これで、ブロックを4つ書くからテトリス

	BOOL WriteBox()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) -1 ;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) -1;

		ret = FillRect(hdc, &Rect, hBrush);


		//Rect.left   += width;
		//Rect.right  += width;
		Rect.top    += width; 
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}


	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		if (x > 8) {
			x = 0;
		}
		if (x <0) {
			x = 8;
		}
		if (y > 8) {
			y = 0;
		}

		this->WriteBox();

		return TRUE;
	}


anond:20190103154644

で 次は キー入力が右しかないけど これじゃぁ テトリスっぽくないか

ブロック作画をもうちょっと 本格的にしてみよっか?

 

そうするといまは 作画関数のOnPaint(ペイントせよ)命令の中に全部ダラダラとかいてあるけど

WriteBox()っていう関数あらたにつくって

 

OnPain()

{

WriteBox();

}

って やればいいとなるよな

ということで新規関数を作るという流れ

anond:20190101175055

テトリス風?プログラムに向けて

第何回だろうな

キー入力を追加した

まだ、何を押してもブロックが右に移動するだけ(右端にいくと左にワープ

タイマー自動落下

 

でもまぁ ここまでサンプルがあるとほぼテトリスは見えてきた

// WindowsProject7.cpp: アプリケーションエントリ ポイント定義します。
//

#include "stdafx.h"
#include "WindowsProject7.h"

#define MAX_LOADSTRING 100

// グローバル変数:
HINSTANCE hInst;                                // 現在インターフェイス
WCHAR szTitle[MAX_LOADSTRING];                  // タイトル バーテキスト
WCHAR szWindowClass[MAX_LOADSTRING];            // メイン ウィンドウ クラス名

// このコード モジュールに含まれ関数宣言転送します:
//ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

#include <list>

class MyWindow;
	
std::list< MyWindow *> windows;

class MyWindow
{
public:

	HWND hWnd;



	MyWindow()
		:hWnd(NULL)
	{
		windows.push_back(this);
	}

	virtual ~MyWindow()
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			if (*it == this)
			{
				windows.erase(it);
				break;
			}
		}
	}

	static MyWindow * find(HWND key)
	{
		std::list< MyWindow *>::iterator it;
		for (it = windows.begin(); it != windows.end(); it++)
		{
			MyWindow *target = *it;

			if (target->hWnd == key)
			{
				return target;
			}

		}

		return NULL;
	}



	//
	//  関数: MyRegisterClass()
	//
	//  目的: ウィンドウ クラス登録します。
	//
	ATOM MyRegisterClass(HINSTANCE hInstance)
	{
		WNDCLASSEXW wcex;

		wcex.cbSize = sizeof(WNDCLASSEX);

		wcex.style = CS_HREDRAW | CS_VREDRAW;
		wcex.lpfnWndProc = WndProc;
		wcex.cbClsExtra = 0;
		wcex.cbWndExtra = 0;
		wcex.hInstance = hInstance;
		wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT7));
		wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
		wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
		wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT7);
		wcex.lpszClassName = szWindowClass;
		wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

		return RegisterClassExW(&wcex);
	}

	//
	//   関数: InitInstance(HINSTANCE, int)
	//
	//   目的: インスタンス ハンドルを保存して、メイン ウィンドウ作成します。
	//
	//   コメント:
	//
	//        この関数で、グローバル変数インスタンス ハンドルを保存し、
	//        メイン プログラム ウィンドウ作成および表示します。
	//
	BOOL InitInstance()
	{
		hInst = hInstance; // グローバル変数インスタンス処理を格納します。

		ATOM c = MyRegisterClass(hInstance);
		x = 0;
		y = 0;

		hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
			CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

		if (!hWnd)
		{
			return FALSE;
		}

		return TRUE;
	}

	BOOL ShowWindow()
	{
		BOOL ret;
		ret = ::ShowWindow(hWnd, SW_SHOW);
		::UpdateWindow(hWnd);

		return ret;
	}


	HINSTANCE hInstance;
	MSG msg;
	BOOL run;
	int x;
	int y;
	BOOL Main()
	{

		HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT7));
		run = true;
		int rc;
		// メイン メッセージ ループ:
		while (run)
		{
			DWORD obj = MsgWaitForMultipleObjectsEx(0, NULL,  100 , QS_PAINT| QS_ALLEVENTS,0);
			if (obj <= WAIT_OBJECT_0)
			{
				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
				{
					if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
					if (msg.message == WM_QUIT) {
						run = FALSE;
					}
					if (msg.message == WM_CLOSE) {
						run = FALSE;
					}

				}
			}
			else if (obj == WAIT_TIMEOUT)
			{
				y++;
				PAINTSTRUCT ps;
				HDC hdc = BeginPaint(hWnd, &ps);
				this->OnPaint(ps);
				EndPaint(hWnd, &ps);
				::UpdateWindow(hWnd);
				RECT Rect2 = { 0,0,48*9,48 * 8 };
				InvalidateRect(hWnd, &Rect2, TRUE);
			}
			else if (obj == WAIT_FAILED)
			{
				rc = GetLastError();
			}
			else {

			}
		}


		return TRUE;

	}

	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));
		RECT Rect = { 0,0,48,48 };
		Rect.left = 48 * x;
		Rect.right = 48 * (x+1);
		Rect.top = 48 * y;
		Rect.bottom = 48 * (y+1);
		if (x > 8) {
			x = 0;
		}
		if (x <0) {
			x = 8;
		}
		if (y > 8) {
			y = 0;
		}
		BOOL ret = FillRect(ps.hdc, &Rect, hBrush);
		DeleteObject(hBrush);

		return TRUE;
	}

	BOOL OnKey()
	{
		x++;
		return TRUE;
	}


};


int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: ここにコードを挿入してください。

    // グローバル文字列初期化しています。
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_WINDOWSPROJECT7, szWindowClass, MAX_LOADSTRING);
    //MyRegisterClass(hInstance);



	MyWindow win;



	win.hInstance = hInstance;

	// アプリケーション初期化を実行します:
	if (!win.InitInstance())
	{
		return FALSE;
	}

	BOOL ret;

	win.ShowWindow();

	ret = win.Main();

	if (ret)
	{
		return 0;
	}else {
		return (int)win.msg.wParam;
	}



}






//
//  関数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的:    メイン ウィンドウメッセージを処理します。
//
//  WM_COMMAND  - アプリケーション メニューの処理
//  WM_PAINT    - メイン ウィンドウの描画
//  WM_DESTROY  - 中止メッセージを表示して戻る
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 選択されたメニューの解析:
            switch (wmId)
            {
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
		break;
	case WM_KEYDOWN:
		{
			MyWindow *target = MyWindow::find(hWnd);
			target->OnKey();
		}
	break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

			MyWindow *target = MyWindow::find(hWnd);
			target->OnPaint(ps);


            // TODO: HDC を使用する描画コードをここに追加してください...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// バージョン情報ボックスメッセージ ハンドラーです。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

2019-01-02

僕は対戦ゲームが下手だ

からゲームの対戦で友達にあまり勝てたことがない。

マリオパーティマリオカートボンバーマン桃鉄みたいな、自分は持ってないゲームならまぁいい。

問題は、スマブラみたいな、自分でも持ってて家でやってるゲームでも勝てないということだ。

だいたい攻撃を読まれほとんど当たらず、コテンパンにされる。

20代の頃には、ゲーマーじゃないかゲーム下手だろうとタカを括っていた当時の彼女に、ゲームボコボコにされた。

ポケモンは、厨ポケ使って俺TUEEEしてたら、高校の頃滅茶苦茶強い奴にコテンパンにされて心折れた。

オセロもそこそこ強くて俺TUEEEしてたと思いきや、ネットで知り合った友達オセロでもコテンパンにされ、テトリスSNS友達の中じゃ上位に食い込むが、如何せんT-Spinが出来ない。

どうも、全てが苦手というわけでもないらしく、ハンプシャーリータスクという、何やらミニゲームっぽいテストでは、世界上位2%以内に入る成績を軽く取った。

運動もそうだが、ゲームの上手い下手は脳の認知機能の性能とリンクしてる。つまりゲームが下手である事は、(どれだけ幼少期にゲームに触れたか?との相関を外してみれば)現実世界での頭の悪さとか要領の悪さとかとリンクしてる。

最近ゲームをやっててとにかくヘタクソな自分が、リアルでも要領が良くない自分彷彿とさせて嫌になる。

たぶん、何かしら得意なことがあって、その事ならきっとなんの努力もせずに軽く結果を出せるんだけど、自分のいる環境では得意なことは必要とされてない上に、娯楽としてすらメインストリームではないという残念さ。

結果、「やらなくちゃいけないこと」も「やりたいこと」も、苦手な事だらけで人生ハードモードという。

ハンプシャーリータスクで上位2%が取れる能力必要とされる仕事ってなによ?

まぁたぶん、殆どの人が、得意なことなんかさせてもらえてないんだろうけどさ。日本会社スペシャリストじゃなくてジェネラリストを好むからね。

2019-01-01

プログラムなんてよ

ただひたすら頑張るだけで テトリスぐらいできる。

仲間が何人かいれば、マリオの初期のやつぐらいはつくれるだろう

ただひたすら頑張ればできるだけ

 

音楽もある程度まではそうなんじゃねーの?

かじってる程度だけどよ

ダンスや絵は ちがうのか?

映画は?

 

オレの場合

ただひたすら無駄努力を続けたんだけどよ

2018-12-31

anond:20181231091350

ゲームで頭良くなるって研究あるけどな。

ただ、結局は脳に負荷がかかることが大事なので、簡単ゲームでは頭良くならない。

例えばテトリスで頭が良くなる事がわかってるんだけど、テトリスに慣れてくると元に戻っちゃうんだと。

格ゲーとかガチ勢は常に強い奴と戦って、脳に負荷かかってるから、頭良くなると思うけどな。

Brain n backとかやり続けるよりよっぽど楽しいし。

2018-12-30

いまさらなざらゲーム脳

スマホ依存」という言葉が普及しすっかり見なくなったが、一時期「ゲーム脳」という言葉流行した。

ゲーム脳」はテトリスというパズルゲームをしている際の脳波を測定したものである。要するにテトリスをずっとやっていると脳がお休みになってしまうということだと理解している。また、森昭雄ドラゴンクエストのようなストーリーのあるゲームは知らないという名言を吐いた。

ゲーム脳」という造語の発案者である森昭雄日本大学教授である。この言葉を発案しただけで一世を風靡した感がある。

彼の事跡永久に残すため「集団ストーカー」や「思考盗聴」とともに「ゲーム脳」をネット史に残る三大キーワードと称することを提案したい。

2018-12-28

anond:20181228210311

なんか、Visual Studio自動生成するコードじゃ

面白くないよね

適当にMyWindowクラスに したてあげてみよっか?

PeekMsgじゃなくて

MsgWaitを使った タイマー有りのマルチパンプキー入力

ぐらいまで やればいいよね?

横8のテトリスだと ちょいと面倒だから

横4 縦 10ぐらいのテトリスっぽいなにか?

を めざせばいいのか?

たぶん 途中で挫折するけど

クリスマスプレゼントの続き

2018-12-26

anond:20181226212719

短期的で良いならテトリス

長期的に埋めたいならHIIT(高強度インターバルトレーニング)の習慣化かな。

お好きな方をどうぞ。

2018-12-25

[]2018年12月24日月曜日増田

時間記事文字数文字数平均文字数中央値
007513888185.244
0168476170.031.5
02344517132.923.5
03142259161.455.5
04101432143.253.5
05174407259.275
06131591122.463
0749206442.127
0867486572.637
0955531596.639
101541089370.736
117611265148.255
12638815139.955
1354482289.333.5
141151119897.438
15111788671.039
1685820296.534
171241177795.042.5
181151148899.930
19110631457.428.5
2089611268.728
212091257360.229
221381308994.837
231531455895.233
1日199818409192.135

頻出名詞 ()内の数字単語が含まれ記事

人(174), 自分(136), 増田(86), 今(74), 女(67), 前(65), ー(59), 話(59), あと(56), クリスマス(54), 日本(53), 人間(53), 好き(52), 今日(48), 気(47), 子供(43), 問題(42), 時間(40), 必要(38), 相手(37), レベル(37), 感じ(37), 普通(37), 男(36), 金(36), 一人(36), 意味(35), 手(34), 仕事(33), 人生(33), ブス(33), しない(33), 他(32), 課金(31), 最近(31), 結婚(30), ワイ(30), 目(29), ゲーム(29), ゴミ(29), 関係(28), 世界(27), 言葉(27), 社会(26), ネット(26), 気持ち(25), キャラ(25), バカ(24), 全部(24), 頭(24), 会社(24), ソシャゲ(23), 逆(23), 嫌(23), 時代(23), 今年(23), 別(22), 他人(22), 幸せ(22), じゃなくて(22), 子(22), 夜(21), 明日(21), 最初(21), アニメ(21), 女性(21), 存在(21), 無理(21), 心(20), 正直(20), おっさん(20), しよう(20), お金(20), 店(20), 昔(20), 日本人(20), 無駄(19), 結局(19), 結果(19), 理由(19), 一番(19), 投稿(19), FGO(18), 記事(18), 男性(18), 家(18), 場合(18), 勉強(18), セックス(18), イベント(18), 誰か(17), 女の子(17), 親(17), ケーキ(17), 趣味(17), ダメ(16), 評価(16), 現実(16), 名前(16), 話題(16), 仕方(16), 全て(16), 最後(16), ネトウヨ(16), 一緒(16), サンタ(16), 意見(16)

頻出固有名詞 ()内の数字単語が含まれ記事

増田(86), 日本(53), ワイ(30), ソシャゲ(23), じゃなくて(22), FGO(18), サンタ(16), ネトウヨ(16), 韓国(15), ガチャ(15), 可能性(14), 1人(14), マジで(11), キモ(11), なのか(11), いない(11), フェミ(10), 何度(10), リアル(10), 元増田(10), 400万(10), イケメン(9), わからん(9), トラバ(9), アメリカ(9), 一緒に(9), ダブスタ(9), 平成(9), 10年(9), リア充(9), KKO(8), ブコメ(8), ブクマ(8), twitter(8), ツイッター(8), A(8), 社会人(8), プレイ(8), クリスマスプレゼント(7), カス(7), キモい(7), キリスト(7), グリッドマン(7), 東京(7), スマホ(7), なんだろう(7), 2018年(7), アプリ(7), i(7), 毎日(7), hatena(7), 中国(7), PC(7), 誕生日(7), 脳内(7), はてブ(6), 影響力(6), サンタさん(6), 30代(6), 10分(6), 騎乗位(6), である(6), 日銀(6), s(6), w(6), …。(6), ツイート(6), 1回(6), レーダー照射(6), ヤバい(6), 普通に(6), 個人的(6), 自衛隊(5), パチンカス(5), Twitter(5), いいんじゃない(5), 誹謗中傷(5), よろしくお願いします(5), 客観的(5), 3人(5), あいつら(5), キヨ(5), E3(5), ω(5), ブログ(5), 夫婦(5), ネタバレ(5), Fate(5), c(5), P(5), 上の(5), イヴ(5), 分からん(5), Mac(5), 大企業(5), ネット民(5), BL(5), YouTube(5), 好きな人(5), エヴァ(5), サンタクロース(5), 価値観(5), 笑(5), 83%(5), ー(5), 女に(5), JK(5), メンヘラ(5), なんの(5), テトリス(5), きもい(5)

本日の注目単語 ()内の数字単語が含まれ記事

聖夜(6), メリークリスマス(6), ストローマン論法(4), キヨ(5), クリスマスイブ(14), おうむ返し(6), 封じよ(4), 管制(4), レーダー照射(6), ETF(3), 鉄血のオルフェンズ(3), クリスマス(54), 400万(10), 課金(31), 直視(7), ケーキ(17), キリスト(7), チキン(11), FGO(18), 鯖(7), 周回(6), 楽天(10), 中毒(9), ソシャゲ(23), 年末(8), グリッドマン(7), ガチャ(18), ワイ(30), ブス(33), 甘え(15), 可愛い(29), 後悔(12), 今年(23), 優しく(12)

頻出トラックバック先(簡易)

FGOに400万課金した女が思うこと /20181224032047(43), ■ミステリ小説でよくあるけれど /20181224000358(11), ■Amazon最近適当じゃね? /20181224151255(10), ■だから、「きよしこの夜」の /20181224143913(7), ■「嫌なら見るな」と言うが、見たくなくても目に入るし、見せに来るんだよ /20181224170716(6), ■ /20181224220113(6), ■大学無償化対象浪人生高認合格者が入っていないのでメールを送ったら大臣がそれに答弁した /20181223213048(5), ■anond20181029210411 /20181224223843(5), ■リベラルという呼称が嫌い、というかやばい /20181224121958(5), ■フェミニストって何か知らなかったけど /20181224204023(5), ■友達バンドをやってる /20181224101835(5), ■恋愛経験があるけど喪を名乗る女です /20181224003438(4), ■沖縄海兵隊戦略的必要性ない /20181224164657(4), ■田舎の人の話し方が苦手 /20181221155720(4), ■anond20181224032047 /20181224081623(4), ■サヨク連中は抑止力っていう概念理解してないのか? /20181224205539(4), ■ネトウヨ発言マニュアル /20181224212631(4), ■思わせぶりな言動する女は男の人生を狂わせている自覚はあるのか /20181224094718(4), ■ /20181222023154(4), ■特撮にハマったけど /20181222112717(4), ■いらない子がいなくなった現代 /20181224171221(4), (タイトル不明) /20181224114751(4), ■ /20181224145619(4), ■ヤハウェ「いや、ぼくはみんなの願い叶える神じゃないし」 /20181224145143(4), ■ネトウヨ発言パターン集 /20181224155322(4), ■1番悲しいイブを過ごしてるやつが優勝 /20181224190329(4), ■ /20181224151831(4)

増田合計ブックマーク数 ()内の数字は1日の増減

5899911(1038)

2018-12-24

さっきの話じゃないけど

テトリス高校生で組めた俺達のグループの先輩たちは

大学より高専とか専門に行った

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん