Skip to content

Commit d045be4

Browse files
committed
add dependencies
0 parents  commit d045be4

File tree

5 files changed

+171
-0
lines changed

5 files changed

+171
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target

Cargo.lock

Lines changed: 80 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[package]
2+
name = "text-game"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies]
9+
csv = "1.1.6"

history.csv

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
TIPO; TAG; TEXTO; VIDA
2+
SITUACION; INICIO; Eres un aventurero novato y estás a punto de entrar en una oscura y profunda cueva llena de Goblins malignos.; 0
3+
OPCION; ENTRADA; Entrar y comenzar la aventura;
4+
SITUACION; ENTRADA; Esta muy oscuro y no se ve nada. Te preguntas si existe alguna manera de hacer las cosas más fáciles...;
5+
OPCION; CAIDA; Seguir avanzando a tientas en la oscuridad;
6+
OPCION; MOCHILA; Buscar en tu mochila algo que pueda ser de utilidad;
7+
SITUACION; CAIDA; Sin darte cuenta no notas el suelo debajo de tus pies y empiezas a caer. Al fondo del foso hay muchas piedras afiladas...; -1000
8+
SITUACION; MOCHILA; En la oscuridad empiezas a palpar dentro de tu mochila. Por suerte trajiste los materiales necesarios para crear y encender una antorcha;
9+
OPCION; LUZ; Encender la antorcha y continuar;
10+
SITUACION; LUZ; Al fin puedes ver algo en la oscuridad. La cueva tiene el techo bajo y es bastante húmeda. Tras avanzar un poco acabas llegando a una bifurcación;
11+
OPCION; IZQUIERDA; Ir por la izquierda (se ve una leve luz);
12+
OPCION; DERECHA; Ir por la derecha (el camino está totalmente oscuro);
13+
SITUACION; IZQUIERDA; Entras por el camino de la izquierda ya que ves una leve luz al fondo. Cuando llegas descubres que hay decenas de goblins sentados al lado de una hoguera. ¡Nada más verte te atacan todos!; -1000
14+
SITUACION; DERECHA; Te adentras por el oscuro tunel de la derecha. El camino sube y al final acabas llegando a un agujero donde se ve algo de luz. Al asomarte descubres que hay muchos goblins sentados alrededor de una hoguera.;
15+
OPCION; PASAR; Sería peligroso hacer nada, es mejor que lo dejes estar y continues por el tunel.;
16+
OPCION; EXAMINAR; A lo mejor puedes acabar con los goblins si tienes algo de utilidad en la mochila.;
17+
SITUACION; EXAMINAR; Tras revisar tu mochila, descubres que tienes algunas cosas que podrían servirte para acabar con los Goblins;
18+
OPCION; BOMBA; Tienes aceite, una cantimplora y una cuerda, parece que puedes fabricar una bomba para lanzar a los goblins;
19+
OPCION; PUÑAL; Tienes un puñal arrojadizo. Observas que encima de los goblins hay cajas pesadas colgadas con poleas. Podrías intentar cortar la cuerda lanzando el puñal para aplastar a los goblins;
20+
SITUACION; BOMBA; Preparas la bomba, la enciendes y la lanzas. Cuando explota, todos los goblins mueren con la explosión. Sin embargo, la fuerza de la onda expansiva hace que el techo se derrumbe y encuentras tu tumba bajo toneladas de roca...; -1000
21+
SITUACION; PUÑAL; Apuntas atentamente y logras cortar la cuerda. Todos los goblins mueren aplastados. ¡Bien hecho!;
22+
OPCION; REVISAR; Bajar a revisar si puedes encontrar algo útil en el campamento de los goblins;
23+
OPCION; PASAR; Continuar por el camino que estabas siguiendo y dejar atrás el campamento de los goblins;
24+
SITUACION; REVISAR; Bajas hasta el campamento y registras a los goblins y las cajas cercanas. Encuentras una espada bastante afilada que parece que los golins han robado recientemente. Esto te ayudará a sobrevivir (Superviviencia +50); 50
25+
OPCION; PASAR; Continuar adentrándose en la cueva;
26+
SITUACION; PASAR; Sigues avanzando en la oscuridad. Antes de darte cuenta, ¡un pequeño goblin aparece por sorpresa!;
27+
OPCION; PUÑETAZO; El goblin no parece muy grande, atácale con un puñetazo directo;
28+
OPCION; PLACAJE; Intenta placar al goblin para derribarle y acabar con el en el suelo;
29+
OPCION; PIEDRA; Ves una piedra bastante grande delante. Cógela y lanzala al goblin para hacerle bastante daño;
30+
SITUACION; PUÑETAZO; Le das un puñetazo directo al goblin en la cara pero inesperadamente, es más resistente de lo que parece. Logra morderte y hacerte daño (Supervivencia - 50); -50
31+
OPCION; PLACAJE; Intenta placar al goblin para derribarle y acabar con el en el suelo;
32+
OPCION; PIEDRA; Ves una piedra bastante grande delante. Cógela y lanzala al goblin para hacerle bastante daño;
33+
SITUACION; PLACAJE; Embistes al goblin ya que es más pequeño que tu. Logras derribarle al suelo pero el goblin es muy ágil. Mientas forcejeais, el goblin te araña con sus afiladas garras (Supervivencia -30); -30
34+
OPCION; PIEDRA; Ves una piedra bastante grande delante. Cógela y lanzala al goblin para hacerle bastante daño;
35+
SITUACION; PIEDRA; Coges una piedra del suelo y se la lanzas al goblin directamente. Le alcanzas en la cabeza y acabas con el al instante. ¡Bien hecho!;
36+
OPCION; CADAVER; Examinar el cadaver para ver si tiene algo útil;
37+
SITUACION; CADAVER; El goblin llevaba un pequeño zurrón con cosas que ha robado recientemente. Logras hacerte con una poción curativa y algunos trapos que se pueden usar a modo de vendajes (Supervivencia +20); 20
38+
OPCION; BOVEDA; Recoger todo y continuar hacia las profundidades;

src/main.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
use csv::{ ReaderBuilder, StringRecord };
2+
use std::{fs, result};
3+
4+
const FILE_NAME: &str = "history.csv";
5+
6+
struct DatoHistoria {
7+
tipo_dato: String,
8+
texto: String,
9+
tag: String,
10+
vida: i32,
11+
}
12+
13+
impl DatoHistoria {
14+
fn new(row: StringRecord) -> DatoHistoria {
15+
16+
let vida: i32 = row.get(3).unwrap().trim().parse().unwrap_or(0);
17+
let dato = DatoHistoria {
18+
tipo_dato : row.get(0).unwrap().to_string(),
19+
tag : row.get(1).unwrap().to_string(),
20+
texto : row.get(2).unwrap().to_string(),
21+
vida,
22+
};
23+
dato
24+
}
25+
}
26+
27+
fn main() {
28+
29+
let content = fs::read_to_string(FILE_NAME).unwrap();
30+
let mut rdr = ReaderBuilder::new().delimiter(b';').from_reader(content.as_bytes());
31+
32+
let mut datos_historia: Vec<DatoHistoria> = vec![];
33+
34+
for result in rdr.records() {
35+
36+
let result = result.unwrap();
37+
38+
let dato = DatoHistoria::new(result);
39+
40+
datos_historia.push(dato);
41+
}
42+
43+
}

0 commit comments

Comments
 (0)