# Card Soccer

DevFeed: [Card Soccer](<https://devfeed.tech/articles/card-soccer-38598.md>)

Original publisher: [Read original article](<https://krossovochkin.com/apps/card-soccer/>)

Published: 2022-07-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Vasya Drobushkov](<https://devfeed.tech/sources/vasya-drobushkov.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [ui](<https://devfeed.tech/topics/ui.md>), [compose-for-desktop](<https://devfeed.tech/topics/compose-for-desktop.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-ui](<https://devfeed.tech/tags/compose-ui.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [game](<https://devfeed.tech/tags/game.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [port](<https://devfeed.tech/tags/port.md>), [strategies](<https://devfeed.tech/tags/strategies.md>), [web](<https://devfeed.tech/tags/web.md>)

## AI overview

Card Soccer is a turn-based card game against an AI opponent. Players move a card-based ball through rows by matching its value or suit, using passes or shots to score goals. The author describes developing desktop and web versions with Kotlin Multiplatform and Jetpack Compose UI.

## Source excerpt

How to play The goal of the game is to win AI opponent by scoring more goals. The game is turn based. On your turn you should move the "ball" (card opened from your deck) to opponents goal. You start from the row that is close to your goal: you should select a card in a row and if it matches by value or suite - proceed to the next row up until the opponent's goal. If there is no match - your turn is over. You can select opened and closed cards. If the whole row is opened - you can skip it and procced to the next one. You score when your "ball" matches opponent goal.