Git Product home page Git Product logo

cem's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

arsysnet

cem's Issues

Array overwrite in InitNormal

@plimber, @haileyajohnson:

InitNormal writes past the end of the TypeOfRock and topography arrays when setting fast and slow weathering portions.

for (x = 0; x < X_MAX; x++) {
  for (n = 0; n <= 2 * NUMBER_CHUNK; n++) {
    for (y = n * CHUNK_LENGTH; y < ((n + 2) * CHUNK_LENGTH); y++) {
      if (n % 3 == 0 && (!blocks || x > InitialRock - 3)) { // if even
        TypeOfRock[x][y] = 's';
        topography[x][y] = kCliffHeightSlow;
      }
      else { // if odd
        TypeOfRock[x][y] = 'f';
        topography[x][y] = kCliffHeightFast;
      }
    }
}

Depending on the values for NUMBER_CHUNK and CHUNK_LENGTH, y will eventually be larger than 2 * Y_MAX, which is the number of columns for the arrays in question.

I propose that the length of each chunk be calculated based on Y_MAX and the number of chunks (NUMBER_CHUNK). I suppose the opposite would also work: calculate the number of chunks based on the number of columns and the chunk length. We will also have to do something with partial chunks if the number of columns isn't a multiple of the length of chunks.

The other thing is that the code within the innermost loop doesn't appear to do what the comments suggest (n % 3 doesn't test for even/odd) and overwrites data right after it's been initialized (perhaps n++ should be n+=2?).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.