From 8f1f03cf3b088c6ec8a20a4a7dd0dd12e817ef72 Mon Sep 17 00:00:00 2001 From: Emre Kaplan Date: Wed, 29 Aug 2018 10:52:32 +0300 Subject: [PATCH 1/3] Solution for part 1 --- students/emrekp/problems.csv | 13 ++++++++++++ students/emrekp/quiz.go | 41 ++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 students/emrekp/problems.csv create mode 100644 students/emrekp/quiz.go diff --git a/students/emrekp/problems.csv b/students/emrekp/problems.csv new file mode 100644 index 0000000..3f2a19b --- /dev/null +++ b/students/emrekp/problems.csv @@ -0,0 +1,13 @@ +5+5,10 +7+3,10 +1+1,2 +8+3,11 +1+2,3 +"Türkiye 9. cumhurbaşkanı soyadı","Demirel" +3+1,4 +1+4,5 +5+1,6 +"İngiltere kadın başbakanı ilk adı","Margaret" +3+3,6 +2+4,6 +5+2,7 diff --git a/students/emrekp/quiz.go b/students/emrekp/quiz.go new file mode 100644 index 0000000..44789b7 --- /dev/null +++ b/students/emrekp/quiz.go @@ -0,0 +1,41 @@ +package main + +import ( + "encoding/csv" + "flag" + "fmt" + "io/ioutil" + "log" + "strings" +) + +func main() { + filename := flag.String("file", "problems.csv", "Questions file") + flag.Parse() + + csvF, csvErr := ioutil.ReadFile(*filename) + if csvErr != nil { + log.Fatal("Dosya bulunamadı veya bir sıkıntısı var. Detay: " + csvErr.Error()) + } + + probs, probErr := csv.NewReader(strings.NewReader(string(csvF))).ReadAll() + if probErr != nil { + log.Fatal("CSV düzgün formatlanmamış. Detay: " + 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++ + //log.Fatal(answer + " Cevap " + soru[1]) + } + total++ + } + + fmt.Printf("True answers: %d\n", trues) + fmt.Printf("Total questions: %d\n", total) +} From ee5ec40ef85962e5fdc837355cbb6437de90e7df Mon Sep 17 00:00:00 2001 From: Emre Kaplan Date: Wed, 29 Aug 2018 15:20:17 +0300 Subject: [PATCH 2/3] Solution for part 2 --- students/emrekp/quiz.go | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/students/emrekp/quiz.go b/students/emrekp/quiz.go index 44789b7..ae855a5 100644 --- a/students/emrekp/quiz.go +++ b/students/emrekp/quiz.go @@ -6,21 +6,41 @@ import ( "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() - csvF, csvErr := ioutil.ReadFile(*filename) + 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("Dosya bulunamadı veya bir sıkıntısı var. Detay: " + csvErr.Error()) + log.Fatal("error reading file: " + csvErr.Error()) } probs, probErr := csv.NewReader(strings.NewReader(string(csvF))).ReadAll() if probErr != nil { - log.Fatal("CSV düzgün formatlanmamış. Detay: " + probErr.Error()) + log.Fatal("error on CSV format: " + probErr.Error()) } var answer string @@ -31,7 +51,6 @@ func main() { fmt.Scan(&answer) if answer == soru[1] { trues++ - //log.Fatal(answer + " Cevap " + soru[1]) } total++ } From 00d03014cd0ab833c11f2cf913e618692dad4842 Mon Sep 17 00:00:00 2001 From: Emre Kaplan Date: Wed, 29 Aug 2018 15:22:48 +0300 Subject: [PATCH 3/3] Translated questions to English --- students/emrekp/problems.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/students/emrekp/problems.csv b/students/emrekp/problems.csv index 3f2a19b..948e377 100644 --- a/students/emrekp/problems.csv +++ b/students/emrekp/problems.csv @@ -3,11 +3,11 @@ 1+1,2 8+3,11 1+2,3 -"Türkiye 9. cumhurbaşkanı soyadı","Demirel" +"Surname of 9th President of Turkey","Demirel" 3+1,4 1+4,5 5+1,6 -"İngiltere kadın başbakanı ilk adı","Margaret" +"First name of first woman PM of UK","Margaret" 3+3,6 2+4,6 5+2,7