Initial project import

This commit is contained in:
Agila Forge Importer committed 2026-07-13 15:20:32 +00:00
commit 23f2d29e32
11957 files changed
+1754577

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
2048.wasm
2048
main
index.js
index.wasm
File diff suppressed because it is too large. Load diff
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Delyan Angelov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+62
View File
@@ -0,0 +1,62 @@
# V 2048
This is a simple 2048 game, written in [the V programming language](https://vlang.io/).
WebAssembly demo: https://v2048.vercel.app
![screenshot](demo.png)
## Description
Merge tiles by moving them.
After each move, a new random tile is added (2 or 4).
The goal of the game is to create a tile with a value of 2048.
## Keys
Escape - exit the game
Backspace - undo last move
n - restart the game
t - toggle the UI theme
Enter - toggle the tile text format
UP,LEFT,DOWN,RIGHT / W,A,S,D / touchscreen swipes - move the tiles
## Running instructions
Compile & run the game with `./v run examples/2048`
## Compiling to WASM
1. Install Emscripten from:
https://emscripten.org/docs/getting_started/downloads.html
2. Make sure that the environment in your shell is setup correctly,
i.e. that `emcc --version` works.
```sh
. /opt/emsdk/emsdk_env.sh
emcc --version
```
3. Compile the game to WASM:
(the JS file contains a loader for the .wasm file, without the extension):
```sh
v -prod -os wasm32_emscripten -o examples/2048/index.js examples/2048/
```
5. Run/test the game:
```sh
emrun examples/2048/index.html
```
If you prefer, instead of `emrun`, you can start a simple V http file server:
```sh
v -e 'import net.http.file; file.serve(folder: "examples/2048")'
```
and then open http://127.0.0.1:4001/ in your browser.
Once you have opened the game in your browser, you can make changes to
the V source, then recompile (step 3), and refresh the browser window
with the game, to see their effect.
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

+36
View File
@@ -0,0 +1,36 @@
<!doctype html>
<html lang="en-us">
<head>
<meta charset=utf-8>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v 2048</title>
<style>
body {
margin-left: 1rem;
background-color: rgb(250, 248, 239);
}
</style>
</head>
<body>
<h1>V 2048 demo</h1>
<h3>
Authors: <a href="http://github.com/spaceface777">@spaceface777</a>, <a href="http://github.com/spytheman">@spytheman</a> and other V contributors.
<br>
Original game by <a href="http://github.com/gabrielecirulli">@gabrielecirulli</a>.
</h3>
<h3>Click on the canvas to go into fullscreen mode</h3>
<canvas id=canvas oncontextmenu=event.preventDefault() tabindex=-1 width="544" height="560"></canvas>
<script src=index.js></script>
<script>
const m = Module()
const e = document.getElementById("canvas");
e.onclick = e.ontouchstart = () => {
e.requestFullscreen()
}
</script>
</body>
</html>
+7
View File
@@ -0,0 +1,7 @@
Module {
name: 'v2048',
description: 'A simple 2048 game written in V.',
version: '0.0.2',
repo_url: 'https://github.com/spytheman/v2048',
dependencies: []
}