mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-11 20:02:09 +00:00
separate files based on feedback
This commit is contained in:
parent
eb9b46e34d
commit
d73f961089
@ -7,10 +7,10 @@ Learn how to install Odin on your system [here](https://odin-lang.org/docs/insta
|
|||||||
$ odin test tests
|
$ odin test tests
|
||||||
```
|
```
|
||||||
## Run the TextTest fixture on the command line
|
## Run the TextTest fixture on the command line
|
||||||
Build and install the executable
|
Build the executable:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ odin build gilded_rose
|
$ odin build src -out:gilded_rose<include your OS executable extension here i.e. .bin>
|
||||||
```
|
```
|
||||||
|
|
||||||
Execute it on the command line with an argument for the number of days:
|
Execute it on the command line with an argument for the number of days:
|
||||||
@ -30,5 +30,5 @@ $ ./gilded_rose.exe 10
|
|||||||
There are instructions in the TextTest Readme for setting up TextTest. You will need to specify the executable in `config.gr`. Uncomment this line to use it:
|
There are instructions in the TextTest Readme for setting up TextTest. You will need to specify the executable in `config.gr`. Uncomment this line to use it:
|
||||||
|
|
||||||
```
|
```
|
||||||
#executable:${TEXTTEST_HOME}/odin/gilded_rose(include your OS executable extension here)
|
#executable:${TEXTTEST_HOME}/odin/gilded_rose<include your OS executable extension here>
|
||||||
```
|
```
|
||||||
|
|||||||
@ -1,9 +1,5 @@
|
|||||||
package gilded_rose
|
package gilded_rose
|
||||||
|
|
||||||
import "core:fmt"
|
|
||||||
import "core:os"
|
|
||||||
import "core:strconv"
|
|
||||||
|
|
||||||
Item :: struct {
|
Item :: struct {
|
||||||
name: string,
|
name: string,
|
||||||
sell_in: i32,
|
sell_in: i32,
|
||||||
@ -57,42 +53,3 @@ update_quality :: proc(inventory: []Item) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
main :: proc() {
|
|
||||||
days := 2
|
|
||||||
if len(os.args) >= 2 {
|
|
||||||
if val, ok := strconv.parse_int(os.args[1]); ok && val > 0 {
|
|
||||||
days = val
|
|
||||||
} else {
|
|
||||||
fmt.eprintf("Please enter a number greater than 0\n")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
items := []Item {
|
|
||||||
{"+5 Dexterity Vest", 10, 20},
|
|
||||||
{"Aged Brie", 2, 0},
|
|
||||||
{"Elixir of the Mongoose", 5, 7},
|
|
||||||
{"Sulfuras, Hand of Ragnaros", 0, 80},
|
|
||||||
{"Sulfuras, Hand of Ragnaros", -1, 80},
|
|
||||||
{"Backstage passes to a TAFKAL80ETC concert", 15, 20},
|
|
||||||
{"Backstage passes to a TAFKAL80ETC concert", 10, 49},
|
|
||||||
{"Backstage passes to a TAFKAL80ETC concert", 5, 49},
|
|
||||||
// This Conjured item does not work properly yet
|
|
||||||
{"Conjured Mana Cake", 3, 6},
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.println("OMGHAI!")
|
|
||||||
|
|
||||||
for day in 0 ..= days {
|
|
||||||
day_line := fmt.tprint("-------- day", day, "--------")
|
|
||||||
fmt.println(day_line)
|
|
||||||
fmt.println("name, sellIn, quality")
|
|
||||||
for item in items {
|
|
||||||
item_line := fmt.tprint(item.name, item.sell_in, item.quality, sep = ", ")
|
|
||||||
fmt.println(item_line)
|
|
||||||
}
|
|
||||||
fmt.println()
|
|
||||||
update_quality(items)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
46
odin/src/main.odin
Normal file
46
odin/src/main.odin
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import GildedRose "./core"
|
||||||
|
import "core:fmt"
|
||||||
|
import "core:os"
|
||||||
|
import "core:slice"
|
||||||
|
import "core:strconv"
|
||||||
|
|
||||||
|
main :: proc() {
|
||||||
|
days := 2
|
||||||
|
if num_of_days, arg_ok := slice.get(os.args, 1); arg_ok {
|
||||||
|
if val, ok := strconv.parse_int(num_of_days); ok && val > 0 {
|
||||||
|
days = val
|
||||||
|
} else {
|
||||||
|
fmt.eprintf("Please enter a number greater than 0\n")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
items := []GildedRose.Item {
|
||||||
|
{"+5 Dexterity Vest", 10, 20},
|
||||||
|
{"Aged Brie", 2, 0},
|
||||||
|
{"Elixir of the Mongoose", 5, 7},
|
||||||
|
{"Sulfuras, Hand of Ragnaros", 0, 80},
|
||||||
|
{"Sulfuras, Hand of Ragnaros", -1, 80},
|
||||||
|
{"Backstage passes to a TAFKAL80ETC concert", 15, 20},
|
||||||
|
{"Backstage passes to a TAFKAL80ETC concert", 10, 49},
|
||||||
|
{"Backstage passes to a TAFKAL80ETC concert", 5, 49},
|
||||||
|
// This Conjured item does not work properly yet
|
||||||
|
{"Conjured Mana Cake", 3, 6},
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.println("OMGHAI!")
|
||||||
|
|
||||||
|
for day in 0 ..= days {
|
||||||
|
day_line := fmt.tprint("-------- day", day, "--------")
|
||||||
|
fmt.println(day_line)
|
||||||
|
fmt.println("name, sellIn, quality")
|
||||||
|
for item in items {
|
||||||
|
item_line := fmt.tprint(item.name, item.sell_in, item.quality, sep = ", ")
|
||||||
|
fmt.println(item_line)
|
||||||
|
}
|
||||||
|
fmt.println()
|
||||||
|
GildedRose.update_quality(items)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package test_gilded_rose
|
package test_gilded_rose
|
||||||
|
|
||||||
import GildedRose "../gilded_rose"
|
import GildedRose "../src/core"
|
||||||
import "core:testing"
|
import "core:testing"
|
||||||
|
|
||||||
@(test)
|
@(test)
|
||||||
|
|||||||
@ -65,6 +65,6 @@ interpreter:ruby
|
|||||||
# executable:${TEXTTEST_HOME}/ocaml/_build/default/bin/main.exe
|
# executable:${TEXTTEST_HOME}/ocaml/_build/default/bin/main.exe
|
||||||
|
|
||||||
# Settings for the Odin version
|
# Settings for the Odin version
|
||||||
#executable:${TEXTTEST_HOME}/odin/gilded_rose(include your OS executable extension here)
|
#executable:${TEXTTEST_HOME}/odin/gilded_rose<include your OS executable extension here>
|
||||||
|
|
||||||
filename_convention_scheme:standard
|
filename_convention_scheme:standard
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user