Зомби против растений игрушки заказать: купить фигурки из игры Plants vs Zombies заказать игрушку Растения против зомби в интерне магазине ToysZone.ru

Plants vs. Zombies Game: haskell

Может ли кто-нибудь помочь мне исправить мой код?

Передвижение и атака зомби

Зомби перемещаются вперед на расстояние, равное их скорости каждый ход, если могут. Если зомби не может двигаться вперед, потому что на клетке, на которой он стоит, есть растение, зомби кусает растение, уменьшает свои хиты на 1 и остается на этой клетке. Единственным исключением является зомби-прыгун: если его скорость по-прежнему равна 2, то он перепрыгивает первое растение и движется дальше, но его скорость снижается до 1.

Давайте определим функцию PerformZombieActions, которая будет выполнять вышеупомянутое соответствующее действие со всеми зомби в модели. Если зомби достигает конца игрового поля, верните Ничего! Функция не должна удалять мертвые растения!

Code ::

import Data.List

type Coordinate = (Int, Int)

type Sun = Int

—(Lifepoint)

data Plant = Peashooter Int | Подсолнух Инт | Орех Инт | Получение CherryBomb Int (Show, Eq)

—(Lifepoint, Speed)

data Zombie = Basic Int Int | Конехед Международный Международный | Бакетхед Международный Международный | Vaulting Int Int производное (Show, Eq)

data GameModel = GameModel Sun [(Координата, Растение)] [(Координата, Zombie)] производное (Show, Eq)

defaultPeashooter :: Plant

defaultPeashooter = Peashooter 3

defaultSunflower :: Plant

defaultSunflower = Sunflower 2

defaultWalnut :: Plant

defaultWalnut = Walnut 15

defaultCherryBomb :: Plant

defaultCherrybomb = вишня 2

Basic :: Zombie

Basic = Basic 5 1

Conehead :: Zombie

Conehead = Conehead 10 1

Buckethead ::::: Zombie

Backeate = Buckead 200003

Buckeate = Buckeathead = Buckeathead = Buckeathead = Buckeathead. 1

прыжок :: Зомби

прыжок = Прыжок 7 2

—tryPurchase :

isinfield :: Координата -> Bool

isinfield (x,y)

| x `элемент` [0,1,2,3,4] && y `элемент` [0,1,2,3,4,5,6,7,8,9,10,11]= Истина

| иначе = False

tryPurchase :: GameModel -> Coordinate -> Plant -> Maybe GameModel

tryPurchase ( GameModel a b c ) d f

| (isinfield d) && (lookup d b == Nothing) && (f == defaultWalnut) && (a-50 > (-1)) = Just (GameModel (a-50) ((d,f):b) c )

| (isinfield d) && (lookup d b == Nothing) && (f == defaultPeashooter) && (a-100 > (-1)) = Just (GameModel (a-100) ((d,f):b) c )

| (isinfield d) && (lookup d b == Nothing) && (f == defaultSunflower) && (a-50 > (-1)) = Just (GameModel (a-50) ((d,f):b) c )

| (isinfield d) && (lookup d b == Nothing) && (f == defaultCherryBomb) && (a-150 > (-1)) = Just (GameModel (a-150) ((d,f):b) c )

| иначе = Ничего

—placeZombieInLane :

isinrow :: Int -> Bool

isinrow x

| x `элемент` [0,1,2,3,4] = True

| иначе = False

placeZombieInLane :: GameModel -> Zombie -> Int -> Maybe GameModel

placeZombieInLane ( GameModel a b c ) d f

| (isinrow f) && (lookup (f,11) c == Nothing) = Just (GameModel a b (((f,11),d):c))

| (isinrow f) && (lookup (f,11) c == Nothing) = Just (GameModel a b (((f,11),d):c))

| (isinrow f) && (lookup (f,11) c == Nothing) = Just (GameModel a b (((f,11),d):c))

| (isinrow f) && (lookup (f,11) c == Nothing) = Just (GameModel a b (((f,11),d):c))

| в противном случае = ничего

Я пытался решить команду executeZombieActions , но это не работает для списка с большим количеством информации.

— Растение -1 очко здоровья

minusone :: Растение -> Растение

minusone (Горохострел b) = (Горохострел (b-1))

minusone (Подсолнух b) = (Подсолнух (b-1))

минусон (грецкий орех b) = (грецкий орех (b-1))

минусон (CherryBomb b) = (CherryBomb (b-1))

— Здоровье растения -1 в списке

минус :: [(Координата, растение)] -> [(координата, растение)]

минус [] = []

минус ((a,b):xs ) = ((a, (minusone b)): минус xs)

— Скорость зомби при прыжках будет равна 1 (при прыжках)

