atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
prepress-tips
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
prepress-tips
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
prepress-tips
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • prepress-tips
  • codeLayouter の記述メモ2

prepress-tips

codeLayouter の記述メモ2

最終更新:2010年10月10日 11:15

prepress-tips

- view
管理者のみ編集可
最終更新日時: 2010/10/10   
 
  • 改めて codeLayouter 再検討
  • 改めて codeLayouter 再検討
Edit

改めて codeLayouter 再検討

  • アノテーション と コード の記述の方針
    • アノテーション で プログラムの構造 を記述する。
      • オブジェクト指向風 に記述する。
      • アノテーション は アノテーションの世界で 閉じる。
    • アノテーション に シンボル と コード を対応させて
      全体をプログラムに変換する。
      • シンボル は 省略してもよい。
    • コード は コーディング知識 的に記述する。
      • コード は どの場所で記述してもよい。

wgc_pl_index.txt
/name solve wgc problem / wgc_pl.pl

* 処理 /
    / debug - get option
    / message - start
    / state - init ; history - new ; answer - new ; goalseeker - seek
    / answer - message

* 変数 /
    ? debug //
    ? state //
    ? history //
    ? answer //

* 関数 /
    ? goalseeker //
        / state - unique
        / if( history - is twice ) { message - twice ; return }
        / if( state - is goal ) { todo - goal ; message - goal ; return }
        / if( state - is no good ) { message - no good ; return }
        ? possible //
            / possible - at state
        / for( possible ) {
        /    history - forward ; possible - take one
        /    history - message ; possible - message ; state - message
        /?    message - pause
        /    goalseeker - seek
        /    history - backward
        / }

/name solve wgc problem
    use strict ;
    / 変数
    / 関数
    / 処理

/name 未指定
/use wgc_pl_detail.txt

wgc_pl_detail.txt 前半
/? ----------------------------------------------------------
/?- debug , option

* debug // my $debug

* debug - get option /
    ? option //
    / debug = ( option =~ option - debug ) ;

* option // my $option
    $option = @ARGV ? $ARGV[0] : '' ;

* option - debug /
    m,d,i

/? ----------------------------------------------------------
/?- message

* message - start /
    print '狼・山羊・キャベツの川渡し問題 を解く' . "\x0a" ;
    / if( debug ) { print '途中経過は' . "\x0a" }

* message - twice /
    / if( debug ) { print '--- twice' . "\x0a" }

* message - goal /
    / if( debug ) { print '====== goal ======' . "\x0a" }

* message - no good /
    / if( debug ) { print '--- no good' . "\x0a" }

* message - pause /
    / if( debug ) { `pause` }

/? ----------------------------------------------------------
/?- answer

* answer // my @answer

* answer - new /
    @answer = () ;

* answer - message /
    print '解は' . "\x0a" ;
    for( @answer ) { print $_."\x0a" }

/? ----------------------------------------------------------
/?- goalseeker

* goalseeker // GoalSeek( )

* goalseeker - seek /
    / goalseeker ;

/? ----------------------------------------------------------
/?- history

* history // my %history ; my @history

* history - new /
    %history = () ; @history = () ;

* history - is twice /
    / $history{ state }

* todo - goal /
    / push answer , join ' → ' , history , state ;

* history - forward /
    / push history , state ; $history{ state } = 1 ;

* history - message /
    / if( debug ) { print 'history ' , ( join ' → ' , history ) , "\x0a" }

* history - backward /
    / state = pop history ; delete $history{ state } ;


wgc_pl_detail.txt 後半
/? ----------------------------------------------------------
/?- state

* state // my $state

* state - init /
    / state = 'fwgc' ;

* state - unique /
    / change - unique

* state - is goal /
    / state eq ''

* state - is no good /
    / ! ( exist - f ?
    /    count - wg != 0 && count - gc != 0 :
    /    count - wg != 2 && count - gc != 2 )

* state - message /
    / if( debug ) { print 'state ' . state . "\x0a" }

/? ----------------------------------------------------------
/?- possible

* possible // my @possible
    @possible = () ;

* possible - at state /
    / if( exist - f ) {
    /    push possible , grep { exist - $_ } possible - all
    / }
    / else {
    /    push possible , grep { ! ( exist - $_ ) } possible - all
    / }

