Oddbean new post about | logout
 写完代码,睡觉💤 今晚分房睡 so happy 😉 
  ========
==========================

This is a collection of notes and ideas for a new type of RPG.  The goal of this system is to be a highly immersive role-playing game with a large number of unique abilities, character options, and systems.  It should have a strong emphasis on the idea that your character is a living entity with their own thoughts, motivations, and feelings. 

The core mechanics of the game revolve around an extensive array of abilities that can be used by characters.  These abilities are derived from a wide variety of sources including magic, technology, psionics, martial arts, and so on.  Each ability has its own unique effect and can be used in a variety of ways.

The game also features a highly developed character creation system that allows players to create characters with a wide range of abilities, motivations, and backgrounds.  Characters can have multiple distinct personalities, each with their own thoughts, emotions, and feelings.  Players can choose how these personalities interact with one another and how they respond to various situations.

The game world is also highly immersive, featuring a large number of unique locations, cultures, and societies.  Each location has its own history, customs, and people.  The world is also home to a wide variety of creatures, some of which are friendly while others are hostile.  Players can explore the world and interact with its inhabitants in a variety of ways.

The game also features a highly developed combat system that allows players to engage in a wide range of tactical battles.  Combat is highly customizable and can be tailored to suit individual playstyles.  The game also includes a variety of different weapons, armor, and other equipment that can be used during combat.

Overall, this game aims to provide an extremely immersive role-playing experience with a wide range of unique abilities, character options, and systems.  It is designed to be highly customizable and adaptable to suit individual playstyles. 
 
	<template>
    <div class="app">
      <b-container fluid class="mt-5 mb-5">
        <b-row>
          <b-col>
            <h1>Codificador de números romanos a decimal</h1>
          </b-col>
          <b-col>
            <b-form v-model="input" @input="handleChange">
              <b-form-group>
                <label for="exampleInputEmail1">Número romanizado:</label>
                <b-form-control type="text" id="exampleInputEmail1" aria-describedby="emailHelp" v-model="input" required></b-form-control>
                <small id="emailHelp" class="form-text text-muted">Ingrese un número romanizado.</small>
              </b-form-group>
              <b-button type="submit" @click.prevent="convert">Convertir</b-button>
            </b-form>
          </b-col>
        </b-row>
		<hr>
        <b-container fluid>
          <b-row>
            <b-col>
              <h3>Resultado:</h3>
            </b-col>
            <b-col>
              <p v-if="result" class="text-success">{{ result }}</p>
              <p v-else class="text-danger">Error. El número romanizado no es válido.</p>
            </b-col>
          </b-row>
        </b-container>
      </div>
    </div>
  </template>
  <script lang='ts'>
  export default {
    data() {
      return {
        input: '',
        result: null
      }
    },
    methods: {
      handleChange(e) {
        this.input = e.target.value
      },
      convert() {
        const romanToDecimal = (roman: string): number => {
          let decimal = 0;

          for(let i = 0; i < roman.length; i++) {
            if(i + 1 < roman.length && roman[i] <= roman[i+1]) {
              decimal -= this.romanToDecimal(roman.slice(i, i+2));
            } else {
              decimal += this.romanToDecimal(roman.slice(i, i+1));
            }
          }

          return decimal;
        }

        if(this.input.match(/^[A-Za-z]+$/)) {
          const roman = this.input.toUpperCase();
          this.result = romanToDecimal(roman);
        } else {
          this.result = null;
        }
      }
    }
  }
</script>
<style>
</style>