From 28b06df376a7ba643c96409a97c6519f1453b459 Mon Sep 17 00:00:00 2001 From: dadgam3er Date: Sun, 22 Sep 2024 01:11:19 -0400 Subject: [PATCH] newGo --- GuesstheNumber/Guess.go | 27 +++++++ GuesstheNumber/Makefile | 2 + GuesstheNumber/go.mod | 3 + .../.codecrafters/compile.sh | 11 --- .../.codecrafters/run.sh | 11 --- codecrafters-http-server-go/.gitattributes | 1 - codecrafters-http-server-go/README.md | 37 --------- codecrafters-http-server-go/app/server.go | 49 ------------ codecrafters-http-server-go/codecrafters.yml | 11 --- codecrafters-http-server-go/go.mod | 11 --- codecrafters-http-server-go/go.sum | 0 codecrafters-http-server-go/your_program.sh | 24 ------ .../.codecrafters/compile.sh | 11 --- codecrafters-sqlite-go/.codecrafters/run.sh | 11 --- codecrafters-sqlite-go/.gitattributes | 1 - codecrafters-sqlite-go/.gitignore | 2 - codecrafters-sqlite-go/README.md | 76 ------------------- codecrafters-sqlite-go/app/main.go | 61 --------------- codecrafters-sqlite-go/codecrafters.yml | 11 --- .../download_sample_databases.sh | 9 --- codecrafters-sqlite-go/go.mod | 13 ---- codecrafters-sqlite-go/go.sum | 2 - codecrafters-sqlite-go/your_program.sh | 24 ------ 23 files changed, 32 insertions(+), 376 deletions(-) create mode 100644 GuesstheNumber/Guess.go create mode 100644 GuesstheNumber/Makefile create mode 100644 GuesstheNumber/go.mod delete mode 100755 codecrafters-http-server-go/.codecrafters/compile.sh delete mode 100755 codecrafters-http-server-go/.codecrafters/run.sh delete mode 100644 codecrafters-http-server-go/.gitattributes delete mode 100644 codecrafters-http-server-go/README.md delete mode 100644 codecrafters-http-server-go/app/server.go delete mode 100644 codecrafters-http-server-go/codecrafters.yml delete mode 100644 codecrafters-http-server-go/go.mod delete mode 100644 codecrafters-http-server-go/go.sum delete mode 100755 codecrafters-http-server-go/your_program.sh delete mode 100755 codecrafters-sqlite-go/.codecrafters/compile.sh delete mode 100755 codecrafters-sqlite-go/.codecrafters/run.sh delete mode 100644 codecrafters-sqlite-go/.gitattributes delete mode 100644 codecrafters-sqlite-go/.gitignore delete mode 100644 codecrafters-sqlite-go/README.md delete mode 100644 codecrafters-sqlite-go/app/main.go delete mode 100644 codecrafters-sqlite-go/codecrafters.yml delete mode 100755 codecrafters-sqlite-go/download_sample_databases.sh delete mode 100644 codecrafters-sqlite-go/go.mod delete mode 100644 codecrafters-sqlite-go/go.sum delete mode 100755 codecrafters-sqlite-go/your_program.sh diff --git a/GuesstheNumber/Guess.go b/GuesstheNumber/Guess.go new file mode 100644 index 0000000..d76b14c --- /dev/null +++ b/GuesstheNumber/Guess.go @@ -0,0 +1,27 @@ +package main + +import ( + "fmt" + "math/rand" +) + +func main() { + tries := 1 + randNum := rand.Intn(10) + 1 // Generate a number between 1 and 10 + + for tries <= 5 { + var x int + fmt.Print("Guess a Number between 1 and 10: ") + fmt.Scan(&x) + + if randNum == x { + fmt.Println("That's great, you got the right number!") + return + } else { + fmt.Println("Guess again") + } + tries++ + } + + fmt.Printf("The right number was %d\n", randNum) +} diff --git a/GuesstheNumber/Makefile b/GuesstheNumber/Makefile new file mode 100644 index 0000000..bc9ad88 --- /dev/null +++ b/GuesstheNumber/Makefile @@ -0,0 +1,2 @@ +run: + go run Guess.go diff --git a/GuesstheNumber/go.mod b/GuesstheNumber/go.mod new file mode 100644 index 0000000..9e47add --- /dev/null +++ b/GuesstheNumber/go.mod @@ -0,0 +1,3 @@ +module gitea.zacksolutions.dev/Zakaria/LeanGo.git + +go 1.22.7 diff --git a/codecrafters-http-server-go/.codecrafters/compile.sh b/codecrafters-http-server-go/.codecrafters/compile.sh deleted file mode 100755 index 367db1d..0000000 --- a/codecrafters-http-server-go/.codecrafters/compile.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -# This script is used to compile your program on CodeCrafters -# -# This runs before .codecrafters/run.sh -# -# Learn more: https://codecrafters.io/program-interface - -set -e # Exit on failure - -go build -o /tmp/codecrafters-build-http-server-go app/*.go diff --git a/codecrafters-http-server-go/.codecrafters/run.sh b/codecrafters-http-server-go/.codecrafters/run.sh deleted file mode 100755 index 7eead76..0000000 --- a/codecrafters-http-server-go/.codecrafters/run.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -# This script is used to run your program on CodeCrafters -# -# This runs after .codecrafters/compile.sh -# -# Learn more: https://codecrafters.io/program-interface - -set -e # Exit on failure - -exec /tmp/codecrafters-build-http-server-go "$@" diff --git a/codecrafters-http-server-go/.gitattributes b/codecrafters-http-server-go/.gitattributes deleted file mode 100644 index 176a458..0000000 --- a/codecrafters-http-server-go/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto diff --git a/codecrafters-http-server-go/README.md b/codecrafters-http-server-go/README.md deleted file mode 100644 index b63a6cc..0000000 --- a/codecrafters-http-server-go/README.md +++ /dev/null @@ -1,37 +0,0 @@ -[![progress-banner](https://backend.codecrafters.io/progress/http-server/79632794-98f7-44ac-8abd-57a3a6fac4aa)](https://app.codecrafters.io/users/codecrafters-bot?r=2qF) - -This is a starting point for Go solutions to the -["Build Your Own HTTP server" Challenge](https://app.codecrafters.io/courses/http-server/overview). - -[HTTP](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol) is the -protocol that powers the web. In this challenge, you'll build a HTTP/1.1 server -that is capable of serving multiple clients. - -Along the way you'll learn about TCP servers, -[HTTP request syntax](https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html), -and more. - -**Note**: If you're viewing this repo on GitHub, head over to -[codecrafters.io](https://codecrafters.io) to try the challenge. - -# Passing the first stage - -The entry point for your HTTP server implementation is in `app/server.go`. Study -and uncomment the relevant code, and push your changes to pass the first stage: - -```sh -git commit -am "pass 1st stage" # any msg -git push origin master -``` - -Time to move on to the next stage! - -# Stage 2 & beyond - -Note: This section is for stages 2 and beyond. - -1. Ensure you have `go (1.19)` installed locally -1. Run `./your_program.sh` to run your program, which is implemented in - `app/server.go`. -1. Commit your changes and run `git push origin master` to submit your solution - to CodeCrafters. Test output will be streamed to your terminal. diff --git a/codecrafters-http-server-go/app/server.go b/codecrafters-http-server-go/app/server.go deleted file mode 100644 index 28ec8d0..0000000 --- a/codecrafters-http-server-go/app/server.go +++ /dev/null @@ -1,49 +0,0 @@ -package main - -import ( - "fmt" - "net" - "os" - "strings" -) - -type User struct { - email string - name string - age uint -} - -// Ensures gofmt doesn't remove the "net" and "os" imports above (feel free to remove this!) -var ( - _ = net.Listen - _ = os.Exit -) - -func main() { - // You can use print statements as follows for debugging, they'll be visible when running tests. - fmt.Println("Logs from your program will appear here!") - - // Uncomment this block to pass the first stage - - l, err := net.Listen("tcp", "0.0.0.0:4221") - if err != nil { - fmt.Println("Failed to bind to port 4221") - os.Exit(1) - } - defer l.Close() - conn, err := l.Accept() - if err != nil { - fmt.Println("Error accepting connection: ", err.Error()) - os.Exit(1) - } - req := make([]byte, 1024) - - conn.Read(req) - - if !strings.HasPrefix(string(req), "GET / HTTP/1.1") { - conn.Write([]byte("HTTP/1.1 404 Not Found\r\n\r\n")) - conn.Close() - return - } - conn.Write([]byte("HTTP/1.1 200 OK\r\n\r\n")) -} diff --git a/codecrafters-http-server-go/codecrafters.yml b/codecrafters-http-server-go/codecrafters.yml deleted file mode 100644 index 77886cf..0000000 --- a/codecrafters-http-server-go/codecrafters.yml +++ /dev/null @@ -1,11 +0,0 @@ -# Set this to true if you want debug logs. -# -# These can be VERY verbose, so we suggest turning them off -# unless you really need them. -debug: false - -# Use this to change the Go version used to run your code -# on Codecrafters. -# -# Available versions: go-1.22 -language_pack: go-1.22 diff --git a/codecrafters-http-server-go/go.mod b/codecrafters-http-server-go/go.mod deleted file mode 100644 index 28bcc97..0000000 --- a/codecrafters-http-server-go/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -// DON'T EDIT THIS! -// -// Codecrafters relies on this file being intact to run tests successfully. Any changes -// here will not reflect when CodeCrafters tests your code, and might even cause build -// failures. -// -// DON'T EDIT THIS! - -module github.com/codecrafters-io/http-server-starter-go - -go 1.22 \ No newline at end of file diff --git a/codecrafters-http-server-go/go.sum b/codecrafters-http-server-go/go.sum deleted file mode 100644 index e69de29..0000000 diff --git a/codecrafters-http-server-go/your_program.sh b/codecrafters-http-server-go/your_program.sh deleted file mode 100755 index ad01720..0000000 --- a/codecrafters-http-server-go/your_program.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# -# Use this script to run your program LOCALLY. -# -# Note: Changing this script WILL NOT affect how CodeCrafters runs your program. -# -# Learn more: https://codecrafters.io/program-interface - -set -e # Exit early if any commands fail - -# Copied from .codecrafters/compile.sh -# -# - Edit this to change how your program compiles locally -# - Edit .codecrafters/compile.sh to change how your program compiles remotely -( - cd "$(dirname "$0")" # Ensure compile steps are run within the repository directory - go build -o /tmp/codecrafters-build-http-server-go app/*.go -) - -# Copied from .codecrafters/run.sh -# -# - Edit this to change how your program runs locally -# - Edit .codecrafters/run.sh to change how your program runs remotely -exec /tmp/codecrafters-build-http-server-go "$@" diff --git a/codecrafters-sqlite-go/.codecrafters/compile.sh b/codecrafters-sqlite-go/.codecrafters/compile.sh deleted file mode 100755 index abe1659..0000000 --- a/codecrafters-sqlite-go/.codecrafters/compile.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -# This script is used to compile your program on CodeCrafters -# -# This runs before .codecrafters/run.sh -# -# Learn more: https://codecrafters.io/program-interface - -set -e # Exit on failure - -go build -o /tmp/codecrafters-build-sqlite-go app/*.go diff --git a/codecrafters-sqlite-go/.codecrafters/run.sh b/codecrafters-sqlite-go/.codecrafters/run.sh deleted file mode 100755 index 39547b9..0000000 --- a/codecrafters-sqlite-go/.codecrafters/run.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -# This script is used to run your program on CodeCrafters -# -# This runs after .codecrafters/compile.sh -# -# Learn more: https://codecrafters.io/program-interface - -set -e # Exit on failure - -exec /tmp/codecrafters-build-sqlite-go "$@" diff --git a/codecrafters-sqlite-go/.gitattributes b/codecrafters-sqlite-go/.gitattributes deleted file mode 100644 index 176a458..0000000 --- a/codecrafters-sqlite-go/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto diff --git a/codecrafters-sqlite-go/.gitignore b/codecrafters-sqlite-go/.gitignore deleted file mode 100644 index db38cf4..0000000 --- a/codecrafters-sqlite-go/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Database files used for testing -*.db diff --git a/codecrafters-sqlite-go/README.md b/codecrafters-sqlite-go/README.md deleted file mode 100644 index c730c67..0000000 --- a/codecrafters-sqlite-go/README.md +++ /dev/null @@ -1,76 +0,0 @@ -[![progress-banner](https://backend.codecrafters.io/progress/sqlite/48f6806f-f61a-405d-aca7-6fde3bb6d8b1)](https://app.codecrafters.io/users/codecrafters-bot?r=2qF) - -This is a starting point for Go solutions to the -["Build Your Own SQLite" Challenge](https://codecrafters.io/challenges/sqlite). - -In this challenge, you'll build a barebones SQLite implementation that supports -basic SQL queries like `SELECT`. Along the way we'll learn about -[SQLite's file format](https://www.sqlite.org/fileformat.html), how indexed data -is -[stored in B-trees](https://jvns.ca/blog/2014/10/02/how-does-sqlite-work-part-2-btrees/) -and more. - -**Note**: If you're viewing this repo on GitHub, head over to -[codecrafters.io](https://codecrafters.io) to try the challenge. - -# Passing the first stage - -The entry point for your SQLite implementation is in `app/main.go`. Study and -uncomment the relevant code, and push your changes to pass the first stage: - -```sh -git commit -am "pass 1st stage" # any msg -git push origin master -``` - -Time to move on to the next stage! - -# Stage 2 & beyond - -Note: This section is for stages 2 and beyond. - -1. Ensure you have `go (1.16+)` installed locally -1. Run `./your_program.sh` to run your program, which is implemented in - `app/main.go`. -1. Commit your changes and run `git push origin master` to submit your solution - to CodeCrafters. Test output will be streamed to your terminal. - -# Sample Databases - -To make it easy to test queries locally, we've added a sample database in the -root of this repository: `sample.db`. - -This contains two tables: `apples` & `oranges`. You can use this to test your -implementation for the first 6 stages. - -You can explore this database by running queries against it like this: - -```sh -$ sqlite3 sample.db "select id, name from apples" -1|Granny Smith -2|Fuji -3|Honeycrisp -4|Golden Delicious -``` - -There are two other databases that you can use: - -1. `superheroes.db`: - - This is a small version of the test database used in the table-scan stage. - - It contains one table: `superheroes`. - - It is ~1MB in size. -1. `companies.db`: - - This is a small version of the test database used in the index-scan stage. - - It contains one table: `companies`, and one index: `idx_companies_country` - - It is ~7MB in size. - -These aren't included in the repository because they're large in size. You can -download them by running this script: - -```sh -./download_sample_databases.sh -``` - -If the script doesn't work for some reason, you can download the databases -directly from -[codecrafters-io/sample-sqlite-databases](https://github.com/codecrafters-io/sample-sqlite-databases). diff --git a/codecrafters-sqlite-go/app/main.go b/codecrafters-sqlite-go/app/main.go deleted file mode 100644 index 79eb2aa..0000000 --- a/codecrafters-sqlite-go/app/main.go +++ /dev/null @@ -1,61 +0,0 @@ -package main - -import ( - "bytes" - "encoding/binary" - "fmt" - "log" - "os" - "regexp" - // Available if you need it! - // "github.com/xwb1989/sqlparser" -) - -// Usage: your_program.sh sample.db .dbinfo -func main() { - databaseFilePath := os.Args[1] - command := os.Args[2] - - switch command { - case ".dbinfo": - databaseFile, err := os.Open(databaseFilePath) - if err != nil { - log.Fatal(err) - } - - header := make([]byte, 100) - - _, err = databaseFile.Read(header) - if err != nil { - log.Fatal(err) - } - - var pageSize uint16 - if err := binary.Read(bytes.NewReader(header[16:18]), binary.BigEndian, &pageSize); err != nil { - fmt.Println("Failed to read integer:", err) - return - } - // You can use print statements as follows for debugging, they'll be visible when running tests. - fmt.Println("Logs from your program will appear here!") - - // Uncomment this to pass the first stage - fmt.Printf("database page size: %v", pageSize) - schemaBuffer := make([]byte, pageSize) - - _, err = databaseFile.Read(schemaBuffer) - if err != nil { - log.Fatal(err) - } - - re, _ := regexp.Compile("CREATE TABLE") - - tables := re.FindAll(schemaBuffer, -1) - - fmt.Printf("database page size: %v\n", pageSize) - - fmt.Printf("number of tables: %v\n", len(tables)) - default: - fmt.Println("Unknown command", command) - os.Exit(1) - } -} diff --git a/codecrafters-sqlite-go/codecrafters.yml b/codecrafters-sqlite-go/codecrafters.yml deleted file mode 100644 index 77886cf..0000000 --- a/codecrafters-sqlite-go/codecrafters.yml +++ /dev/null @@ -1,11 +0,0 @@ -# Set this to true if you want debug logs. -# -# These can be VERY verbose, so we suggest turning them off -# unless you really need them. -debug: false - -# Use this to change the Go version used to run your code -# on Codecrafters. -# -# Available versions: go-1.22 -language_pack: go-1.22 diff --git a/codecrafters-sqlite-go/download_sample_databases.sh b/codecrafters-sqlite-go/download_sample_databases.sh deleted file mode 100755 index 03e0573..0000000 --- a/codecrafters-sqlite-go/download_sample_databases.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -echo "Downloading superheroes.db: ~1MB (used in stage 7)" -curl -Lo superheroes.db https://raw.githubusercontent.com/codecrafters-io/sample-sqlite-databases/master/superheroes.db - -echo "Downloading companies.db: ~7MB (used in stage 8)" -curl -Lo companies.db https://raw.githubusercontent.com/codecrafters-io/sample-sqlite-databases/master/companies.db - -echo "Sample databases downloaded." diff --git a/codecrafters-sqlite-go/go.mod b/codecrafters-sqlite-go/go.mod deleted file mode 100644 index 360fb15..0000000 --- a/codecrafters-sqlite-go/go.mod +++ /dev/null @@ -1,13 +0,0 @@ -// DON'T EDIT THIS! -// -// Codecrafters relies on this file being intact to run tests successfully. Any changes -// here will not reflect when CodeCrafters tests your code, and might even cause build -// failures. -// -// DON'T EDIT THIS! - -module github/com/codecrafters-io/sqlite-starter-go - -go 1.22 - -require github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 diff --git a/codecrafters-sqlite-go/go.sum b/codecrafters-sqlite-go/go.sum deleted file mode 100644 index 6354a21..0000000 --- a/codecrafters-sqlite-go/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 h1:zzrxE1FKn5ryBNl9eKOeqQ58Y/Qpo3Q9QNxKHX5uzzQ= -github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2/go.mod h1:hzfGeIUDq/j97IG+FhNqkowIyEcD88LrW6fyU3K3WqY= diff --git a/codecrafters-sqlite-go/your_program.sh b/codecrafters-sqlite-go/your_program.sh deleted file mode 100755 index a68b4ee..0000000 --- a/codecrafters-sqlite-go/your_program.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# -# Use this script to run your program LOCALLY. -# -# Note: Changing this script WILL NOT affect how CodeCrafters runs your program. -# -# Learn more: https://codecrafters.io/program-interface - -set -e # Exit early if any commands fail - -# Copied from .codecrafters/compile.sh -# -# - Edit this to change how your program compiles locally -# - Edit .codecrafters/compile.sh to change how your program compiles remotely -( - cd "$(dirname "$0")" # Ensure compile steps are run within the repository directory - go build -o /tmp/codecrafters-build-sqlite-go app/*.go -) - -# Copied from .codecrafters/run.sh -# -# - Edit this to change how your program runs locally -# - Edit .codecrafters/run.sh to change how your program runs remotely -exec /tmp/codecrafters-build-sqlite-go "$@"