• Showing Page History #107847
Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

第一回なでしこでリバーシ(オセロ)初期画面を表示する

!変数宣言が必要 

はエラーをなでしこが教えてくれる 大きなプログラムを作るときには便利です。 できるだけこの記述を入れるようにしましょう。

局面

現在局面はリバーシの現在の局面を保持する変数です。

局面はリバーシの状態すべてを保持します。 後で追加していきますが、白と黒どちらの手番であるか?などもここに入れていきます。 今回は黒石と白石が8×8マスにどのように配置されているかを保持する 配置という変数を用意しました。

作る~というのはこの型を宣言したときに呼ばれる手続きです。 リバーシの初期配置の設定をしています。 黒石を黒、白石を白、空になっているのを空と表現しています。 そのまんまですね。

		配置は、
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,黒,白,空,空,空,{改行}」&
     「空,空,空,白,黒,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空」。

カンマと改行で区切ることによって 対象局面→配置\縦,横 の形式でマスの状態を取得することができます。 例えば、 現在局面→配置\3,4は白になります。

盤描画

なでしこでは四角と円という命令で図形を描くことができます。 縦、横という繰り返しのための変数を用意して マス目ごとに処理します。 四角は黒、白、空にかかわらず、必ず書きます。 円は白石のときは塗り色を白にし 黒石のときは塗り色を黒にします。 空の場合は円は描きません。

実行結果

2017-06-23_17h36_53.png

今回までの全ソース

!変数宣言が必要

現在局面とは局面。
現在局面を盤描画。

■局面とは
	・配置
	・作る~
		配置は、
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,黒,白,空,空,空,{改行}」&
     「空,空,空,白,黒,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空,{改行}」&
     「空,空,空,空,空,空,空,空」。
     
●盤描画({グループ}対象局面を)
	枠幅とは整数。枠幅は40。
	左余白とは整数。左余白は20。
	上余白とは整数。上余白は30。
  線太さは1
  線色は黒色。
  横とは整数。
  縦とは整数。
  横で0から7まで繰り返す
    縦で0から7まで繰り返す
      塗り色は白色。
  		#ます目を描く
      横×枠幅+左余白,縦×枠幅+上余白から(横+1)×枠幅 + 1 +左余白,(縦+1)×枠幅 + 1+上余白へ四角。
      石とは文字列。石は対象局面→配置\縦,横
      #白石を描く
      もし石が「白」なら
        塗り色は白色。
        横×枠幅 + 2 +左余白,縦×枠幅+2+上余白から(横+1)×枠幅+左余白-2,(縦+1)×枠幅+上余白-2へ円。
  		#黒石を描く
      もし石が「黒」なら
        塗り色は黒色。
        横×枠幅 + 2 +左余白,縦×枠幅+2+上余白から(横+1)×枠幅+左余白-2,(縦+1)×枠幅+上余白-2へ円。