タグ:プログラミングの検索結果

ブログをグラフィカルにした件

完成したもの一覧 まずは、マーカーです。 マーカーは、 ・ブルー ・ピンク ・グリーン ・イエロー の四つです。 次は、色文字です。 色文字は、 ・レッド ・グリーン ・ブルー の三つです。 次は、分割スタイルです。 分割スタイルは、 これは分割区です。 pre 要素を使っています。 pre 要素を使うのは初めてなので、少し慣れないですね。 しかし、とても見栄えはよくなったと思います。 #include <iostream> using namespace std; int main() { cout << "これはソースコードのスタイルです。" << endl; return 0; } の二つです。 とりあえずこれだけ作りました。 これからは多用しようと思う 今回せっかくを作ったのに、使わないわけにはいかないですよね。 これからはアクセス数が増えていく予定なので、見てみてください。 以上、ブログを強化した話でした。

【プログラミング】C/C++ のメリットデメリット

C/C++とは C/C++、プログラミングをやってる方なら知っているでしょう。 プログラミングをやってない方でも知っているという方はいると思います。 知らない方用に説明しますと、C/C++とはプログラミング言語の一種で、プログラミングとは、文字列でコンピューターに命令するようなものです。 知っている方に向けても、少し紹介します。 C言語は、B言語の次の言語という立ち位置で開発されたプログラミング言語です。 C++ は、簡単に説明すると、C言語にオブジェクト指向を組み込んだプログラミング言語となっています。 また、C言語で書いたプログラムも、C++ のプログラムとして扱えます。 ※オブジェクト指向: いろいろな変数やそれを操作する関数をひとまとめにして、 「モノ」のように手軽に扱えるようにすることです。 そして、C/C++ はC言語とC++の総称です。 C/C++ は難関な言語と良く言われます。 理由は、結構細かい事も書かなくてはいけないからです。 紹介はこのぐらいにして、そろそろメリット・デメリットについて書いて行きます。 デメリットを先に言ったほうが後味がいいので、デメリットから行きます。 C/C++のデメリット はい、デメリットは結構あります。 もちろん、他の言語と比べて、という書き方になりますが。 1.文法が親切じゃない これはだいぶ有名な話だと思いますが、紹介します。 C/C++ は、絶対省けるような文が必要になったり、絶対必要になるであろう関数が無かったりします。 これのせいで、ごちゃごちゃになって、何が何だか分からなくなったり、 それによって、何処でバグが発生いているのか分からなかったりします。

Linuxを2種のUSBに入れて分かったこと