minva :: Zombie -> Zombie

if (Basic b c) = (Basic b c)

if (Конус b c) = (Конус b c)

if (Ковш b c) = (Ковш b c)

if (Свод b c) = (Свод b 1)

— Скорость зомби при прыжке будет 1 (при прыжке) ++ координата если 00 (и она должна быть только одновременно)

minusvalnut :: [(Координата, Зомби)] -> [(Координата, Зомби)]

минус-значение [] = []

минус-значение (((x,y),b):xs)

| y > 0 && (y-(скорость b)) < 0 = (((x,0),пример b): minusvalnut xs)

| иначе = (((x,y-(скорость b)),minva b): minusvalnut xs)

— Прыгающий зомби ?

isvaulting :: Zombie -> Bool

isvaulting (Basic b c) = False

isvaulting (Conehead b c) = False

isvaulting (Buckethead b c) = False

isvaulting (Vaulting b c) = True

— в списке vaultin зомби ?

isvault :: [(Координата, Зомби)] -> Bool

isvault [] = False

isvault ((a,b):xs)

| прыжки b = True

| иначе = False

—Zombie speed

speed :: Zombie -> Int

speed (Basic b c) = c

speed (Conehead b c) = c

speed (Buckethead b c) = c

speed (Vaulting b c) = c

—Скорость движения зомби (не опускается ниже 0)

movezombie :: [(Координата, Zombie)] -> [(Координата, Zombie)]

movezombie [] = []

movezombie (((x,y),b):xs)

| y > 0 && (y-(скорость b)) < 0= (((x,0),b): movezombie xs)

| иначе = (((x,y-(скорость b)),b): movezombie xs)

— Равные координаты

координата p :: [(Координата, План)] -> [Координата]

координатный шаг [] = []

координатный шаг ((a,b):xs) = a : координатный шаг xs

координата :: [(Координата , Зомби)] -> [Координата]

координата [] = []

координата ((a,b):xs) = a : координата xs

функция :: [(Координата, Растение)] -> [( Координата, Зомби)] -> Bool

функция x y = null ((координата x) \\ (координата y)) && null ((координата y) \\ (координата x))

— Координата 0?

iszero :: [(Координата, зомби)] -> Bool

iszero [] = False

iszero ((a,b):xs)

| а == (0,0) = Истина

| иначе = False

isEmpty :: GameModel -> Bool

isEmpty (GameModel a b c)

| b == [] && c == [] = True

| иначе = Ложь

PerformZombieActions :: GameModel -> Возможно GameModel

PerformZombieActions (GameModel a b c)

| isEmpty(GameModel a b c) = Just (GameModel a b c)

| iszero c = Ничего

| (функция b c) && not (isvault c) = Just (GameModel a (минус b) c)

| (функция b c) && (isvault c) = Just (GameModel a b (minusvalnut c))

| не (функция b c) = Just (GameModel a b (movezombie c))

| иначе = ничего

Test ::

executeZombieActions (GameModel 0 [((4,2),Sunflower 5)] [((a,b),c)|a<-[0,2,4],b< -[2,3,7,11],c<-[coneHead,basic,bucketHead,vaulting]])==Just (GameModel 0 [((4,2),Sunflower 2)] [((0,1) ,Коническая головка 10 1),((0,1),Базовая 5 1),((0,1),Ведеркоголовая 20 1),((0,0),Сводчатый 7 2),((0,2),Конусная головка 10 1),((0,2),Базовый 5 1),((0,2),Ведроголовый 20 1),((0,1),Вольтижировка 7 2),((0,6),Конус 10 1 ),((0,6),Basic 5 1),((0,6),Buckethead 20 1),((0,5),Vaulting 7 2),((0,10),Conehead 10 1), ((0,10),Базовый 5 1),((0,10),Ведрообразный 20 1),((0,9),Вольтижировка 7 2),((2,1),Конус 10 1),((2,1),Базовый 5 1),((2,1),Ведро 20 1),((2,0), Прыжки 7 2),((2,2),Конус 10 1),((2,2),Базовый 5 1),((2,2),Ведроголовый 20 1),((2,1),Вольтижировка 7 2),((2,6),Коническая головка 10 1),((2,6),Основная 5 1),((2,6),Ведрообразная 20 1),((2,5),Вольтижировка 7 2) ,((2,10),Коническая головка 10 1),((2,10),Базовая 5 1),((2,10),Ведеркоголовая 20 1),((2,9),Вольтижировка 7 2),( (4,2),Коническая головка 10 1),((4,2),Базовая 5 1),((4,2),Ведеркоголовая 20 1),((4,1),Вольтижировка 7 1),((4 ,2),Коническая головка 10 1),((4,2),Базовая 5 1),((4,2),Ведеркоголовая 20 1),((4,1),Вольтижировка 7 1),((4,6 ),Коническая головка 10 1),((4,6),Базовая 5 1),((4,6),Ведеркоголовая 20 1),((4,5),Вольтижировка 7 2),((4,10), Коническая головка 10 1),((4,10),Базовая 5 1),((4,10),Ведерковая головка 20 1),((4,9),Vaulting 7 2)])

