From 06a2a202a6c086a55f24aacc997dd2289f917464 Mon Sep 17 00:00:00 2001 From: Emre Guneyler Date: Tue, 22 Nov 2022 21:20:06 +0300 Subject: [PATCH] screens --- .gitignore | 24 +++++ README.md | 191 ++++++++++++++++++++++++++++++++++++ content/sprites/palette.ase | Bin 0 -> 805 bytes index.html | 13 +++ package.json | 15 +++ public/vite.svg | 1 + screens/navigation.ase | Bin 0 -> 59656 bytes src/counter.ts | 9 ++ src/main.ts | 23 +++++ src/style.css | 97 ++++++++++++++++++ src/typescript.svg | 1 + src/vite-env.d.ts | 1 + tsconfig.json | 19 ++++ 13 files changed, 394 insertions(+) create mode 100755 .gitignore create mode 100644 README.md create mode 100755 content/sprites/palette.ase create mode 100755 index.html create mode 100755 package.json create mode 100755 public/vite.svg create mode 100755 screens/navigation.ase create mode 100755 src/counter.ts create mode 100755 src/main.ts create mode 100755 src/style.css create mode 100755 src/typescript.svg create mode 100755 src/vite-env.d.ts create mode 100755 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..45106eb --- /dev/null +++ b/README.md @@ -0,0 +1,191 @@ +# Solitaire, Freecell, Spider + +## Navigation + +- Side navigation + - Back + - Content + - Main menu + - Horizontal Layout + - Solitaire + - Freecell + - Spider + - Text Buttons + - How to play + - Stats + - Settings + - About + - How to play + - Tabbed Content + - Tab Spider + - Tab Solitaire + - Tab Freecel + - Tab Panel + - Scrollable View + - Stats + - Vertical Layout + - Solitaire nb games played + - Freecell nb games played + - Spider nb games played + - Tabbed Content + - Tab Last activity + - Scrollable View + - Tab Nb games played + - Scrollable View + - Tabbed Content + - Tab all + - Tab game over + - Tab game completed + - Tab incomplete + - Tab Panel + - Game Mini view + - Game Mini View + - Game Name + - Date + - Score + - Status + - Mini game view + - Settings + - Scrollable View + - Dropdown Selection + - Toggle Selection + - About + - Scrollable View + - External Links + - External link icon + - Solitaire + - Game area + - New game + - Settings + - Freecel + - Game area + - New game + - Settings + - Spider + - Game area + - New game + - Settings + - Dialogs + - New game prompt + - End game + +## Dialogs + +- New game prompt + +Current game will be archived. +Do you want to start a new game? +- Yes, No + +- End game + +Game over nickname. No moves available. +Good game nickname. You completed this level. +You scored 62. New highscore. +- New game, View Stats, Main menu + +## Stats + +- Solitaire nb games played +- Freecell nb games played +- Spider nb games played +- Last activity + - Today + - 3 times played solitaire + - Yesterday + - 2 times played freecel +- Nb games played + - All + - Game over + - Game completed + - Incomplete + +- Game box + - Spider, Solitaire, Freecel + - 1 months ago + - Score + - Game status + - Mini game area + + +## Main menu + +Game selection +Settings +About + +## Settings + +Color theme +- Pink +- Blue +- Orange +- Black + +Sounds +- On +- Off + +Language +- English +- French +- Italian +- German + +## About + +A hobby project, created in 2023 by [eguneys](https://eguneys.github.io). + +A fun way to pass time with 3 solitaire games. [Solitaire](), [Freecell](), and [Spider](). + +- This project is free and open source at [Github](https://github.com/eguneys/solitaire23) +- Other games will be linked here when available. + +- Consider donating at [Patreon](https://www.patreon.com/eguneys). + +- For business inquiries please contact me on twitter @eguneys. + +## Solitaire + +Solitaire is played with a standard 52-card deck. +A tableu of 7 piles of cards are laid, first pile contains 1 card, second pile contains 2 cards and so on. The topmost card of each pile is turned face up, the cards behind are turned face down. +The remaining cards form the stock and are placed facedown at the upper left. + +The four foundations are built up by suit from Ace to King. +The tableu piles can be built down by alternate colors. +Every face-up card in a partial pile, or a complete pile, can be moved, as a unit, to another tableu pile on the basis of its highest card. +Any empty piles can be filled with a King, or a pile of cards with a King. + +The aim of the game is to build up four stacks of cards from Ace to King for each suit, on one of the four foundations. + +There are different ways of dealing the stock cards to the waste depending on these two settings. + +Turning cards +- Three cards: Turning three cards at once to the waste +- One card: Turning one card at once to the waste + +Turning limit +- No limit: no limit on passes through the deck. +- 3 passes: 3 passes through the deck. +- 1 pass: 1 pass through the deck. + + +- If all face up cards in a tableu is moved, the topmost back facing card is turned over. +- Cards in waste can be moved to a tableu or a foundation. +- The topmost card in a foundation can be moved back to a tableu. +- If the stock is empty and there are cards in the waste, waste cards can be recycled back to stock if pass through the deck is allowed according to turning limit. +- Moves can be undo with the undo button. + + +The scoring system is: + +- waste to tableu: 5 points +- waste to foundation: 10 points +- tableu to foundation: 10 points +- turn over tableu card: 5 points +- foundation to tableu: -15 points +- recycle waste: -70 points +- undo a move: -30 points + +## Freecell +## Spider diff --git a/content/sprites/palette.ase b/content/sprites/palette.ase new file mode 100755 index 0000000000000000000000000000000000000000..20f762637c4db4a0cc0893e37d4e51a6b657ff9e GIT binary patch literal 805 zcmcJNJ4gdT5Qb-Sxx_MpkyyE46ru>8FHi!KQn3)kMtnq!jUa-t&?1OhrV|4e>BLSH zLfQyoC8Bm$LQC$ByESzP3c4v0xo4vhujp+VJrv?m3f{0?6U*;#l zPV!;=hh3n0wd}E|9srs#z0yKDa0ghoNdKp&$q})Zibw_xXgskC&7NhU3WmOY5vVb> z4;{-~L*s=4)U=|>AV+iIX=o*tgsPhyYte*0BnVncg;+Do(298sRi!+XZ4}eZUyWNs z3*a+cDPX|_5Hz5`0fY%CUo=q|RZ)`bmGa1K?G`_I8v?h&pYywiZgFhC6 z48eUkO;E3kTuu++NS{Vd48nr?-MGa!6EqNlLzf?3WtZXqWFx&8jXvM@>=<;|IC4IO zGu5)No{(FpmpD0Lyq + + + + + + Vite + TS + + +
+ + + diff --git a/package.json b/package.json new file mode 100755 index 0000000..7b295f0 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "solitaire23", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "typescript": "^4.6.4", + "vite": "^3.2.3" + } +} \ No newline at end of file diff --git a/public/vite.svg b/public/vite.svg new file mode 100755 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/screens/navigation.ase b/screens/navigation.ase new file mode 100755 index 0000000000000000000000000000000000000000..78d925e9a38c67fd239a75f4d09e296d14fe7736 GIT binary patch literal 59656 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 b259bbn$U(OZxlf(O1m51+*1Gb7o-0RFfpcZ literal 0 HcmV?d00001 diff --git a/src/counter.ts b/src/counter.ts new file mode 100755 index 0000000..09e5afd --- /dev/null +++ b/src/counter.ts @@ -0,0 +1,9 @@ +export function setupCounter(element: HTMLButtonElement) { + let counter = 0 + const setCounter = (count: number) => { + counter = count + element.innerHTML = `count is ${counter}` + } + element.addEventListener('click', () => setCounter(counter + 1)) + setCounter(0) +} diff --git a/src/main.ts b/src/main.ts new file mode 100755 index 0000000..df7c82c --- /dev/null +++ b/src/main.ts @@ -0,0 +1,23 @@ +import './style.css' +import typescriptLogo from './typescript.svg' +import { setupCounter } from './counter' + +document.querySelector('#app')!.innerHTML = ` +
+ + + + + + +

Vite + TypeScript

+
+ +
+

+ Click on the Vite and TypeScript logos to learn more +

+
+` + +setupCounter(document.querySelector('#counter')!) diff --git a/src/style.css b/src/style.css new file mode 100755 index 0000000..ac37d84 --- /dev/null +++ b/src/style.css @@ -0,0 +1,97 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.vanilla:hover { + filter: drop-shadow(0 0 2em #3178c6aa); +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/typescript.svg b/src/typescript.svg new file mode 100755 index 0000000..d91c910 --- /dev/null +++ b/src/typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100755 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100755 index 0000000..eac16d1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM"], + "moduleResolution": "Node", + "strict": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "skipLibCheck": true + }, + "include": ["src"] +}