不思議ちゃん

不思議ちゃん

みんクロ大好きな不思議ちゃんの日記
みんクロ無くなっちゃって悲しい

でこれが処理プログラム

パソコン/インターネット

プログラムは、日本語プログラミング言語「ナデシコ」で書きました。
http://nadesi.com/

以下がプログラムです(^o^)

# 間に合わせ処理プログラム 2010/03/10
# 左側枠に、規定の書式のデータをコピペする。
# 処理して結果に表示する。
# 結果はクリップボードに自動的にコピーされている。
# 書式のエラーは無視。どんな間違った結果が出ても知らないよ~。
# 書式は、1行目盤情報 マス数 制限時間 。半角コンマで区切る。制限時間は6桁の半角数字を連ねる
# 2行目から1位以下のなまえとスコア、半角コンマで区切る。
# 1ゲーム分終わったら改行だけの行で区切る。

母艦は「みんクロデータ処理簡易版」
母艦の高さは500。
母艦の幅は700。
元情報メモとはメモ。
元情報メモの高さは400。
元情報メモの幅は300
結果情報メモとはメモ。
結果情報メモの高さは400。
結果情報メモの幅は300。
結果情報メモの位置は元情報メモの右側。
処理開始ボタンとはボタン。
処理開始ボタンの位置は元情報メモの下側。
処理開始ボタンのクリックした時は~
 元情報メモを加工処理。
 結果情報メモは結果
 クリップボードは結果情報メモ


●加工処理({=?}Sを)
 処理対象はS。
 結果は「」
 盤番号は0。
 盤情報読込フラグ=真
 登録人数=0
 処理対象を反復。
  # 「反復」を使うことによって、最後まで行けば自動的にループを抜ける。
  処理行はそれ
# ゲーム先頭頭出し処理
  もし盤情報読込フラグ=真ならば
   もし処理行が「」ならば
    続ける
# 最初の空でない行から
   盤番号に1を直接足す
   盤情報は処理行を「,」で区切ったもの
   結果は結果&「({盤番号}){盤情報【0】}マス 時間」
   結果は結果&(盤情報【1】の1から2文字抜き出す)&「:」
   結果は結果&(盤情報【1】の3から2文字抜き出す)&「:」
   結果は結果&(盤情報【1】の5から2文字抜き出す)&改行
# 以上で盤情報出力終り
   盤情報読込フラグ=偽
   対戦情報配列【0】=0 # 対戦者数のリセット
   続ける


  もし盤情報読込フラグ=偽ならば
   もし処理行が「」ならば
   # ゲームデータの終りだから
    ゲーム毎処理
    盤情報読込フラグ=真
    結果は結果&改行
    続ける
  #ゲームの処理中
   対戦情報は処理行を「,」で区切ったもの
   対戦者名は対戦情報【0】
   対戦者登録番号は対戦者名の登録番号
   対戦情報配列【0】に1を直接足す
   対戦者数は対戦情報配列【0】
   対戦情報配列【対戦者数】=対戦者登録番号
   結果は結果&「  {対戦者数}位{対戦者名}さん、スコア:{対戦情報【1】}{改行}」
  続ける #念のため
 もし盤情報読込フラグ=偽ならば
  結果は結果&改行
  ゲーム毎処理
 Iで1から登録人数まで繰り返す。
  結果は結果&「{登録者【I】}さんの個人成績」&改行
  Jで1から登録人数まで繰り返す。
   相手は登録者【J】
   もしI<>Jならば
    もし対戦成績【I,J】が「」ならば
     対戦成績【I,J】は0
    勝数は対戦成績【I,J】
    もし対戦成績【J,I】が「」ならば
     対戦成績【J,I】は0
    負数は対戦成績【J,I】
    結果は結果&「 対{相手}さん:」
   
    結果は結果&「{勝数}勝{負数}敗」&改行
  結果は結果&改行


# 対戦者名の登録処理
#
# 氏名@なまえには登録番号が入っている
# 登録人数には、登録人数が入っている。
# この関数は対戦者名をもらって
# 登録番号を返す。
# 登録されていないならば登録してから返す。
# 逆引き用の登録者【】は番号→氏名の配列
●登録番号(Sの)
 もし氏名@Sが「」ならば
  登録人数に1を直接足す。
  氏名@Sは登録人数
  登録者【登録人数】=S
 それは氏名@S


# ゲームの人数分の記録を読取終わったときに呼ぶ。
# ゲームの人数分の記録を読取ながら、
# 対戦者情報配列(i)には
# i=0 対戦者数
# i=1 1位の人の番号(登録番号)
# i=2 2位の人の番号(登録番号)
# i=3 3位の人の番号(登録番号)もしいれば
# i=4 4位の人の番号(登録番号)もしいれば
# と処理しておいて、これを呼ぶと対戦成績(i,j)に
# 登録者番号i番の人が登録番号j番の人に勝った回数が入る。
●ゲーム毎処理
 対戦者数は対戦情報配列【0】
 Iで1から対戦者数まで繰り返す
  Jで1から対戦者数まで繰り返す
   もしI<Jならば
    対戦成績【対戦情報配列【I】,対戦情報配列【J】】に1を直接足す

  • 不思議ちゃん

    不思議ちゃん

    2010/03/12 20:09:01

    れむさん、こんばんは(^o^)ノ コメントありがと~ございます♫
     配列とか変数とか何に使っているのかコメントしていないので、一見日本語で読めそうで意味は分んないですよね~~(^_^;)
     長いけれど、大したことはやってません。というか大したことはやってないのにどうしてもこんな感じに長くなっちゃうので、プログラミングってメンドーです(^_^;)

    織姫さん、こんばんは(^o^)ノ コメントありがと~ございます♫
     欲しい結果を得るためにもう少しがんばります(^o^)

    Pochiさん、こんばんは(^o^)ノ コメントありがと~ございます♫
     完成したら、公開しようと思います、というか、これがプログラムなのであとはなでしこ本体をダウンロードすれば動きます❤
     完成品になったらぜひお試しください。

  • 不思議ちゃん

    不思議ちゃん

    2010/03/11 00:43:11

    バージョンアップしたらあっさり2000字を越えてしまったので、ココログの方に今後の分をのせます。
    Ver0.02ではスコアの平均値を付け加えました。
    http://nicotto-fushigichan.cocolog-nifty.com/blog/2010/03/v002-029f.html

  • Pochi

    Pochi

    2010/03/10 22:18:14

    何のことやらさっぱりわかりません
    でも便利そうなツールですね
    僕も欲しいな~

  • 織姫

    織姫

    2010/03/10 18:53:07

    なんだこれは・・・( *ω* `)ゝ
    このプログラムで結果が出ているのですね!
    すごーい!!

  • れむ

    れむ

    2010/03/10 17:02:23

    なんか凄そうなことやってるな~、と思って読んでみたらさっぱりわからなかったorz
    不思議ちゃんすげー。

  • 不思議ちゃん

    不思議ちゃん

    2010/03/10 14:16:18

    改造可能な方は改造して機能強化版を作ってくださ~い(^o^)ノ