Andrei Kalaychev
Andrei Sergeyevich Kalaychev (Russian: Андрей Серге́евич Калайчев; born 26 October 1963) is a retired Soviet and Russian football player.
Personal information | |||
---|---|---|---|
Full name | Andrei Sergeyevich Kalaychev | ||
Date of birth | 26 October 1963 | ||
Place of birth | Kaluga, Russian SFSR | ||
Height | 1.86 m (6 ft 1 in) | ||
Playing position(s) | Midfielder | ||
Senior career* | |||
Years | Team | Apps | (Gls) |
1980–1982 | FC Lokomotiv Kaluga | 17 | (0) |
1982–1983 | FC Lokomotiv Moscow | 0 | |
1984–1985 | Iskra Smolensk | 35 | (1) |
1986–1989 | FC Lokomotiv Moscow | 104 | (6) |
1990–1992 | FC Torpedo Moscow | 49 | (3) |
1992–1993 | VfB Mödling | 22 | (0) |
1993 | FC Torpedo Moscow | 9 | (0) |
National team | |||
1989 | USSR | 1 | (0) |
* Senior club appearances and goals counted for the domestic league only |
Honours
- Soviet Top League bronze: 1991.
International career
Kalaychev played his only game for USSR on February 21, 1989, in a friendly against Bulgaria.
gollark: Given a desired item, available items and some recipes, I want a list of crafting tasks which must be performed and the required ingredients.
gollark: Neither!
gollark: Well, obviously you'll have some items available to build stuff from.
gollark: - Checks if the available-items list already contains the item needed. If so, just return that.- If not, checks for recipes to do what is wanted- If one exists, iterate over them (not sure what to *do* with them)- If none exists, we can't do anything, so just return no tasks, no costs and no outputs.
gollark: ```rusttype Items = HashMap<ItemType, u32>;fn quantity(items: &Items, desired: &ItemType) -> u32 { if let Some(available_quantity) = items.get(desired) { *available_quantity } else { 0 }}fn contains(items: &Items, desired: &Item) -> bool { quantity(items, &to_item_type(desired)) >= desired.quantity}fn satisfies(available: &Items, desired: &Items) -> bool { for (typ, desired_quantity) in desired.iter() { if quantity(available, typ) < *desired_quantity { return false } } true}fn to_map(is: &Vec<Item>) -> Items { let out = HashMap::new(); for i in is.iter() { out.entry(to_item_type_clone(i)) .and_modify(|e| { *e += 1 }) .or_insert(0); } out}fn one_item(i: Item) -> Items { let out = HashMap::new(); out.insert(to_item_type(&i), i.quantity); out}#[derive(Debug, Deserialize, PartialEq, Eq, Serialize, Clone)]pub struct CraftingResult { pub tasks: Vec<Recipe>, pub costs: Items, pub outputs: Items}fn solve(desired: Item, available: Items, recipes: &MultiMap<ItemType, Recipe>) -> CraftingResult { if contains(&available, &desired) { // If our available items list already contains the desired item, yay, we can just do nothing return CraftingResult { tasks: vec![], costs: one_item(desired), outputs: one_item(desired) } } if let Some(recipes) = recipes.get_vec(&to_item_type(&desired)) { for recipe in recipes.iter() { let result = solve() // ??? } } else { CraftingResult { tasks: vec![], costs: HashMap::new(), outputs: HashMap::new() } }}```My code, or at least part of it.
References
- Profile on RusTeam (in Russian)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.