LinuxをUSBでブートしようとした まぁ、この記事を見ている方なら、Linuxを知っていると思います。 こんな記事を書くのに、実は僕はLinuxについてあまり知りません。 何となく、他のOSに触れてみたかったですし、丁度Linuxなら将来必要になるかもしれないので、Linuxを入れようとしました。 しかし、まだ高校生ですので、新しいPCは買えないですし、もちろん親にねだるなんて事も出来ません。 (できたとしても、しません。) そんなわけで、LiveUSBを作成して、USBでブートしようとしました。 ちなみに、そのLinuxはubuntuです。 一回目の挑戦 最初はとても安い市販のUSBでブートしようとしました。 わざわざ「安い」なんて言葉入れる時点で察しているとは思いますが、 見事に失敗しました。 失敗といっても、起動は出来ましたし、動作もしました。 フルインストールする前のやつも、キレイに動作しました。 何が問題だったかというと、動作が異常に遅かったのです。 まぁ、ネットでいろいろ調べたので、何となくは予想はしていましたが。 この失敗を経て、安いUSBは個人のデータ保存用としてしか使えない事を学びました。 二回目の挑戦 前回の反省を生かして、出来るだけいいものを「店」で探しました。 また同じような伏線の張り方をしましたが、あなたの思った通りです。 しかし前回よりは成長して、 多少失敗しました。 まぁ、前回同様、動作が遅いままでした。 最大速でこんな物なのかな?と一瞬だけ勘違いしましたが、開発者に愛されるようなOSがそんな下手なつくりのわけがないので、違うだろうと思いました。 そんなわけでUSBのパッケージを注意深く見てみたら、 「最大転送速度:60 MB/s(本社での検証結果)」 つまり 60 MB/s → 0.06 GB/s → 0.48 Gb/s しかし、USB 3.1 の本来の速度は、5.0 Gb/s が最大値です。 つまり、そのUSBは全然現在の速度に追いついていなかったんですよ。 まぁ、そもそもそんな高速なUSBもないですが...。 なので、もう一つ可能性を考えました。 それは、PCの性能に関しての事です。 僕はPCについて全然詳しくないし、ノーパソを使っているので、それが原因だったかもしれないという事です。 まぁ、いろいろ考察しましたが、またしても失敗したということです。 まぁ、実際の所はそこまで遅くはないですが。 結論 まぁ、二回、というよりも、二つのUSBにLinuxを入れてみて、結果いろいろ分かりました。 一つは、Linuxを入れる時は、近くの店とかで片づけるのは良くないという事です。 そして、もう一つは、PCにそのままブートさせたほうがいいという事です。 やはり、I/Oポートだけでは限界があると思ったので、新規のパソコンに入れる事がいいと思いました。 いい感じに仕上がったところで、終了しようと思います。 以上、Linuxを二つのUSBに入れて分かったことでした。

【ソフト制作】麻雀点数計算ソフト page.1

現代人の麻雀の点数計算 ネット麻雀など、点数計算を覚えないでもいい環境で麻雀をやっている方は、多いのではないでしょうか。 自分は、最近は忙しくて麻雀はしていなかったですが、以前やっていた時はネット麻雀をやってたので、点数計算はあまり覚えてないです。 まぁ、ずっとネット環境でやるだけならいいのですが、もし友達と現実生活で麻雀をやるなどなったとき、点数計算が出来ないと少し恥ずかしいですよね。 それどころか、もし全員が点数計算できないと、いろいろとグダグダしたり、ミスをしたりなどとしたら大変ですよね。 そこで、点数を計算するソフトがあったら楽ですよね! そんなわけで、点数計算ソフトを作成しようと思いました。時間を見つけて制作していきたいと思っています。 点数計算ソフトの概要 それでは、現在計画をしている点数計算ソフトの概要は、以下の通りです。 ー WindowsApp版 WebApp版 動作OS OS-Windows Webブラウザーを入れられるOS(スマホ可) 動作可能環境予想 Windows8.1 以上 動きが鈍くないOS 使用言語 C++ HTML/CSS, PHP or Javascript 値段 無料 無料 このアプリケーションの名前はまだ決まっていません。 予定制作期間は、WindowsApp版, WebApp版、それぞれ2か月~半年程度です。 予定制作費用は、0円です。 WindowsApp版の開発環境はVC++です。ビルドもVC++のビルド機能を使用します。 制作人数は一人です。 それでは、これから頑張っていきたいと思います。

【ソフト制作】MSC(麻雀点数計算ソフト) page.2

