Sudoku Game Design Language(SGDL)
Sijue TanRongzheng Yan
Yu Shao Yigang Zhang William Chan
Sudoku Game & Grid Games
Introduction
Overview Language for Sudoku fans and Programmer Generate Sudoku games Or any Grid games
Motivation To present a language that can define rules of
Grid game and generate the game. To attract people into a logic-reasoning way of
thinking
Features What we can do What we cannot do
Introduction
Architecture
Token
Scanner
Parser
Compiler
AST of SGDL
Strg
Chkg
strBytecode Action
Lit
Gcol
Grow
Sfp
SGDL PrintOut1*2*3*6*56*5*3*2*16*1*2*3*45*2865*586*5*2*1*7
Bytecode
Execute
Tech we used
Tech we used
Programming Language perspective
Stack and Grid
(value, bool) [“0”]
81
30
2048
Sample
Generate random Sudoku whole solution
Cover some number of the grid
Sample Program• Array num; /*global variable declaration*/
• main() /*Entry point of SGDL program*/
• begin• int i; int j;int k; int a; int col; int ran; /*Local declaration*/• string s;• Array tempt1;• num ~ [|1,2,3,4,5,6,7,8,9|]; /*Assignment*/• for (i~1;i<10;i++)• begin• Grid.Cell(1,i) ~ generateNum(1,i); /*Grid object*/• end• printg();• print(Grid.Cell(1,1));• for(j~2;j<10;j++) /*Nested for loops*/• begin• for (k~1;k<10;k++)• begin•
Sample Program• if(k=9) /*If condition statement*/• begin• Grid.Cell(j,9) ~ Grid.Cell(j-1,1);• end• else• begin• Grid.Cell(j,k) ~ Grid.Cell(j-1,k+1);• end• end• end• tempt1 ~ Grid.Row(2); /*row exchange*/• Grid.Row(2) ~ Grid.Row(4);• Grid.Row(4) ~tempt1;
• printg(); /*print out the whole grid*/
Developing Process--Tools
Developing Process
Test Different aspects
Operators +-*/ ~ Functions Data structures array grid Sample program
Auto test Makefile Test.sh
Problems and Solutions
Developing Process
What we will do
User input
User interface
Other grid gameCross word
Non-rectangle grid
Lesson Learned
Team cooperation share ideas Team schedule Or any Grid games
O’caml is different but it is fun to study!
Tools for software developingGoogle Docs Google Codes (SVN)
Another Attempt
Java AST
Generate java code