After luke warm response I received for my game "MemoryPro" I wanted to develop another app. Due to limited resources and lack of much graphical skills, the game should not involve not of graphics and animation.
Then the idea came, why not add the numbers to 100 in a grid? So was born GetHundred the game where each row should add to 100 and each column to 100.
What about the data generation? That is which numbers am I providing the user? First set was calculated by me on paper. Then I generated few more sets. And thought I can hard code the solution numbers and store them in the app.
Some how that did not seem right. How many sets do I store in the game? What will the game do after all the sets are cleared by user? Won't it be better if the numbers can be generated dynamically? So that each time, the numbers would be different.
Hence I started scribbling equations. Some thing like a11+a12+a13 = 100, a11+a21+a31=100 etc.
To cut the story short, I did find the way to generated numbers - few random, rest calculated.
Next came the drag and drop of these numbers to grid. Stack overflow told me that android has direct methods to achieve drag and drop. Great. I took the code and implemented it.
But what happens if the user drops the number outside the grid? What happens if he drops it back to same place instead of grid?
OK, so I wrote if the dropping view is not part of grid or data table, cancel drag and drop operation.
Little did I realize that this drag and drop methods are not supported in android froyo - my first smart phone. All these days I was testing my apps in 2.2 android and 4.0 both. But now I had to either write all these magical action myself or leave 2.2 phone support to app. I went for the easier option. I gave minimum sdk version as 11 instead of my usual 8.
With functionality almost ready, I wanted to see other puzzle games. Unblock me - was very addictive. Instead of getting inspired by this app, I started playing it. Joking. But believe me, it is a great stress buster.
So this app gave me idea of undo the move and restart the game. Undo - ctrl z has become so ingrained in us, but we rarely give us a thought about how it is implemented. Do I give one undo or multiple? If multiple how many? My data structure knowledge helped me here. Stack is ideal structure for "undo" feature. And thank God, Java has Stack class. So I would store the moves in stack and when undo is pressed, remove it from stack and undo it. e.g. if the latest move was to dropping the number from data cell d4 to grid cell a13, then after removing this from stack, the number in a13 would be moved back to d4.
That implemented followed by restart action implementation, only thing left was to make the app look good. How do I color the cells. Single color or a png file or gradient drawable. I tried all possibilities. I would find all these good.
A very strong and muscular man was to be kept busy. His boss gave him a room full of wood to be chopped. In an hour the big man came asking for next work. His boss gave him a large pile of potatoes and told him to separate them into good ones and bad ones. In evening when boss came to see the big man, he holding a potato in hand deep in thought. To put it in good pile or bad pile.
So that is how it was. I took almost a month to put the correct ui.
When I finally published it in google play, it told me the app is of medium maturity. Why? I was worried, upset, angry and all range of emotions. I wrote to them. Still expecting an answer.
Note : Shata is 100. Normaly in cricket a person scores a shataka - a century. I call others and am called myself "shata mallu" (mallu is mad)
Then the idea came, why not add the numbers to 100 in a grid? So was born GetHundred the game where each row should add to 100 and each column to 100.
What about the data generation? That is which numbers am I providing the user? First set was calculated by me on paper. Then I generated few more sets. And thought I can hard code the solution numbers and store them in the app.
Some how that did not seem right. How many sets do I store in the game? What will the game do after all the sets are cleared by user? Won't it be better if the numbers can be generated dynamically? So that each time, the numbers would be different.
Hence I started scribbling equations. Some thing like a11+a12+a13 = 100, a11+a21+a31=100 etc.
To cut the story short, I did find the way to generated numbers - few random, rest calculated.
Next came the drag and drop of these numbers to grid. Stack overflow told me that android has direct methods to achieve drag and drop. Great. I took the code and implemented it.
But what happens if the user drops the number outside the grid? What happens if he drops it back to same place instead of grid?
OK, so I wrote if the dropping view is not part of grid or data table, cancel drag and drop operation.
Little did I realize that this drag and drop methods are not supported in android froyo - my first smart phone. All these days I was testing my apps in 2.2 android and 4.0 both. But now I had to either write all these magical action myself or leave 2.2 phone support to app. I went for the easier option. I gave minimum sdk version as 11 instead of my usual 8.
With functionality almost ready, I wanted to see other puzzle games. Unblock me - was very addictive. Instead of getting inspired by this app, I started playing it. Joking. But believe me, it is a great stress buster.
So this app gave me idea of undo the move and restart the game. Undo - ctrl z has become so ingrained in us, but we rarely give us a thought about how it is implemented. Do I give one undo or multiple? If multiple how many? My data structure knowledge helped me here. Stack is ideal structure for "undo" feature. And thank God, Java has Stack class. So I would store the moves in stack and when undo is pressed, remove it from stack and undo it. e.g. if the latest move was to dropping the number from data cell d4 to grid cell a13, then after removing this from stack, the number in a13 would be moved back to d4.
That implemented followed by restart action implementation, only thing left was to make the app look good. How do I color the cells. Single color or a png file or gradient drawable. I tried all possibilities. I would find all these good.
A very strong and muscular man was to be kept busy. His boss gave him a room full of wood to be chopped. In an hour the big man came asking for next work. His boss gave him a large pile of potatoes and told him to separate them into good ones and bad ones. In evening when boss came to see the big man, he holding a potato in hand deep in thought. To put it in good pile or bad pile.
So that is how it was. I took almost a month to put the correct ui.
When I finally published it in google play, it told me the app is of medium maturity. Why? I was worried, upset, angry and all range of emotions. I wrote to them. Still expecting an answer.
Note : Shata is 100. Normaly in cricket a person scores a shataka - a century. I call others and am called myself "shata mallu" (mallu is mad)
Comments
Post a Comment