/SET-

Set Card Game

Primary LanguageSwift

SET!

CS193P - Developing Apps for iOS/ipadOS (Spring 2023)

Screenrecording_SET_formatted.mp4

Overview

This repository contains my midterm Assignment for the CS193P iOS Application Development course, offered in Spring 2023 at Stanford University. The assignment involved creating a Set card game app from scratch, using SwiftUI.

Key Topics Covered

  • Implementation of solo Set game mechanics.
  • Dynamic proportional UI adjustments for varying numbers of cards on screen.
  • Adherence to MVC design patterns.
  • Unit tests
  • Card dealing and replacement logic.
  • Handling card selection state and validation of Set matches.
  • Implementing custom shapes for card symbols.
  • Modularity, Readability, Reusability, Maintainability

Folder Structure

SET!
    ├── GameLogicTests
    │   └── GameLogicTests.swift
    ├── SET!
    │   ├── ActionBarView.swift 
    │   ├── AspectVGrid.swift 
    │   ├── Assets.xcassets
    │   │   ├── AccentColor.colorset
    │   │   ├── AppIcon.appiconset
    │   │   └── Contents.json
    │   ├── CardView.swift
    │   ├── ContentView.swift
    │   ├── Model
    │   │   ├── Card.swift
    │   │   └── GameLogic.swift 
    │   ├── Preview Content
    │   │   └── Preview Assets.xcassets
    │   ├── SET_App.swift
    │   ├── ShapeView.swift
    │   └── ViewModel
    │       └── SetGame.swift 

Screenshot 2023-11-30 at 13 25 25 Screenshot 2023-11-30 at 13 25 46