Inspiration
During the s(CASP) workshops prior to HackReason, I was very interested by the ideas shared. The fact that a program could exhibit common sense and think like a human seemed so hard to emulate using code. So instead of setting a lofty goal in such an unfamiliar landscape, I chose to use my most powerful tool in problem solving, Simplification. By simplifying the goal, It enabled me to get further on the reasoning and explore more of the goal-based principles that s(CASP) is run on.
What it does
The program can take in any stage of a Tic-Tac-Toe game and give the best move for O (the second player or program). It does this by reasoning with past moves and negation as false to work down the list of priority moves that exist.
How we built it
It was built exclusively on the Ciao Playground for s(CASP)
Challenges we ran into
I ran into challenges when initially setting the scope of the program. There were a lot of limitations that came with exclusively s(CASP). But I wanted to push it to the limits and work with the technology that brought me to Hack Reason. So despite the struggles of learning the syntax and finding new approaches to cater to the needs of the program, I was able to get in contact with mentors who could fill my knowledge gaps and push me to succeed.
Accomplishments that we're proud of
I am proud of the complexity of the program. But not just how much is reasoned and formatted but also just how much abstraction I have included. The code that I wrote is what I believe to be for the most part readable without the need for comments. This is because of good naming conventions and spacing between related and unrelated code segments. Although there is only a few commands you can run in my program, if you look at the justification for any of the commands you will find a tree of decisions it had to reason with to arrive at the answer.
What we learned
I through the whole journey learned so much about s(CASP). Somewhere along the way I started to debug code without the help of the incredible mentors. At which point I knew I had grown accustomed to this technology.
What's next for Tic-Tac-Toe s(CASP)
The limitation on using purely s(CASP) had drawbacks. the most glaring being the facts could not be updated as the game progressed so each time a move had been played the program had to be modified and then loaded again. This could be solved using a python script to modify the original file on the event of a move and then run the file. There is also more common sense I can add to the program in order to give better answers to queries.
Net ID: AXS220398
Built With
- s(casp)
Log in or sign up for Devpost to join the conversation.