現状どうなっているか 現在は、インプットを作成しています。 百聞は一見に如かずという事で、取り敢えず映像を載せます。 現在作ったのは、手牌の入力部分と、リーチ・ダブリーの選択部分を作成しました。 入力部分は、定義済みのコントロールを使用していますが、 リーチ・ダブリーの選択部分や?マークは、ボタンのコントロールを使わず、普通にマウス入力を捕らえて動かしています。 なぜボタン類を使わなかったかというと、画像をボタンに張り付けるのが面倒でしたし、自作のほうが自由に管理できるからです。 細かいコードに関しては、Twitterのダイレクトメッセージなどで質問してください。 今後の方針 とりあえずは、インプット部分の表示方法と牌の羅列からの雀頭、面子の判断方法を思考中です。 表示方法は、思うままに作れそうです。 雀頭、面子の判断方法ですが、正直言うとめちゃくちゃ難しいです。 まず、入力された手牌は、全て数の配列に変換して、それを並べ替える事で、判定しやすくします。 現在考えているフローチャートは未完成ですが、一応以下のようになってます。 雀頭・面子の判定はとても難しくて、例えば、「34555」という形から雀頭を発見するのは、人間の頭では簡単ですが、システムに読ませるのはとても難しいです。 このようなパターンを保存すればプログラムは簡単になるのですが、判定が遅くなるので、しっかりと基礎的なやり方をしようと思ってます。 また、人間の手で、分かりにくい手を全て発見するのは相当難しいですので、そういう面を考慮しても、正攻法でやるほうがいいです。 現在はこんな感じですね。とりあえずこれで終了しておきます。 以上、ソフト制作についての話でした。

【ソフト制作】MSC(麻雀点数計算ソフト) page.3

現状どうなっているか 百聞は一見に如かず、という事で、まずはこれを見てください。 こんな感じです。 入力部のデザインは出来るだけ統一してみました。 また、説明書などを見ずに簡単に操作できるようなソフトになる事を目指して作っているので、結構大きめな画像を用いています。 画像がぼやけないように、画像は原寸大のまま使用しています。 ちなみに、画像は全てビットマップ(.bmp)です。 どなたか、C/C++ のWinAPIでPNGファイルを表示する方法は知らないでしょうか? 知っていたら教えて頂きたいです。 簡易的なデザインになっているのは、配慮ではなく、僕のデザインセンスがないだけです。 何かアドバイスがあれば教えてくださると嬉しいです。 今後の方針 さて、今後の方針ですが、結構決まってきました。 特殊アガリはすぐに判断できるので、通常アガリだけに着目した点数計算方法について書きます。 (a-1) 手牌情報を保存するための構造体のポインター(pT1, pT2)を作成 (a-2) ここからループ開始 |(b-1) pT1 に new 演算子を使い、配列の要素数を +1 する。 |(b-2) 雀頭となりうる牌(2つ以上ある牌)を探し、それを雀頭として計算を開始する。 |(b-3) ここからループ開始 ||(c-1) pT2 に new 演算子を使い、配列の要素数を +1 する。 ||(c-2) pT2 の要素の中にすでに存在しているパターンをさけて面子を作成 ||(c-3) すべてのパターンが無くなったら、ループ終了 |(b-4) pT2 の中から最大の点数を pT1[(pT1の要素数) - 1] に代入 |(b-5) pT2 のメモリーを開放して、これ以上、雀頭となりうる牌がない場合、ループ終了 (a-3) pT1 の中で最大の点数となるものを最終的な計算結果とする。 という感じです。 プログラムで見ると、結構分かりやすいかもしれません。 TEHAI *pT1, *pT2; //TEHAIは手牌の構造体とする for (int i = 0;; i++) { pT1 = new TEHAI[1]; if (/*これ以上雀頭が存在しないければ*/) break; else //新たな雀頭を指定 for (int j = 0;; j++) { pT2 = new TEHAI[1]; /* pT2 にデータを代入 */ if (/*これ以上面子のパターンがない場合*/) break; } pT1[i] = pT2の最大の点数の要素; delete [] pT2; } という感じです。 ちなみに、青文字になっている、pT2 の要素の中にすでに存在しているパターンをさけて面子を作成、についてですが、 これはまだ方法が見つかっていません。 面子の組み合わせを考えるというのは、結構難関で、中々思いつかないので、まだ保留中です。 以上、麻雀点数計算ソフトの報告でした。

【ソフト制作】MSC(麻雀点数計算ソフト) page.4

