Comments (4)
For move, you need to track where the "." is. You can do this by using a number (since the grid only hold interger) that you won't use in the puzzle the hold the "." in the grid. Then, proceed to check if that number is either in same row, different column by 1 or different row by 1, same column with the input number(Math.abs can be helpful). If so, then set a new grid and return a new Puzzle, else return this.
For isSolved, remember that creating a new Puzzle returns a solved Puzzle. So you can just compare the toString().
Hope this helps.
from 2122-s2.
To add on, when checking whether the number is beside the ".", do take note of special cases which will cause the indexOutOfBound error!
from 2122-s2.
Hi,
I think one of the easiest way is to make another constructor that has additional currentBlankPosition parameter. In that way you can easily check whether the 1D pos translation of the number that you want to swap to the currentBlankPosition (in 1D translation ozo)
*Also can interpret "." as 0 in your ImList, and do filter the 0 when you print it out
from 2122-s2.
Hi,
What worked for me was adding 0 into Grid2D, since it can only take in Integer inputs, to replace the ".". Also, a way to identify the position of the 0, both row and column positions.
Afterwards, checking if num from Puzzle move(int num)
is
(1) same row as 0 or;
(2) same column as 0 but are on top of one another
Lastly, it is to edit the Grid2D using the .set()
function and return a new Puzzle which is initialised using this edited Grid2D.
from 2122-s2.
Related Issues (20)
- PYP Q 2d HOT 2
- PYP last qn HOT 7
- Recitation 09-extra pdf not on luminus HOT 2
- PECS HOT 5
- QN5 17/18S1 [Why is A not the answer?] HOT 4
- Q5 HOT 3
- Can anyone explain what is a functor and a monad isπ HOT 8
- Mock Q4b HOT 9
- Impending P.A.N.I.C HOT 22
- AY19/20 SS1 qn 7 HOT 4
- Question on reduce function HOT 4
- AY18/19 Q2 Cyclical Dependency HOT 3
- error in obtaining int[] from a stream HOT 4
- Q3d) When I solved the game of Life problem for labs, I used loops. Can someone post their code using streams for 3d and 3e ? HOT 2
- Assertion questions HOT 2
- Mock 4a help HOT 13
- What kind of stream operations allow us to use .parallel() operation? HOT 4
- Final Submission Folder Disappeared HOT 6
- Anyone solved the RedLight , GreenLight, AmberLight problem? Can you please post your code? HOT 2
- excercise 2 inheritence question
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 2122-s2.