
 これは習慣になりつつあるようです-6か月ごとに、私は自分の技術の一部をオープンソースに投稿しています。 
      
        
        
        
      
    
      
        
        
        
      
     今回は、裁判所にテトリスのクローンを公開し、一般の人々の喜びを伝えます。  
六角形 。 
      
        
        
        
      
    
      
        
        
        
      
     ゲームのアイデアは、誰もが知っていると思います。 私は彼女においしい実装を与えようとしました。 これは: 
      
        
        
        
      
    
      
        
        
        
      
    -  数字の予測可能な動作。 物理学のようなもの。 たとえば、フィギュアを回転させたい場合、壁がそれに干渉すると、フィギュアが移動します。 もちろん、合理的な制限内です。 
 -  スキン 
 -  調整可能なフィールドサイズ。 
 -  私はちょうどこのビジネスに素敵な外観を与えようとしました。 
 
      
        
        
        
      
    
      
        
        
        
      
     このケースはQtで記述されており、他の依存関係はありません。 どこにでも集まってください。  Windows、Linux、FreeBSDでテストしました。  4.4.1(最も古いものは手元にありませんでした)から最新の4.7.0までのQt。 
      
        
        
        
      
    
      
        
        
        
      
     私はこれまで、すべてをgooglecodeで入手しました。  
Windows用の静的アセンブリもありますが、これは
動作するために何も必要としません(Windowsを除く-))。 
      
        
        
        
      
    
      
        
        
        
      
      UNIXに似たシステムでのアセンブリおよびインストール手順は標準です。 
      
        
        
        
      
    
      
        
        
        
      
     開発パートでQtが必要になります。 そして、プロジェクトサイトからソースを取得し、収集します。 
      
        
        
        
      
    
      
        
        
        
      
     一部のシステムでは、qmakeはqmake-qt4と呼ばれる場合があり、makeの代わりにgmake、nmake、mingw32-make、またはそのような何かを記述する必要があります。 
      
        
        
        
      
    
      
        
        
        
      
     最後の手順(インストール)はオプションで、インストールせずにアプリケーションを実行できます。 削除(アンインストール)することもできます。 
      
        
        
        
      
    
      
        
        
        
      
     実際、このことを試したいだけの人は始めることができます:-)さらなる情報は、何かを改善したい人のためのものです。 
      
        
        
        
      
    
      
        
        
        
      
    
      
        
        
        
      
     コミュニティに期待すること 
      
        
        
        
      
      (i)異なるディストリビューション用のパッケージの準備 
      
        
        
        
      
     私のすべてのオープンソースの経験は、さまざまなディストリビューションのパッケージだけをサポートすることはできないことを示しています。 また、ArchLinuxとAltLinuxの非常にイニシアチブの人々がハブにたむろしていることは確かに知っています。おそらく他のディストリビューションの代表者がいるでしょう。  
AURに
バッグを投稿しましたが、誰かがそれをサポートすることを約束したら、感謝の気持ちで伝えます。 
      
        
        
        
      
    
      
        
        
        
      
     誰かがパッケージをビルドする場合、3つの要求があります。 
      
        
        
        
      
    
      
        
        
        
      
    -  あなたが私をあなたに最新の状態に保ちたいなら、私に電子メールを送ってください。 さらに、プロジェクトのWebサイトにパッケージへのリンクを配置すると便利です。 
 -  ここで登録解除します。 今、人々はdeb、rpmを求め始めるだろうから... 
 -  困難を報告してください。 
 
 まあ、どうもありがとう!  :-) 
      
        
        
        
      
    
      
        
        
        
      
      (ii)デザイン、スキン、機能、タイプミスに関する提案... 
      
        
        
        
      
     受け入れられ、歓迎されます! 簡単なことは迅速に行われ、複雑なことは将来的に考慮されます。 コメントやメールを書いてください。 
      
        
        
        
      
    
      
        
        
        
      
      (iii)ローカリゼーション 
      
        
        
        
      
     誰かが特定の言語を話し、ローカライズを行いたい場合-私は常に賛成です。 書いて!  Qtとそのローカライズの手段について何も理解していない場合は、問題ではありません。 書く; ローカライズは簡単です。 プロジェクト参加者は誰も忘れられません! 
      
        
        
        
      
    
      
        
        
        
      
    
      
        
        
        
      
     推奨しないこと 
      
        
        
        
      
     私はあなたのコードを喜んで受け入れると約束しません。 マイナーなバグを見つけて修正する場合-お願いします。 しかし、すべてを編集したい場合は、プロジェクトへの変更を受け入れることに同意しない可能性があります。 再設計したいという要望は、いくつかの理由で発生する可能性があります。 
      
        
        
        
      
    
      
        
        
        
      
    -  クラス分割は誰かには小さすぎるように見えるかもしれませんが、 
 -  一部のノードは十分に最適ではないように見える場合があります(たとえば、ガラスを描く) 
 -  一部の要素は、学問的に十分に達成されていないように見える場合があります(たとえば、すべての管理クラスなど)。 
 
 このような反論があります。 
      
        
        
        
      
    
      
        
        
        
      
     このプロジェクトを15分のスニペットで行っていたため、 
細かい粉砕が発生しました。 このモードでコードの大部分を維持することは、単に不可能です。 近い将来、仕事のスタイルを変えることはないでしょう。 したがって、細かく分散されたデザインは便利で魅力的です。 
      
        
        
        
      
    
      
        
        
        
      
      最適性ではありません。 時々(IMHO)、わずかな非最適性が犠牲になったとしても、単純さを維持する方が便利です。 
      
        
        
        
      
    
      
        
        
        
      
      アカデミックではありません。 私は、ステートマシンがそれを求めているところ、ステートパターンと信号放出の集中化、メンターが求めているところ、非定数のイテレーターとプロパティへの直接アクセスが抗議を引き起こす可能性があることを理解しています(プログラム全体では2つだけですが、はい、私は悔い改めます)...コードは教科書が必要とするように常に見えるとは限らないことに同意します。 しかし、厳密なスキームの実装に急いで行きたくありません。 普通のユーザーが最初にウィッシュリストを表現できるようにします。 このすべてをどの方向に開発するかを明確にし、それでもオーソドックスコーディングを採用できます。 
      
        
        
        
      
    
      
        
        
        
      
    
      
        
        
        
      
     まだ読んでいますか? 
      
        
        
        
      
     これ以上言うことはありませんが、おそらく次のリンクで読書とテトリスの渇望を満たせるでしょう。 
      
        
        
        
      
    
      
        
        
        
      
     すべて成功! フィードバックをありがとう、脳の世話をしてください:-) 
      
        
        
        
      
    
      
        
        
        
      
      upd: cypokは、Mac OS Xの下に忍び寄るバグを見つけました。このOSのユーザーであれば、その
推奨事項に従う必要があります。 
      
        
        
        
      
    
      
        
        
        
      
     この問題は別の方法で修正できます。「:/icon.xmp」を「:/about_icon.xmp」に置き換えます。 
      
        
        
        
      
    
      
        
        
        
      
      upd2: Mezomish は Ubunta のPPAを作成しました 。 彼に感謝します! 
      
        
        
        
      
    
      
        
        
        
      
      upd3:12:20: 23 MSD-Windowsビルドの1000ダウンロードのみ、プロジェクトサイトからのみ!  Habr-パワー!  :-)