The brown rat (Rattus norvegicus), also known as the common rat, street rat, sewer rat, wharf rat, Hanover rat, Norway rat and Norwegian rat, is a widespread, common species of rat. One of the largest muroids, it is a brown or grey rodent with a body length of up to 28 cm (11 in) long, and a tail slightly shorter than that. It weighs between 140 and 500 g (4.9 and 17.6 oz). Thought to have originated in northern China and neighbouring areas, it has now spread to all continents except Antarctica, and is the dominant rat in Europe and much of North America, having become naturalised across the world. With rare exceptions, the brown rat lives wherever humans live, particularly in urban areas. It is omnivorous, reproduces rapidly, and can be a vector for several human diseases.
Studies of wild rats in New York City have shown that populations living in different neighborhoods can evolve distinct genomic profiles over time, by slowly accruing different traits.
Naming and etymology
The brown rat was originally called the "Hanover rat" by people wishing to link problems in 18th-century England with the House of Hanover. It is not known for certain why the brown rat is named Rattus norvegicus (Norwegian rat), as it did not originate from Norway. However, the English naturalist John Berkenhout, author of the 1769 book Outlines of the Natural History of Great Britain, is most likely responsible for popularizing the misnomer. Berkenhout gave the brown rat the binomial name Mus norvegicus, believing it had migrated to England from Norwegian ships in 1728.
Though the assumptions surrounding this species' origins were not yet the same as modern ones, by the 20th century, it was believed among naturalists that the brown rat did not originate in Norway, rather the species came from central Asia and (likely) China.
Distribution and habitat
Possibly originating from the plains of northern China and Mongolia, the brown rat spread to other parts of the world sometime in the Middle Ages. The question of when brown rats became commensal with humans remains unsettled, but as a species, they have spread and established themselves along routes of human migration and now live almost everywhere humans are.
As it spread from Asia, the brown rat generally displaced the black rat in areas where humans lived. In addition to being larger and more aggressive, the change from wooden structures and thatched roofs to bricked and tiled buildings favored the burrowing brown rats over the arboreal black rats. In addition, brown rats eat a wider variety of foods, and are more resistant to weather extremes.
In the absence of humans, brown rats prefer damp environments, such as river banks.[86] However, the great majority are now linked to man-made environments, such as sewage systems. In addition to sewers, rats are very comfortable living in alleyways and residential buildings, as there is usually a large and continuous food source in those areas.
It is often said that there are as many rats in cities as people, but this is considered an urban myth for most cities. Brown rats in cities tend not to wander extensively, often staying within 20 m (66 ft) of their nest if a suitable concentrated food supply is available, but they will range more widely where food availability is lower. It is difficult to determine the extent of their home range because they do not utilize a whole area but rather use regular runways to get from one location to another. Urban rat research is considered to be challenging due to their significant global population size and spatial distribution patterns. There is great debate over the size of the population of rats in New York City, with estimates from almost 100 million rats to as few as 250,000. Experts suggest that New York is a particularly attractive place for rats because of its aging infrastructure and high poverty rates. In 2023, the city appointed Kathleen Corradi as the first Rat Czar, a position created to address the city's rat population. The position focuses on instituting policies measures to curb the population such as garbage regulation and additional rat trapping. A 2024 study using data from Vancouver found that most municipal complaints about rats were related to garbage, and the rats were often viewed as a symptom of a community issue.

Megathreads and spaces to hang out:
- π» Link to all Hexbear comms https://hexbear.net/post/1403966
- πΌ Hexbear Matrix Chat https://matrix.to/#/#Hexbear:matrix.org
- π Come listen to music and Watch movies with your fellow Hexbears nerd, in Cy.tube](https://live.hexbear.net/c/movies
- π₯ Read and talk about a current topics in the News Megathread https://hexbear.net/post/8026521
- β Come talk in the New Weekly PoC thread https://hexbear.net/post/8030647
- π³οΈββ§οΈ Talk with fellow Trans comrades in the New Weekly Trans thread https://hexbear.net/post/8034428
- π New Weekly Improvement thread https://hexbear.net/post/8027723
- π§‘ Disabled comm megathread https://hexbear.net/post/7886148
- β Parenting Chat https://hexbear.net/post/8025314
- π Anime & Manga discussion thread https://hexbear.net/post/7546692
- π©Fashion megathread https://hexbear.net/post/7228810
- π¨ Art & Drawings megathread https://hexbear.net/post/8070591
reminders:
- π You nerds can join specific comms to see posts about all sorts of topics
- π Hexbearβs algorithm prioritizes comments over upbears
- π Sorting by new you nerd
- πΆ Join the unofficial Hexbear-adjacent Mastodon instance toots.matapacos.dog
Links To Resources (Aid and Theory):
Aid:
Theory:
- β€οΈFoundations of Leninism
- β€οΈAnarchism and Other Essays
Financial Support to the Bearsite
-
π¨π³ https://liberapay.com/hexbear
-
π·πΊ https://www.patreon.com/hexbear
No no, this is perfect, my solution was a lot more complex when I thought I was simplifying things. It's been frustrating trying to implement what looks like simple features and finding my code twisted into pretzels trying to do it, but it's still fun when it works. I'd like to get good enough at some point where I can learn to go through the process you just walked through to further simplify the code.
Yay, glad it was of some use at least. You'll get there eventually! With experience I've found myself thinking much more in terms of program structure and logical flow (like what components need to know about what data, and how do we pass that data to the components with as little extra steps as possible), rather than actual code and syntax. All programming languages have some form of arrays, objects, booleans, integers, strings and so on, and everything in any program or game is at the fundamental level an instance of one of those types, the language/syntax is just a way of tapping into those fundamental forces, so to speak. A good tip on keeping things simple is to try to have a single source of truth for any value that needs to be passed around to other components (in your case, one plyr_display array).
For example, only the player character holds the value of it's
strengthstat. The player's sword deals damage based on how much strength they have, but the sword does not know or even care about the player's strength before the attack comes out. The player's stats (i.e. strength) are passed to the sword when the player attacks:player.get_weapon().attack(target_enemy, player.get_stats()), then the sword will calculate the damagefunc attack(target: Enemy, stats: Stats): target.deal_damage(this.weapon_base_damage + stats.strength). When the players strength grows or shrinks, the new value will simply be passed to the sword on attack. If the player drops the sword and another character picks it up, it will then use that characters strength instead. We never have to change anything about the sword, because the data we need has a single source of truth: the holding character's strength value that is stored in its Stats object. As a less experienced developer, I would absolutely have made all sorts of rollercoaster logic to make the sword use the holder's strength by storing that as a variable in the sword itself and then updating it whenever the sword is grabbed or whatever, and eventually run into six hundred different edge cases that would need a whole lot of extra code to handle.I took some courses on data structures and data types in university back in the day, they are like the only courses I've ever had much use of since then. It's bone dry and boring as all fuck, but I must reluctantly admit that it taught me some useful stuff like this that objectively made me a better programmer.
E: Oh yeah and also there's a cool coding game on Steam called The Farmer Was Replaced, I really enjoyed it. It presents a simple problem with a clear solution, and then gradually introduces more complicated edge cases, forcing you to reevaluate and abstract your logic to cover them as efficiently as possible.