MSCの完成度 今回は、MSCが一定の場所まで完成したので、それを報告します。 現在、MSCは、役満の判定まで完成しています。 今回までに進んだもの 今回は、役満の判定に加えて、バグの改善が行われました。 進んだものは、以下のものです。 役満の判定 ・国士無双 判定方法:幺九牌が一枚ずつ(アガリ牌を含む) + もう一枚幺九牌 ・国士無双十三面待ち 判定方法:幺九牌が一枚ずつ + もう一枚幺九牌(アガリ牌) ・四暗刻 判定方法:ツモ + 暗槓・暗刻が4つ(アガリ牌を含む) + 頭 ・四暗刻単騎待ち 判定方法:暗槓・暗刻が4つ + 頭(アガリ牌を含む) ・大三元 判定方法:すべての三元牌の刻子 ・緑一色 判定方法:緑一色に不必要な牌が無い ・字一色 判定方法:字牌以外が無い ・小四喜 判定方法:風牌の刻子が3つ + 風牌の頭 ・大四喜 判定方法:風牌の刻子が4つ ・清老頭 判定方法:1, 9牌以外が無い ・四槓子 判定方法:槓子が4つ ・九連宝燈 判定方法:同色の1112345678999(アガリ牌を含む) + 同色牌もう一枚 ・純正九連宝燈 判定方法:同色の1112345678999 + 同色牌もう一枚(アガリ牌) バグに関して ・forループにおける、i, j の書き間違いによる配列のアクセス違反を修正 ・鳴き牌判定時の、鳴き面子判定中のループを終了するための条件分岐のミスを修正 ・鳴き面子の個数をベースとしたループのループ回数を修正 ・文字列を牌番号に変換する関数を多少修正 最後に だいぶ進みました。 これからは、面前牌の役、面子や頭の振り分けを行っていきます。

【プログラミング】プログラミングの魅力を伝えたい!

プロローグ 僕はいろいろな人にプログラミングをやってみないか進めているのですが、一向にだれもやろうとしません。 という事で、今回はプログラミングの魅力について話していこうと思います。 あくまで独学をしているものが語っていることなので、過信しないでください。プログラミングをやっている方も、独学をしている人の考えかたを見ていってください。 プログラミングは何をするのか プログラミングをとっても完結に言うと、文字でコンピューターへの命令文を書くこと、です。 少し深めて言うと、命令文を機械さんに理解してもらうように翻訳して完了です。 機械語を理解できる人間もいますが、それはプログラミングの基でありながら、習得はするのは他の上位互換に当たるものです。 話はそれましたが、要は、コンピューターに命令を出して、自分の思い通りの動きをさせるものです。 ソフトウェアを作ったり、ウェブサイトを作ったりすること、とも言えます。 コンピューター上で自由なものを作る、ものづくりという訳です。 プログラミングは自由に作れる・需要がある まぁものづくりといっても、何を作るのかとかよく分からない。 とか言いながら新しいゲームを探している方も中にはいるのではないでしょうか。 プログラミングはソフトウェアを作られるという事を話しましたが、全くその通りで、 存在していない物は、作る事が出来るのです。 自分で新しい何かが欲しくなった時、自分で自由に作成する事ができるのが、プログラミングです。 そしてさらに、コンピューターを自由に動かせられる技術、それは現在最も求められる技術といっても過言ではないでしょう。 現在は、AIなどが発達して、コンピューターに支配されるようになってきました。 完全にAIに支配されるようになったら、どういう人材が必要になるか、と言ったら、そのAIを支配できる人間しかいないのでは無いでしょうか。 そんな今こそ、プログラミングを始めるべきだと思います。 まぁ個人的には、そんな理由ではなく、楽しいからという理由で初めてほしいですけどね 最後に 最後に、と言ってもたいそうな事は書きませんが、プログラミングや他のものに興味を持つ持たないではなく、目標を決める努力をするべきだと思います。 そんなつまらない人生で終わっていくのはとても悲しいので、趣味が無い方は、何か見つけるべきではないでしょうか。 以上、プログラミングの魅力を伝えたい人の話でした。

