Difference between revisions of "W3911 Sudoku Server"
From Coder Merlin
(Created page with " Background A Sudoku board is made up of nine boxes. Boxes (container for nine cells) are listed from top-to-bottom, left-to-right indexed from zero. Cells are listed from top...") |
|||
Line 24: | Line 24: | ||
* Response: Nothing | * Response: Nothing | ||
* Status: 204 No Content | * Status: 204 No Content | ||
{{CodeExplorer | |||
|uniqueID=1 | |||
|mode=swift | |||
|height=800 | |||
|initialCode=import Foundation | |||
struct Cell: Codable { | |||
let value: Int? | |||
func encode(to encoder: Encoder) throws { | |||
var container = encoder.container(keyedBy: CodingKeys.self) | |||
try container.encode(value, forKey: .value) | |||
} | |||
} | |||
let cell = Cell(value: 17) | |||
let encoder = JSONEncoder() | |||
guard let data = try? encoder.encode(cell), | |||
let string = String(data: data, encoding: .utf8) else { | |||
fatalError("Failed to encode data into json.") | |||
} | |||
print(string) | |||
}} |
Revision as of 07:56, 24 September 2021
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
Background A Sudoku board is made up of nine boxes. Boxes (container for nine cells) are listed from top-to-bottom, left-to-right indexed from zero. Cells are listed from top-to-bottom, left-to-right, indexed from zero. All valid payloads and responses must use well-formed JSON. “cells” is returned as follows: “cells”: [[<nine values from top-left>], [<nine values from top-middle>], …]
End Points
- POST /games
* Action: Creates a new game and associated board * Payload: None * Response: Id uniquely identifying a game * Status code: 201 Created
- GET /games/<id>/cells
* Action: None * Payload: None * Response: cells * Status code: 200 OK
- PUT /games/<id>/cells/<boxIndex>/<cellIndex>
* Action: Place specified value at in game at boxIndex, cellIndex * Payload: value (null for removing value) * Response: Nothing * Status: 204 No Content