executeZombieActions (GameModel 0 [((0,7),Sunflower 5)] [((a,b),c)|a<-[0,2,4],b< -[2,3,7,11],c<-[coneHead,basic,bucketHead,vaulting]])==Just (GameModel 0 [((0,7),Sunflower 2)] [((0,1) ,Коническая головка 10 1),((0,1),Базовая 5 1),((0,1),Ведеркоголовая 20 1),((0,0),Сводчатый 7 2),((0,2),Конусная головка 10 1),((0,2),Базовый 5 1),((0,2),Ведроголовый 20 1),((0,1),Вольтижировка 7 2),((0,7),Конус 10 1 ),((0,7),Basic 5 1),((0,7),Buckethead 20 1),((0,6),Vaulting 7 1),((0,10),Conehead 10 1), ((0,10),Базовый 5 1),((0,10),Ведрообразный 20 1),((0,9),Вольтижировка 7 2),((2,1),Конус 10 1),((2,1),Базовый 5 1),((2,1),Ведро 20 1),((2,0), Прыжки 7 2),((2,2),Конус 10 1),((2,2),Базовый 5 1),((2,2),Ведроголовый 20 1),((2,1),Вольтижировка 7 2),((2,6),Коническая головка 10 1),((2,6),Основная 5 1),((2,6),Ведрообразная 20 1),((2,5),Вольтижировка 7 2) ,((2,10),Коническая головка 10 1),((2,10),Базовая 5 1),((2,10),Ведеркоголовая 20 1),((2,9),Вольтижировка 7 2),( (4,1),Коническая головка 10 1),((4,1),Базовая 5 1),((4,1),Ведеркоголовая 20 1),((4,0),Вольтижировка 7 2),((4 ,2),Коническая головка 10 1),((4,2),Базовая 5 1),((4,2),Ведеркоголовая 20 1),((4,1),Вольтижировка 7 2),((4,6 ),Коническая головка 10 1),((4,6),Базовая 5 1),((4,6),Ведеркоголовая 20 1),((4,5),Вольтижировка 7 2),((4,10), Коническая головка 10 1),((4,10),Базовая 5 1),((4,10),Ведерковая головка 20 1),((4,9),Vaulting 7 2)])

