Архитектурный шаблон "Мрак в моделях" на нескольких языках и платформах
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

37 lines
621B

  1. interface Context {
  2. itemsCount: number
  3. }
  4. class Position {
  5. x: number
  6. y: number
  7. constructor(x, y) {
  8. this.x = x
  9. this.y = y
  10. }
  11. }
  12. function memoryGap(): number {
  13. return memorySide() + memorySpace()
  14. }
  15. function memorySide(): number {
  16. return 50
  17. }
  18. function memorySpace(): number {
  19. return 20
  20. }
  21. function memoryItemPositions(c: Context): Position[] {
  22. var pos: Position[] = []
  23. for (var i = 0; i < c.itemsCount; i++) {
  24. let row = Math.floor(i / 4)
  25. let x = memoryGap() + (i - row * 4) * memoryGap()
  26. let y = memoryGap() + row * memoryGap()
  27. pos.push(new Position(x, y))
  28. }
  29. return pos
  30. }