diff --git a/kadai1/convert/conver.go b/kadai1/convert/conver.go new file mode 100644 index 00000000..943470c4 --- /dev/null +++ b/kadai1/convert/conver.go @@ -0,0 +1,75 @@ +package convert + +import ( + "fmt" + "image" + "image/gif" + _ "image/jpeg" + "image/png" + "io/ioutil" + "os" + "path/filepath" +) + +//再帰的にファイルを読み込む +func GetAllFile(pathname string, ipt []string) ([]string, error) { + rd, err := ioutil.ReadDir(pathname) + if err != nil { + fmt.Println("Failed to read dir:", err) + return ipt, err + } + for _, fi := range rd { + if fi.IsDir() { + fullDir := pathname + "/" + fi.Name() + ipt, err = GetAllFile(fullDir, ipt) + if err != nil { + fmt.Println("Failed to read dir:", err) + return ipt, err + } + } else { + fullName := pathname + "/" + fi.Name() + ipt = append(ipt, fullName) + } + } + return ipt, nil +} + +//画像の形式を変換する +func Conv(ipt, opt string) (s string, err error) { + s1 := "right" + file, err := os.Open(ipt) + if err != nil { + return s1, err + } + //assert(err, "Invalid image file path ") + defer file.Close() + + img, _, err := image.Decode(file) + if err != nil { + return s1, err + } + //assert(err, "Failed to convert file to image.") + + out, err := os.Create(opt) + if err != nil { + return s1, err + } + defer out.Close() + + switch filepath.Ext(opt) { + case ".png": + err = png.Encode(out, img) + case ".gif": + err = gif.Encode(out, img, nil) + } + if err != nil { + return s1, err + } + return s1, nil +} + +//func assert(err error, msg string) { +// if err != nil { +// panic(err.Error() + ":" + msg) +// } +//} diff --git a/kadai1/convert/conver_test.go b/kadai1/convert/conver_test.go new file mode 100644 index 00000000..c3dc11f4 --- /dev/null +++ b/kadai1/convert/conver_test.go @@ -0,0 +1,47 @@ +package convert + +import ( + "convert" + "path/filepath" + "testing" +) + +func TestAllfile(t *testing.T) { + t.Helper() + var s []string + output, _ := GetAllFile("./img", s) + if len(output) != 15 { + t.Errorf("Image file does not complete readed,expected 15,but %v ", len(output)) //画像の枚数が違う + } +} + +func TestTableAllfile(t *testing.T) { + t.Helper() + var s []string + var tests = []struct { + pathinput string + expect int + }{ + {"./img/img_test1", 3}, + {"./img/img_test2", 4}, + {"./img/img_test3", 5}, + } + for _, te := range tests { + output, _ := GetAllFile(te.pathinput, s) + if len(output) != te.expect { + t.Errorf("Image file does not complete readed,expected %v,but %v ", tests[1], len(output)) //画像の枚数が違う + } + } +} + +func TestConv(t *testing.T) { + t.Helper() + err := convert.Conv("./img/1.0.jpg", "./img/1.0.png") + if err != nil { + t.Errorf("error happened %v", err) + } + matches, _ := filepath.Glob("./img/*.png") + if matches == nil { + t.Errorf("Image file does not converted %v", matches) + } +} diff --git a/kadai1/convert/img/1.0.jpg b/kadai1/convert/img/1.0.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/1.0.jpg differ diff --git a/kadai1/convert/img/1.1.jpg b/kadai1/convert/img/1.1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/1.1.jpg differ diff --git a/kadai1/convert/img/1.2.jpg b/kadai1/convert/img/1.2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/1.2.jpg differ diff --git a/kadai1/convert/img/img_test1/1.jpg b/kadai1/convert/img/img_test1/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test1/1.jpg differ diff --git a/kadai1/convert/img/img_test1/2.jpg b/kadai1/convert/img/img_test1/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test1/2.jpg differ diff --git a/kadai1/convert/img/img_test1/3.jpg b/kadai1/convert/img/img_test1/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test1/3.jpg differ diff --git a/kadai1/convert/img/img_test2/1.jpg b/kadai1/convert/img/img_test2/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test2/1.jpg differ diff --git a/kadai1/convert/img/img_test2/2.jpg b/kadai1/convert/img/img_test2/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test2/2.jpg differ diff --git a/kadai1/convert/img/img_test2/3.jpg b/kadai1/convert/img/img_test2/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test2/3.jpg differ diff --git a/kadai1/convert/img/img_test2/4.jpg b/kadai1/convert/img/img_test2/4.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test2/4.jpg differ diff --git a/kadai1/convert/img/img_test3/1.jpg b/kadai1/convert/img/img_test3/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test3/1.jpg differ diff --git a/kadai1/convert/img/img_test3/2.jpg b/kadai1/convert/img/img_test3/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test3/2.jpg differ diff --git a/kadai1/convert/img/img_test3/3.jpg b/kadai1/convert/img/img_test3/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test3/3.jpg differ diff --git a/kadai1/convert/img/img_test3/4.jpg b/kadai1/convert/img/img_test3/4.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test3/4.jpg differ diff --git a/kadai1/convert/img/img_test3/5.jpg b/kadai1/convert/img/img_test3/5.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/convert/img/img_test3/5.jpg differ diff --git a/kadai1/go.mod b/kadai1/go.mod new file mode 100644 index 00000000..ea118c73 --- /dev/null +++ b/kadai1/go.mod @@ -0,0 +1,3 @@ +module image.go + +go 1.16 diff --git a/kadai1/img/1.0.jpg b/kadai1/img/1.0.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/img/1.0.jpg differ diff --git a/kadai1/img/1.1.jpg b/kadai1/img/1.1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/img/1.1.jpg differ diff --git a/kadai1/img/1.2.jpg b/kadai1/img/1.2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/img/1.2.jpg differ diff --git a/kadai1/img/img_test/1.jpg b/kadai1/img/img_test/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/img/img_test/1.jpg differ diff --git a/kadai1/img/img_test/2.jpg b/kadai1/img/img_test/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/img/img_test/2.jpg differ diff --git a/kadai1/img/img_test/3.jpg b/kadai1/img/img_test/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai1/img/img_test/3.jpg differ diff --git a/kadai1/main.go b/kadai1/main.go new file mode 100644 index 00000000..9219dbb9 --- /dev/null +++ b/kadai1/main.go @@ -0,0 +1,39 @@ +/*This is a training code for learning Go language. +And this code can change the format of images as you like*/ +package main + +import ( + "bufio" + "convert" + "fmt" + "os" + "strings" +) + +type oriPath struct { + inputPA string + outputPA string +} + +func main() { + var a oriPath + a.inputPA = "./img" + a.outputPA = "./img" + scanner := bufio.NewScanner(os.Stdin) + fmt.Print("Input the image format you want(like png or gif):") + if !scanner.Scan() { + fmt.Println("Please input the format.") + return + } + srcPath := scanner.Text() + + var s []string + s, _ = convert.GetAllFile(a.inputPA, s) + for _, i := range s { + j := strings.Replace(i, "jpg", srcPath, -1) //jpgから任意の形式へ変換する + err := convert.Conv(i, j) + if err != nil { + fmt.Fprintf(os.Stderr, "%s\n", err.Error()) + } + } +} diff --git a/kadai2/convert/conver.go b/kadai2/convert/conver.go new file mode 100644 index 00000000..943470c4 --- /dev/null +++ b/kadai2/convert/conver.go @@ -0,0 +1,75 @@ +package convert + +import ( + "fmt" + "image" + "image/gif" + _ "image/jpeg" + "image/png" + "io/ioutil" + "os" + "path/filepath" +) + +//再帰的にファイルを読み込む +func GetAllFile(pathname string, ipt []string) ([]string, error) { + rd, err := ioutil.ReadDir(pathname) + if err != nil { + fmt.Println("Failed to read dir:", err) + return ipt, err + } + for _, fi := range rd { + if fi.IsDir() { + fullDir := pathname + "/" + fi.Name() + ipt, err = GetAllFile(fullDir, ipt) + if err != nil { + fmt.Println("Failed to read dir:", err) + return ipt, err + } + } else { + fullName := pathname + "/" + fi.Name() + ipt = append(ipt, fullName) + } + } + return ipt, nil +} + +//画像の形式を変換する +func Conv(ipt, opt string) (s string, err error) { + s1 := "right" + file, err := os.Open(ipt) + if err != nil { + return s1, err + } + //assert(err, "Invalid image file path ") + defer file.Close() + + img, _, err := image.Decode(file) + if err != nil { + return s1, err + } + //assert(err, "Failed to convert file to image.") + + out, err := os.Create(opt) + if err != nil { + return s1, err + } + defer out.Close() + + switch filepath.Ext(opt) { + case ".png": + err = png.Encode(out, img) + case ".gif": + err = gif.Encode(out, img, nil) + } + if err != nil { + return s1, err + } + return s1, nil +} + +//func assert(err error, msg string) { +// if err != nil { +// panic(err.Error() + ":" + msg) +// } +//} diff --git a/kadai2/convert/conver_test.go b/kadai2/convert/conver_test.go new file mode 100644 index 00000000..c3dc11f4 --- /dev/null +++ b/kadai2/convert/conver_test.go @@ -0,0 +1,47 @@ +package convert + +import ( + "convert" + "path/filepath" + "testing" +) + +func TestAllfile(t *testing.T) { + t.Helper() + var s []string + output, _ := GetAllFile("./img", s) + if len(output) != 15 { + t.Errorf("Image file does not complete readed,expected 15,but %v ", len(output)) //画像の枚数が違う + } +} + +func TestTableAllfile(t *testing.T) { + t.Helper() + var s []string + var tests = []struct { + pathinput string + expect int + }{ + {"./img/img_test1", 3}, + {"./img/img_test2", 4}, + {"./img/img_test3", 5}, + } + for _, te := range tests { + output, _ := GetAllFile(te.pathinput, s) + if len(output) != te.expect { + t.Errorf("Image file does not complete readed,expected %v,but %v ", tests[1], len(output)) //画像の枚数が違う + } + } +} + +func TestConv(t *testing.T) { + t.Helper() + err := convert.Conv("./img/1.0.jpg", "./img/1.0.png") + if err != nil { + t.Errorf("error happened %v", err) + } + matches, _ := filepath.Glob("./img/*.png") + if matches == nil { + t.Errorf("Image file does not converted %v", matches) + } +} diff --git a/kadai2/convert/img/1.0.jpg b/kadai2/convert/img/1.0.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/1.0.jpg differ diff --git a/kadai2/convert/img/1.1.jpg b/kadai2/convert/img/1.1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/1.1.jpg differ diff --git a/kadai2/convert/img/1.2.jpg b/kadai2/convert/img/1.2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/1.2.jpg differ diff --git a/kadai2/convert/img/img_test1/1.jpg b/kadai2/convert/img/img_test1/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test1/1.jpg differ diff --git a/kadai2/convert/img/img_test1/2.jpg b/kadai2/convert/img/img_test1/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test1/2.jpg differ diff --git a/kadai2/convert/img/img_test1/3.jpg b/kadai2/convert/img/img_test1/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test1/3.jpg differ diff --git a/kadai2/convert/img/img_test2/1.jpg b/kadai2/convert/img/img_test2/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test2/1.jpg differ diff --git a/kadai2/convert/img/img_test2/2.jpg b/kadai2/convert/img/img_test2/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test2/2.jpg differ diff --git a/kadai2/convert/img/img_test2/3.jpg b/kadai2/convert/img/img_test2/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test2/3.jpg differ diff --git a/kadai2/convert/img/img_test2/4.jpg b/kadai2/convert/img/img_test2/4.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test2/4.jpg differ diff --git a/kadai2/convert/img/img_test3/1.jpg b/kadai2/convert/img/img_test3/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test3/1.jpg differ diff --git a/kadai2/convert/img/img_test3/2.jpg b/kadai2/convert/img/img_test3/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test3/2.jpg differ diff --git a/kadai2/convert/img/img_test3/3.jpg b/kadai2/convert/img/img_test3/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test3/3.jpg differ diff --git a/kadai2/convert/img/img_test3/4.jpg b/kadai2/convert/img/img_test3/4.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test3/4.jpg differ diff --git a/kadai2/convert/img/img_test3/5.jpg b/kadai2/convert/img/img_test3/5.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/convert/img/img_test3/5.jpg differ diff --git a/kadai2/go.mod b/kadai2/go.mod new file mode 100644 index 00000000..ea118c73 --- /dev/null +++ b/kadai2/go.mod @@ -0,0 +1,3 @@ +module image.go + +go 1.16 diff --git a/kadai2/img/1.0.jpg b/kadai2/img/1.0.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/img/1.0.jpg differ diff --git a/kadai2/img/1.1.jpg b/kadai2/img/1.1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/img/1.1.jpg differ diff --git a/kadai2/img/1.2.jpg b/kadai2/img/1.2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/img/1.2.jpg differ diff --git a/kadai2/img/img_test/1.jpg b/kadai2/img/img_test/1.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/img/img_test/1.jpg differ diff --git a/kadai2/img/img_test/2.jpg b/kadai2/img/img_test/2.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/img/img_test/2.jpg differ diff --git a/kadai2/img/img_test/3.jpg b/kadai2/img/img_test/3.jpg new file mode 100644 index 00000000..b168a75b Binary files /dev/null and b/kadai2/img/img_test/3.jpg differ diff --git a/kadai2/main.go b/kadai2/main.go new file mode 100644 index 00000000..9219dbb9 --- /dev/null +++ b/kadai2/main.go @@ -0,0 +1,39 @@ +/*This is a training code for learning Go language. +And this code can change the format of images as you like*/ +package main + +import ( + "bufio" + "convert" + "fmt" + "os" + "strings" +) + +type oriPath struct { + inputPA string + outputPA string +} + +func main() { + var a oriPath + a.inputPA = "./img" + a.outputPA = "./img" + scanner := bufio.NewScanner(os.Stdin) + fmt.Print("Input the image format you want(like png or gif):") + if !scanner.Scan() { + fmt.Println("Please input the format.") + return + } + srcPath := scanner.Text() + + var s []string + s, _ = convert.GetAllFile(a.inputPA, s) + for _, i := range s { + j := strings.Replace(i, "jpg", srcPath, -1) //jpgから任意の形式へ変換する + err := convert.Conv(i, j) + if err != nil { + fmt.Fprintf(os.Stderr, "%s\n", err.Error()) + } + } +} diff --git a/kadai3-1/go.mod b/kadai3-1/go.mod new file mode 100644 index 00000000..304c88f7 --- /dev/null +++ b/kadai3-1/go.mod @@ -0,0 +1,3 @@ +module main.go + +go 1.16 diff --git a/kadai3-1/main.go b/kadai3-1/main.go new file mode 100644 index 00000000..d642f376 --- /dev/null +++ b/kadai3-1/main.go @@ -0,0 +1,96 @@ +package main + +import ( + "bufio" + "encoding/csv" + "flag" + "fmt" + "io" + "log" + "math/rand" + "os" + "time" +) + +var t int +var wordsPath = "./word.csv" + +//制限時間をオプションにする +func init() { + flag.IntVar(&t, "t", 20, "制限時間s") + flag.Parse() +} + +func main() { + fmt.Println("タイピングゲームが始まった!制限時間", t, "s") + num, score := 0, 0 + timeout := time.After(time.Second * time.Duration(t)) + for sign := true; sign == true; { + word := RandomWord() + num++ + fmt.Println("単語NO:", num, "この英単語をタイピングしてください:", word) + c := imp(os.Stdin) + select { + case right := <-c: + if right == word { + fmt.Println("正解です!") + score++ + } else { + fmt.Println("残念、不正解です。") + } + case <-timeout: + fmt.Println("時間です!") + sign = false + } + } + fmt.Println("ゲーム終了! やった単語数", num, " 時間内に正確単語数:", score) +} + +//英単語をランダムに取り出す +func RandomWord() (word string) { + words, err := readCSV(wordsPath) + if err != nil { + panic(err) + } + rand.Seed(time.Now().Unix()) + num := rand.Intn(len(words)) + return words[num] +} + +//入力単語を取得する +func imp(r io.Reader) <-chan string { + wordCh := make(chan string, 1) + scanner := bufio.NewScanner(r) + scanner.Scan() + wordCh <- scanner.Text() + //close(wordCh) + return wordCh +} + +func readCSV(path string) ([]string, error) { + var ret []string + var row []string + file, err := os.Open(path) + if err != nil { + return nil, err + } + + defer func() { + if err = file.Close(); err != nil { + log.Fatal(err) + } + }() + + csvFile := csv.NewReader(file) + csvFile.TrimLeadingSpace = true + + for { + row, err = csvFile.Read() + if err != nil { + break + } + ret = append(ret, row...) + } + + return ret, nil +} diff --git a/kadai3-1/main_test.go b/kadai3-1/main_test.go new file mode 100644 index 00000000..e33aa9c2 --- /dev/null +++ b/kadai3-1/main_test.go @@ -0,0 +1,12 @@ +package main + +import ( + "testing" +) + +func TestRandomWord(t *testing.T) { + word := RandomWord() + if word == nil { + t.Error("文字取り出さない") + } +} diff --git a/kadai3-1/word.csv b/kadai3-1/word.csv new file mode 100644 index 00000000..09226241 --- /dev/null +++ b/kadai3-1/word.csv @@ -0,0 +1 @@ +format,America,American,Angle,April,August,Bacon,Barber,Battery,Bible,Bill,Bush,Cage,Chinese,Christ,Christmas,Coward,Crane,Crow,December,Earnest,Echo,England,English,Eve,February,Forth,Fox,Frank,French,Friday,Grace,Grant,Gray,Ham,Hardy,Host,Hunt,January,Japan,Japanese,July,June,Lamb,Lily,London,March,Mass,Mat,Mill,Monday,Mrs,Ms,November,October,Pan,Pat,Poll,Pound,Punch,Ray,Rich,Rob,Rugby,Saturday,September,Singer,Spark,Sunday,Superior,Swift,Thursday,Tuesday,Turkey,Violet,Wednesday,absence,absolute,abstract,abuse,accent,access,accident,accord,achievement,acid,acre,active,addition,administration,admiration,admission,advance,advantage,adventure,advertisement,advice,affair,agency,agreement,aid,aim,alarm,alphabet,altogether,ambition,analysis,ancient,anxiety,appeal,appearance,application,appointment,approach,argument,army,arrangement,arrival,ash,aspect,assembly,assignment,association,assumption,atmosphere,atom,attraction,audience,authority,average,ax,background,baggage,balance,ballet,bank,banker,basic,bathe,battery,battle,bay,bean,bear,beast,beat,beauty,beef,beer,belief,bench,bend,benefit,billion,bind,birth,biscuit,bite,bitter,blade,blanket,bloom,blossom,blow,boil,bomb,bond,bone,border,bother,bowl,brain,brake,brass,breadth,breath,breeze,brick,brief,brilliant,broad,bronze,brow,brush,bubble,bucket,bug,bull,burden,burn,bush,butterfly,button,cabbage,cable,calf,calm,camel,camp,cancel,cancer,candy,cane,canvas,capacity,capital,capture,carbon,career,cargo,carpet,carriage,carrot,cast,casual,cattle,caution,celebration,cent,cereal,ceremony,certainty,chain,chalk,channel,chapel,character,charge,charity,charm,chart,chase,cheat,cheek,cheer,cheese,cherry,chew,chicken,chip,chocolate,chorus,cinema,circumstance,civilization,classic,clip,cloth,coach,coal,coast,cocktail,cocoa,coin,collapse,collection,college,colony,comb,combination,comedy,comfort,comic,command,comment,commission,communication,community,companion,comparison,competition,complaint,composition,concentration,conception,concern,concert,conclusion,concrete,conference,confidence,congress,connection,conscious,consciousness,consequence,consideration,constitution,construction,content,continent,contract,contrary,contrast,contribution,convenience,convention,conversation,conviction,copper,cord,core,corn,correction,costume,cough,countryside,county,courage,crack,craft,crane,crawl,creation,credit,crime,criticism,crop,crossing,crown,crush,crystal,cure,curiosity,curl,current,curse,curtain,custom,damage,damn,danger,dash,dawn,daylight,daytime,debate,debt,decrease,deer,defeat,defense,definition,degree,delay,delicious,delight,delivery,demand,democracy,demonstration,density,departure,deposit,depression,depth,description,desert,design,desire,destiny,detail,determination,development,devil,diamond,diet,difficulty,dig,dignity,dip,direction,disadvantage,disappointment,disaster,discipline,discovery,display,disposal,dispute,distinction,distribution,division,divorce,doctrine,domestic,double,doubt,downstairs,dozen,draft,drag,dragon,drama,drawing,drift,drill,duck,dust,duty,dynamic,eagle,earnest,economics,economy,education,eighteenth,eighth,elect,election,electric,element,eleventh,emotion,emphasis,empire,employment,engagement,enterprise,entertainment,enthusiasm,entrance,entry,environment,error,escape,essence,establishment,estate,eternal,eve,evidence,evil,examination,exception,excess,exchange,excitement,excuse,executive,exhaust,exhibition,existence,expansion,expectation,expedition,expenditure,expense,experiment,explosion,export,exposure,express,expression,extension,extent,external,extreme,facility,failure,faith,fancy,fare,farewell,fashion,fate,fault,favor,favorite,feather,feature,fee,feed,fellow,fever,fiber,fiction,fifteenth,fiftieth,finance,fit,flag,flame,flash,flavor,flesh,flight,flock,flood,flow,focus,fog,fold,folk,formation,formula,fortune,foundation,fourteenth,fox,fraction,frame,freedom,freeze,frontier,frost,fuel,fund,fundamental,funeral,funny,fur,gain,gallery,garment,gaze,gear,generation,generosity,genius,geography,gesture,ghost,gift,glass,globe,glory,glow,goat,goose,gossip,grace,grain,grammar,grant,grape,grasp,grave,gray,grief,grip,gross,growth,guard,gum,gym,habit,hall,ham,hang,harmony,harvest,hate,headquarters,heaven,height,hell,herd,heroic,hide,highway,hint,holy,honey,honor,hop,horn,horror,host,household,housewife,humanity,humor,hundredth,hunger,identity,illustration,imagination,imitation,impact,imperial,import,impression,improvement,impulse,inch,inevitable,influence,initiative,inspiration,instance,instant,institute,institution,instruction,insult,insurance,intellect,intelligence,intention,interior,internal,intersection,intimate,introduction,invention,investment,invisible,invitation,issue,jail,jar,jaw,jealousy,jelly,jerk,journal,joy,judge,juice,jungle,justice,kick,kindness,kingdom,labor,lace,lack,lamb,landing,landscape,lap,latest,launch,laundry,leadership,leaf,lean,leather,legend,lemon,lettuce,liberty,lid,lift,limit,lion,lip,liquid,liquor,listener,load,loaf,loan,location,lock,lord,loss,lower,loyalty,lump,luxury,mad,madam,majority,maker,management,manner,manufacture,maple,marble,march,marriage,mass,match,mathematics,meadow,means,meantime,measurement,melody,membership,mention,mercy,merit,mess,metal,meter,mile,military,mineral,ministry,minor,minority,mist,mix,mixture,monument,mood,moral,motion,mount,mouse,movement,murder,muscle,mushroom,mutter,mystery,myth,navy,necessity,neck,needle,negative,negotiation,neighborhood,nerve,net,network,neutral,nickel,nineteen,nineteenth,ninety,ninth,nonsense,normal,northern,northwest,notion,nut,nylon,oak,objection,obligation,observation,occasion,occupation,odd,offense,olive,onion,operation,opposition,option,orange,ordinary,organization,orient,origin,original,overall,overflow,pace,pack,painting,palace,pale,panic,paradise,parcel,pardon,parliament,passage,passion,passive,pasture,pat,patience,patrol,payment,pea,peach,peanut,pear,pearl,pence,penny,pepper,percentage,perception,performance,perfume,personality,perspective,philosophy,pie,pig,pigeon,pill,pine,pink,pitch,pity,plastic,plate,pleasure,plot,plow,poison,policy,polish,politics,poll,pond,pool,pop,port,portion,positive,possession,possibility,potato,pound,poverty,powder,praise,prayer,precious,preparation,prescription,presence,presentation,preserve,press,pressure,pride,prime,principal,principle,print,priority,prison,privilege,procedure,procession,production,profession,profit,progress,promotion,pronunciation,proof,property,proportion,proposal,prospect,protection,protest,province,provision,psychology,publication,pudding,pump,punch,punishment,purchase,purple,purse,pursuit,push,puzzle,quality,quantity,rabbit,rack,racket,radar,rage,rail,range,rank,ratio,rattle,raw,ray,reaction,reader,reality,realization,rear,recall,receipt,receiver,reception,recognition,recommendation,recovery,reduction,reference,reflection,refusal,regard,region,register,registration,regret,regulation,relation,release,relief,religion,remark,repair,repetition,representation,reputation,request,rescue,resemblance,reservation,reserve,residence,resistance,resolution,resolve,resort,resource,respect,response,responsibility,restriction,revenue,reverse,review,revolution,reward,ribbon,rifle,risk,roast,robe,rocket,rod,roll,root,rope,rough,row,rub,rubber,rugby,ruin,rush,sack,sacrifice,saddle,safety,sail,sake,salad,sale,salmon,sand,satellite,satisfaction,sauce,saving,scale,scandal,scare,scatter,scent,scholarship,score,scorn,scout,scramble,scratch,scream,screen,seal,seaside,secret,section,security,seed,selection,self,senate,sensation,sentence,separate,sequence,series,session,set,settlement,seventeen,seventeenth,seventh,sex,shade,shadow,shake,shallow,shame,shave,sheep,shell,shelter,shepherd,shock,shoulder,sickness,silence,silk,sin,sir,sixteenth,sixtieth,skate,skill,skirt,slip,slope,smart,smell,smoke,smooth,snap,soap,sock,soda,soil,solution,sorrow,soul,sour,southeast,southern,southwest,spade,spark,specific,spectacle,spelling,spice,spill,spin,spirit,split,spoil,sponge,spot,spray,squeeze,squirrel,staff,stage,stain,stair,stake,statement,status,steal,steep,stereo,stew,stick,stir,stock,stomach,stool,storage,strain,straw,strawberry,strength,stress,stretch,string,stroke,structure,substance,suburb,suck,suggestion,suicide,sum,summit,sunshine,supper,supply,surface,surgery,surrender,survey,survival,suspicion,swan,sweat,swell,swing,switch,sword,sympathy,tail,talent,tap,tape,taste,technique,technology,telegraph,temper,tension,tenth,territory,terror,text,theater,theory,thief,thirst,thirteenth,thirtieth,thorn,thread,thrust,thunder,tide,timber,tin,tissue,title,tobacco,toilet,toll,tomato,ton,tone,tongue,toss,trace,track,tragedy,training,transfer,translation,transport,transportation,trap,treasure,treat,treatment,treaty,tremble,trial,triumph,trunk,trust,truth,tube,tune,turkey,twelfth,twentieth,twin,twist,ultimate,unconscious,underground,underneath,union,universe,unknown,upright,upset,urge,usual,utility,vacation,van,variation,variety,vegetable,vein,verse,vice,video,violet,virgin,virtue,vision,visitor,vital,vitamin,vocabulary,volleyball,volume,vote,voyage,waste,wax,weakness,wealth,weed,weep,weight,whale,wheel,whip,whisper,width,wine,wire,wisdom,wise,wit,witness,wonder,worship,worth,wrap,wreck,youth,zero