【プログラミング】独学プログラマーが思う使うべきテクニック

独学プログラマーの難しさ 僕は自称進学校の学生なので、プログラミングの習い事は、宿題が多くてできません。 自称進学校は宿題が多いので。 プログラミングを独学すると、何が困るというと、一般的に使われているテクニックなどが分からないわけなのです。 ネットで調べれば多少は出てきますが、何かこう、自分の作りたいプログラムにあってない物が多いです。 でも、自分で考える事は出来るので、その考えたものを紹介しようと思います。 僕の使っているテクニック 僕の考えるものは、結構一般的なものだと思います。 1:使いたいシステムを独自のAPIとして保存しておく これは、とても重要な事だと思います。 例えば、僕が作っている麻雀点数計算ソフトでは、クリックによって画像を切り替えるAPIを作成して、使っています。 C/C++ なら、ヘッダーファイルとして保存したり、Javaなら、クラスファイルとして保存しておくなどするといいと思います。 また、コメントアウトなどで、使い方などをしっかりメモしておくといいと思います。 2:とりあえず自分の知識でプログラムを書いてみる これをしないと、これからのプログラミングが上達しないと思います。 例えば、僕の作っている麻雀点数計算ソフトでは、ボタンにビットマップを張り付ける方法が分からなかったので、自分でマウスの制御をしました。 また、小難しくマイナーなプログラムは、調べても出てこなかったり、人に聞いても思うような回答がもらえない事が多いです。 相手と自分にプログラミングの能力の差があるわけですから、思うような回答がもらえない事が来るのは当たり前です。 知恵袋などで聞いても、自分の知らない知識が必要になる事があったりします。 なので、こういうのは、自分で作成したほうがいいと思います。 また、独自のAPIを作ることは、楽しいと思います。 3:他人のプログラムを見てみる 独学していると特に思う事なのですが、ネットに書いてあるプログラムの書き方が、自分と違ったりするんですよね。 他人のプログラムは、結構速度なども気にしてあったりします。 僕が使用する言語(C/C++)は、もうあまり発展していかないのでじっくりやれますが、最先端の言語などでは、とても気を付けるべきだと思います。 テクニックも自分で見つけよう まずは自分で使えるテクニックを見つけてみましょう。 それも、プログラミングのスキルと言えると思います。 以上、独学プログラマーの使うテクニックでした。

プログラミングにハマったきっかけ

僕がプログラミングにハマったきっかけ 僕は、結構マイナーで絶対的に強いものに憧れてました。 まぁ、現在も憧れてたりしますが。 そんな僕は、ウイルスというものを知ったら興奮が止まりませんでした。 絶対的に強い悪だったからです。 作ってみたいとも思いました。 そこでプログラミングを知りました。 というよりも、作る方法を知るために調べた結果プログラミングを知ったという感じです。 そんな些細な事によってプログラミングという趣味を見つけたのです。 プログラミングというものをしっかりと学び始めたのは、結構後でした。 プログラミングをし始めたのは、更に少しあとからです。 その後、結構ハマって趣味となりました。 最後に 今回はネタが無かったので、下手でした。 まぁ、些細な事が趣味まで発展した話でした。

最近人気な記事


【プログラミング】C/C++ のメリットデメリット

【ぐろこーんの大学受験論】長文・文章問題を解くには、語彙力(単語力)が必要

【ぐろこーんの大学受験論】現代文は部分ごとに考えて正解を導くらしい

【数学】オイラー積について軽く触れてみる

【数学】ラグランジュの補間を求める[長記事]

総括管理人のおすすめ


【数学】ラグランジュの補間を求める[長記事]

【数学】グラフの長さを求める公式を求めてみた PART 1

【数学】グラフの長さを求める公式を求めてみた PART 2

【数学】[分からない人向け]直線を表すベクトル、p = sa + tb (s + t = 1) って結局どういうイメージなのか

【数学】[分からない人向け]ベクトルの一次独立のイメージの仕方