executeZombieActions (GameModel 0 [((a,b),c 10)|a<-[0,2,4],b<-[0,2,7,11], c<-[Подсолнух,Горохострел,Грецкий орех,Вишневая бомба]] [((a,b),c)|a<-[0,2,4],b<-[2,3,7,11],c< -[coneHead,basic,bucketHead,vaulting]])==Just (GameModel 0 [((0,0),Sunflower 10),((0,0),Peashooter 10),((0,0),Walnut 10 ),((0,0),CherryBomb 10),((0,2),Подсолнух 7),((0,2),Горохострел 7),((0,2),Грецкий орех 7),((0, 2),Вишневая бомба 7),((0,7),Подсолнух 7),((0,7),Горохострел 7),((0,7),Грецкий орех 7),((0,7),Вишневая бомба 7) ,((0,11),Подсолнух 7),((0,11),Горохострел 7),((0,11),Грецкий орех 7),((0,11),Вишневая бомба 7),((2,0 ),Подсолнух 10),((2,0),Горохострел 10),((2,0),Грецкий орех 10),((2,0),Вишневая бомба 10),((2,2),Подсолнух 7), ((2,2),Горохострел 7),((2,2),Грецкий орех 7),((2,2),Вишневая бомба 7),((2,7),Подсолнух 7),((2,7) ,Горохострел 7),((2,7),Грецкий орех 7),((2,7),Вишневая бомба 7),((2,11),Подсолнух 7),((2,11),Горохострел 7),( (2,11),Грецкий орех 7),((2,11),Вишневая бомба 7),((4,0),Подсолнух 10),((4,0),Горохострел 10),((4,0), Грецкий орех 10),((4,0),Вишневая бомба 10),((4,2),Подсолнух 7),(( 4,2),Горохострел 7),((4,2),Грецкий орех 7),((4,2),Вишневая бомба 7),((4,7),Подсолнух 7),((4,7),Горохострел 7),((4,7),Грецкий орех 7),((4,7),Вишневая бомба 7),((4,11),Подсолнух 7),((4,11),Горохострел 7),((4 ,11),Орех 7),((4,11),Вишневая бомба 7)] [((0,2),Конус 10 1),((0,2),Основной 5 1),((0,2) ,Ведро 20 1),((0,1),Вольтижировка 7 1),((0,2),Конус 10 1),((0,2),Базовый 5 1),((0,2),Ведро 20 1),((0,1),Вольтижировка 7 1),((0,7),Конус 10 1),((0,7),Базовый 5 1),((0,7),Ведро 20 1 ),((0,6),Вольтижировка 7 1),((0,11),Конус 10 1),((0,11),Базовый 5 1),((0,11),Ведро 20 1), ((0,10),Вольтижировка 7 1),((2,2),Конус 10 1),((2,2),Базовый 5 1),((2,2),Ведро 20 1),(( 2,1),Вольтижировка 7 1),((2,2),Коническая головка 10 1),((2,2),Базовая 5 1),((2,2),Ведрообразная 20 1),((2, 1), Вольтижировка 7 1), ((2,7), Коническая головка 10 1), ((2,7), Базовая 5 1), ((2,7), Ведро 20 1), ((2,6) ,Вольтижировка 7 1),((2,11),Коническая голова 10 1),((2,11),Базовая 5 1),((2,11),Ведроголовая 20 1),((2,10),Вольтижировка 7 1),((4,2),Коническая головка 10 1),((4,2),Базовая 5 1),((4,2),Ведрообразная 20 1),((4,1),Вольтижировка 7 1 ),((4,2) ,Коническая головка 10 1),((4,2),Базовая 5 1),((4,2),Ведеркоголовая 20 1),((4,1),Сводчатый 7 1),((4,7),Конусная головка 10 1),((4,7),Базовый 5 1),((4,7),Ведроголовый 20 1),((4,6),Вольтижировка 7 1),((4,11),Конус 10 1 ),((4,11),Базовый 5 1),((4,11),Ведроголовый 20 1),((4,10),Вольтижировка 7 1)])

Минифигурки LEGO® | Официальный магазин LEGO® US

Минифигурки LEGO®

ПродуктыПодробнее

Минифигурки LEGO® — одни из самых узнаваемых в мире игрушек для детей от 6 лет и взрослых. способов собрать ваши любимые.
Выбирайте знакомые лица из ваших любимых фильмов, сериалов и видеоигр, а также оригинальные минифигурки LEGO® в самых разных стилях. Они также являются отличными коллекционными подарками, а некоторые наборы предлагают счастливый набор возможных игрушек, чтобы усилить волнение. Какие из них вы получите?
Вы также можете найти крутые аксессуары, стилизованные под культовое лицо минифигурки LEGO®.

… Подробнее

с показателем 29 продуктов

сортируют по

: рекомендуется

  • Рекомендуется
  • Новейшая
  • Цена: низкий до высокой до
  • Цена: высокая до низкого до
  • ;

    Новый

    ;

  • Рейтинг
  • A-Z

Показ на складе только

  • Минифигуры [8]
  • Книги [5]
  • [5]
  • [3]
  • [5]
  • [3]
  • [5]
  • . ]
  • $0 — $25[20]
  • $25+[9]
  • Harry Potter™[1]
  • Minifigures[29]
  • Other[2]
  • Add to wish list

    Series 23

    Average rating

    3.7

    out of 5 stars

    Price$4.99

    Out of stock

  • Add to wish list

    LEGO® Minifigures Series 24

    Price$4.99

    Coming Soon

  • Add to wish list

    Series 23 6 pack

    Average rating

    3

    out of 5 stars

    Price$29. 94

  • Add to wish list

    LEGO® In Focus

    Average rating

    5

    из 5 звезд

    Цена $ 30,00

  • Добавить в список пожеланий

    2023 Календарь настенных настенных настенных.0003

    LEGO® Minifigure Display Case 16

    Average rating

    4.8

    out of 5 stars

    Price$34.99

  • Add to wish list

    Brick or Treat

    Price$10. 99

    Out of stock

  • Добавить в список желаний

    Миссия минифигурок

    Цена19,99 $

    Нет в наличии

  • Добавить в список желаний

    LEGO® Minifigures Series 24 6 Pack

    909002 Цена $ 909002.94

    Скоро вскоре

  • Добавить в список пожеланий

    Справочник LEGO® Minifigure

    Цена $ 14,99

    Out Affice

  • . $ 15,99

  • Добавить в список пожеланий

    Muppets

    Средний рейтинг

    3,5

    из 5 звезд

    Цена 4,99

    из запаса

  • 999

    из запаса

  • 999

    .