* possible - take one /
    / if( exist - f ) { change - del f & $_ }
    / else { change - add f & $_ }

* possible - all /
    split '' , 'fwgc'

* possible - message /
    / if( debug ) { print 'take ' . $_ . "\x0a" }

/? ----------------------------------------------------------
/?- state --- exist , count , change

* exist - f /
    / state =~ m,f,

* exist - \$_ /
    / state =~ m,$_,

* count - wg /
    / scalar( @{[ state =~ m,[wg],g ]} )

* count - gc /
    / scalar( @{[ state =~ m,[gc],g ]} )

* change - unique /
    / state = join '', sort split '', state ;

* change - del f & \$_ /
    / state =~ s,$_,, ; state =~ s,f,, ;

* change - add f & \$_ /
    / state .= $_ eq 'f' ? $_ : 'f' . $_ ;


Edit

「codeLayouter の記述メモ2」をウィキ内検索
LINE
シェア
Tweet
prepress-tips
記事メニュー
メニュー

更新履歴

取得中です。


記事メニュー2
右メニュー
  • トップページ
  • 旧トップページ
  • メニュー
  • 右メニュー
  • バックアップ


人気記事ランキング
  1. 構造と処理を別の言語で書いて組合せる 3
もっと見る
最近更新されたページ
  • 3905日前

    codeLayouter の記述メモ3
  • 3905日前

    トップページ
  • 5363日前

    codeLayouterを perlxsで使う
  • 5496日前

    GTK+ で openCV
  • 5497日前

    codeLayouter ver 0.03
  • 5503日前

    codeLayouter の記述メモ2
  • 5564日前

    ubuntu LiveUSB 3
  • 5636日前

    codeLayouter の記述メモ
  • 5678日前

    applescriptの編集
  • 5760日前

    ubuntu LiveUSB 2
もっと見る
人気記事ランキング
  1. 構造と処理を別の言語で書いて組合せる 3
もっと見る
最近更新されたページ
  • 3905日前

    codeLayouter の記述メモ3
  • 3905日前

    トップページ
  • 5363日前

    codeLayouterを perlxsで使う
  • 5496日前

    GTK+ で openCV
  • 5497日前

    codeLayouter ver 0.03
  • 5503日前

    codeLayouter の記述メモ2
  • 5564日前

    ubuntu LiveUSB 3
  • 5636日前

    codeLayouter の記述メモ
  • 5678日前

    applescriptの編集
  • 5760日前

    ubuntu LiveUSB 2
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 全裸でいかおどり@VIPPER支部
  2. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  3. 異修羅非公式wiki
  4. ドラゴンクエスト モンスターバトルロードII攻略@WIKI
  5. ポケモン 作品なりきりネタWiki
  6. モンスター烈伝オレカバトル2@wiki
  7. シュガードール情報まとめウィキ
  8. EDF5:地球防衛軍5@Wiki
  9. アサルトリリィ wiki
  10. SDガンダム ジージェネレーションクロスレイズ 攻略Wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. 初音ミク Wiki
  4. MADTOWNGTAまとめwiki
  5. ストグラ まとめ @ウィキ
  6. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  7. 検索してはいけない言葉 @ ウィキ
  8. モンスター烈伝オレカバトル2@wiki
  9. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. 首都圏駅メロwiki
  4. まどドラ攻略wiki
  5. Last Z: Survival Shooter @ ウィキ
  6. シュガードール情報まとめウィキ
  7. ちいぽけ攻略
  8. ステラソラwiki
  9. 駅のスピーカーwiki
  10. 20XX @ ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - MADTOWNGTAまとめwiki
  2. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  3. 児童ポルノ 中国姉弟中学生近親相姦エロ動画 - 全裸でいかおどり@VIPPER支部
  4. 朕狼党 - MADTOWNGTAまとめwiki
  5. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  6. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  7. Z世代女子中学生のエロ動画だぉw - 全裸でいかおどり@VIPPER支部
  8. 参加者一覧 - ストグラ まとめ @ウィキ
  9. XVI - MADTOWNGTAまとめwiki
  10. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.