したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

おちゃめくらぶ掲示板

1493御茶目菜子:2013/03/03(日) 23:54:42
第2回 プチコンコンテスト開催
本日より第2回 非公式プチコンコンテストが開催されたにょ。
http://wiki.hosiken.jp/ptcmcon/
半年前に開催された前回は公式のコンテストであるプチコン大喜利と時期が重なったと
いうこともありその影響もあったけど今回は問題ないにょ。
もっとも、大喜利に参加者を奪われるという面もあるけど大喜利はハードルが高そう
だから非公式のコンテストに参加するという動きが小中学生には多く見られたため相乗効果で
逆に増えたという可能性もあるため大喜利が同時期に開催された影響というのはプラスか
マイナスかは判断が難しいところにょ。

私もこのコンテストに新作1画面プログラム「PETIT DRUM + BASS」で参加してみたにょ。
http://wiki.hosiken.jp/ptcmcon/?Toukou%2FPETIT%20DRUM%2BBASS
おちゃめくらぶの方でも同時に公開したにょ。
http://ww5.tiki.ne.jp/~ochame/petitcom/2page.htm#drum_bass
http://www.youtube.com/watch?v=JgzexRXqsQE
その名の通り、ドラムとベースを演奏できるプログラムにょ。
1月に作った1画面プログラム「PETIT GUITAR」と同じく弦1本ごとに独立制御しているため
同時に音を鳴らすことも可能になっているにょ。
当然ながらドラムの方も同時ボタン入力で音を同時に鳴らせるにょ。
この辺は特に難しいこともなくドラムだけだと7行で済んだためベースと合わせても1画面に
十分に収めることができたにょ。

実をいうとこのプログラムはPETIT GUITARを作って1週間後(1月下旬)にはほぼ完成して
いたにょ。
今頃になって公開するというのはやはりプチコンコンテストに投稿するためにょ。
私の場合は1画面プログラムは数時間〜20時間くらいかかっている(開発速度を優先して
コーディングしたら20〜30分程度)のだけど直前になって作り始めてもネタがなかったら
できないからね。
というわけで、直前にネタが思い浮かばなかったことを考えて1月はすでにPETIT GUITARを
公開しており1ヶ月1本のノルマは果たしているためコンテスト用に公開を保留しておいた
わけにょ。

ただし、あくまでこれはいざというときのためのものであり本来ならば別のものを投稿
したかったにょ。
プログラム自体は前回のコンテストで投稿したPETIT RUN mkIIの方が上だし・・・。
まぁコンテストの締め切りは3月9日まであるためまだこれから作っても何とかなりそうな
気もしないでもないけど突貫工事で作っても完成度を高めるのは難しそうにょ。
ネタとしては1画面ではないけどGRPの2軸回転を使ったレースゲームとかを考えたにょ。
ただし、そのままレースゲームとして作るのは簡単だけど面白くするには何かもう一工夫
欲しいところにょ。
ライバル車を出さなければfpsは稼げるため速度重視で高速化してみるというのも1つの
方法としてはありかもしれないけどね。
現在はサンプルの段階で19fpsだけど汎用性を極限まで落として20fpsまでもっていくことが
できればいいかもしれないにょ。
恐らく2軸回転で2分の1画面の表示(32x12)でこの速度を出せている人は居ないと思うにょ。
というか、まともな2軸回転プログラムは私が作ったもの以外に見たことがないにょ。
Z軸回転+プレイヤー視点というものならばいくつか見たことがあるけどね。(プレイヤーを
見下ろす視点とは異なり、プレイヤーから見たならば簡単な一次式で表せるため難易度は
かなり下がる)
その速度面で有利なプレイヤー視点のものよりも私が作った2軸回転の方が速いくらいにょ。


コンテストとは関係ないけど素数計算プログラムも作ってみたにょ。

INPUT M?"2,";:FOR I=2TO M:FOR J=2TO SQR(I)+1J=J+(J>2)+!(I%J)*999NEXT:?(STR$(I)+",")*(J<999);:NEXT
http://ww5.tiki.ne.jp/~ochame/petitcom/1line.htm#21

素数計算自体は簡単なんだけど1行でどこまで高速化できるかにチャレンジしてみたにょ。
素数は1とその数以外では割り切れない自然数なのだけどそれを単純に作ればNが素数か
どうかを調べるためにはN-1回のループが必要になるにょ。
しかし、実際はそうではなく√Nまで調べればいいにょ。
このプログラムでは√N+1になっているのだけどこれはリスト短縮の都合上にょ。
FOR〜NEXTのループを使用しているけど初期値が2であり、終了値が√Nならば3以下の素数を
計算する場合に開始値よりも終了値の方が小さくなるためループ内を実行せず終了してしまう
ためそれを防ぐために1回分余分にループを回しているということにょ。(3以下の素数は
求めないならば+1する必要はない)

あと、高速化のためには1ずつ√Nまで増やすのも避けたいところにょ。
実際偶数で素数なのは2だけなので2以上のものは奇数のみ計算すればいいにょ。
つまり、2、3、5、7、・・・・√Nという感じで順番に割って割り切れるかを確かめていけば
いいというわけにょ。
ただし、これはIF文を使わずとも論理式で簡単に判断できるため何とか1画面に収まったにょ。
このプログラムは現時点で97文字でありあと2文字しか余裕がないためここからさらに高速化の
処理を導入するのは無理ではないかと思うにょ。
つまり、これが1行ではほぼ最速というわけにょ。
ちなみに1000以下の素数をすべて表示するのにかかる時間は28フレーム、10000以下の素数だと
430フレームだったにょ。
何の工夫もしていない場合には10000以下で25000フレームくらいかかったので約60倍の速度に
なっているにょ。


ところで、先日teacupのサーバトラブルがあり、その際にこのおちゃめくらぶ掲示板のログの
約3分の2が消えてしまったにょ。
現時点でもまだ復旧できてないところを見ると復旧できる見込みはかなり小さいのでは
ないかと思われるにょ。
teacupのログが無制限になってからはバックアップ(というか、単にテキストをコピペ
貼り付けしただけのものだけど)を取ってなかったにょ。
もっとも、投稿前のテキストファイルならば残っているけど私の場合は投降後に校正や細かい
修正をたくさんしているため手元のテキストファイルと実際の投稿内容はかなり異なるものに
なっているにょ。

まぁ、ネット上にあれば安心と思ってバックアップを取ってなかった私の責任だけどネット
上のサービスというのが安心ではないかというのは良く分かったにょ。(まぁバックアップを
とっておいてもブログやWebサイトとは異なり元の状態に復旧するのは不可能だけど)
これはteacupだけではなく他のWebサービス、クラウドサービスにおいても当てはまるのでは
ないかと思われるにょ。
ネット上のデータだからいざというときに安心ということは「絶対にない」といえるにょ。
実際、過去にはソフトバンクの子会社であるファーストサーバがデータをすべて消失させて
しまい復旧が不可能になったことがあるからね。
http://cloud.watch.impress.co.jp/docs/news/20120622_541897.html

スマホが普及し、クラウドだけで何でもできるようになるという時代になりつつあるけど
そのサービスの低価格化によって質の低下の懸念されるにょ。
サーバを扱うのは人間なのでその人間がミスをすればファーストサーバのような大惨事は
どこであっても考えられるにょ。(本来ならばバックアップも消去するなんて考えられない
けどそれはゼロではない)
したがって、基本的にはユーザー自身がバックアップを取り、そしてさらにクラウドでバック
アップというのが安心してクラウドサービスを利用できる使い方になると思われるにょ。




掲示板管理者へ連絡 無料レンタル掲示板