何故オセロなのか?
今回、スプレッドシートとGASを使って、オセロを作っていきます。
最終的にはスプレッドシートの所定の場所をクリックすることでオセロが操作できるようなものを作っていきます。
今回オセロを作成する理由は、プログラミング言語を覚える上で、最も効率的だからです。
以前こちらの記事でも記載していますが、オセロを作成すると、配列の考え方やFor文、条件分岐の記載方法や簡潔な処理の方法を考えることで、その言語の特性などをしっかり学ぶことができます。
基本的なゲームの構造なども、以前記載したこのPythonでオセロを作ったときの考え方をベースにしているので、適宜参照頂けるとより理解が進むと思います。
初期状態の設置
まずは配列で処理する
今回も、以前Pythonで実装したときと同様、まずは配列でオセロを処理します。
スプレッドシートからApps Scriptを開き、次のように入れて実行します。
function myFunction() {
const gameSpreadSheet = SpreadsheetApp.getActiveSpreadsheet()
var sheet = gameSpreadSheet.getActiveSheet();
for (let i = 1; i <= 8; i++){
for (let j = 1; j <= 8; j++){
sheet.getRange(i, j).setValue(0);
}
}
sheet.getRange(4,4).setValue(1);
sheet.getRange(5,5).setValue(1);
sheet.getRange(4,5).setValue(-1);
sheet.getRange(5,4).setValue(-1);
}
Pythonの場合と異なり、スプレッドシートやExcelでは、一番左上を「1の1」という書き方をします。
Pythonの場合は「0の0」という記載だったのが大きな違いです。
Pythonの方が、繰り返し処理をしていくうえで計算が楽になることが多いですが、やはりスプレッドシートやExcelの記載の方が、初心者にとってはしっくりきます。
このように枠線をつけて幅を整えてあげると、Pythonのときと同様に初期状態の設置ができました。
次は石を設置する
さっそく初期状態の設置ができたので、次は石を設置します。
この時、Pythonのときと同じように、石を設置するための関数を設定します。
スプレッドシートでは、関数を作る際も、同じように「function xxx()」という記載をしますが、「()」の中に仮引数を設定することで、ちょうどExcelの関数と同じように自由に引数を設定して処理を行うことができます。
したがって、次のように記載をしていくことになります。
function setStone(r, c, s){
const gameSpreadSheet = SpreadsheetApp.getActiveSpreadsheet()
var sheet = gameSpreadSheet.getActiveSheet();
...
}
実際にrやcに石の設置場所、sに手番を入れて呼び出してあげることで、石を設置していく、ということです。
実際の石の設置の処理については、詳しくは次回解説していきます!
コメント