Different solution for Gophercise 1

This commit is contained in:
2025-05-31 13:14:20 -04:00
parent b22ab92d79
commit 1da6e395bf
56 changed files with 3374 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
5+5,10
7+3,10
1+1,2
8+3,11
1+2,3
"Surname of 9th President of Turkey","Demirel"
3+1,4
1+4,5
5+1,6
"First name of first woman PM of UK","Margaret"
3+3,6
2+4,6
5+2,7
1 5+5 10
2 7+3 10
3 1+1 2
4 8+3 11
5 1+2 3
6 Surname of 9th President of Turkey Demirel
7 3+1 4
8 1+4 5
9 5+1 6
10 First name of first woman PM of UK Margaret
11 3+3 6
12 2+4 6
13 5+2 7

View File

@@ -0,0 +1,60 @@
package main
import (
"encoding/csv"
"flag"
"fmt"
"io/ioutil"
"log"
"path/filepath"
"strings"
"time"
)
func startTime(timer time.Timer, duration time.Duration) {
<-timer.C
fmt.Println(duration, "doldu")
}
func main() {
filename := flag.String("file", "problems.csv", "Questions file")
timelimit := flag.Int("time", 30, "Time limit of quiz in seconds")
flag.Parse()
filePath, pathErr := filepath.Abs(*filename)
if pathErr != nil {
log.Fatal("file not found. check if it exists again.")
}
remainTime := time.Duration(*timelimit) * time.Second
fmt.Println("Press return to start time (", remainTime, ")")
fmt.Scanln() //and time starts
timer := time.NewTimer(remainTime)
go startTime(*timer, remainTime)
csvF, csvErr := ioutil.ReadFile(filePath)
if csvErr != nil {
log.Fatal("error reading file: " + csvErr.Error())
}
probs, probErr := csv.NewReader(strings.NewReader(string(csvF))).ReadAll()
if probErr != nil {
log.Fatal("error on CSV format: " + probErr.Error())
}
var answer string
var trues, total int
for i, soru := range probs {
fmt.Printf("%d. soru: %s = ", i+1, soru[0])
fmt.Scan(&answer)
if answer == soru[1] {
trues++
}
total++
}
fmt.Printf("True answers: %d\n", trues)
fmt.Printf("Total questions: %d\n", total)
}