paizaの練習問題を解く RPG Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 RPG | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 以下のように実装しました。 package main import "fmt" type Hero struct { l int h int a int d int s int c int f int } func main(){ var n, k int fmt.Scan(&n, &k) heroes := make([]Hero, n) for i := 0; i < n; i++ { fmt.Scan( &heroes[i].l, &heroes[i].h, &heroes[i].a, &heroes[i].d, &heroes[i].s, &heroes[i].c, &heroes[i].f, ) } for i := 0; i < k; i++ { var e string var j int fmt.Scan(&j, &e) switch e { case "levelup": var h, a, d, s, c, f int fmt.Scan(&h, &a, &d, &s, &c, &f) heroes[j - 1].l++ heroes[j - 1].h += h heroes[j - 1].a += a heroes[j - 1].d += d heroes[j - 1].s += s heroes[j - 1].c += c heroes[j - 1].f += f case "muscle_training": var h, a int fmt.Scan(&h, &a) heroes[j - 1].h += h heroes[j - 1].a += a case "running": var d, s int fmt.Scan(&d, &s) heroes[j - 1].d += d heroes[j - 1].s += s case "study": var c int fmt.Scan(&c) heroes[j - 1].c += c case "pray": var f int fmt.Scan(&f) heroes[j - 1].f += f } } for i := 0; i < n; i++ { fmt.Println( heroes[i].l, heroes[i].h, heroes[i].a, heroes[i].d, heroes[i].s, heroes[i].c, heroes[i].f, ) } } 条件分岐とかがちょっと長いですが、まぁ一つ構造体作ってあげればすぐ実装できました。 ...