Monday, June 29, 2020

RE: Basic Program for making a D&D Character

I am messing around with a Maximite Basic Box, which is a small computer like device that boots straight into a Basic programming language environment, in much the same way computers did back in the 70's and 80's. I updated my D&D Character generator program to run on it. Obviously, I took out the line numbers, but I added Hit Point Bonus for high Constitution, updated the attribute roller to roll 4d6 and take the best 3 and some cheater code to ask if you want to keep the character after the dice have been rolled for attributes.

Randomize Timer
DIM DICE(4)

Main:
  GoSub Roll4d6
  STRENGTH = TOTAL
  GoSub Roll4d6
  INTELLIGENCE = TOTAL
  GoSub Roll4d6
  WISDOM = TOTAL
  GoSub Roll4d6
  DEXTERITY = TOTAL
  GoSub Roll4d6
  CONSTITUTION = TOTAL
  GoSub Roll4d6
  CHARISMA = TOTAL

  GoSub ShowStat

  Print: Print "Keep Character?"
  GoSub YesNo
  If YN = 2 GoTo Main

  Print "Choose your Race:"
  Print " 1 Dwarf"
  Print " 2 Elf"
  Print " 3 Halfling"
  Print " 4 Human"
  Input CHOICER
    If CHOICER = 1 Then RACE$ = "Dwarf"
    If CHOICER = 2 Then RACE$ = "Elf"
    If CHOICER = 3 Then RACE$ = "Halfling"
    If CHOICER = 4 Then RACE$ = "Human"
    If CHOICER = 1 Then STRENGTH = STRENGTH + 1
    If CHOICER = 1 Then CHARISMA = CHARISMA - 1
    If CHOICER = 2 Then DEXTERITY = DEXTERITY + 1
    If CHOICER = 2 Then CONSTITUTION = CONSTITUTION - 1
    If CHOICER = 3 Then DEXTERITY = DEXTERITY + 1
    If CHOICER = 3 Then STRENGTH = STRENGTH - 1

  GoSub ShowStat

  Print "Choose your Class:"
  Print " 1 Cleric"
  Print " 2 Fighter"
  Print " 3 Magic-User"
  Print " 4 Thief"
  Input CHOICEC
    If CHOICEC = 1 Then CLASS$ = "Cleric"
    If CHOICEC = 2 Then CLASS$ = "Fighter"
    If CHOICEC = 3 Then CLASS$ = "Magic-User"
    If CHOICEC = 4 Then CLASS$ = "Theif"
    If CHOICEC = 1 Then HITPOINTS = 8
    If CHOICEC = 2 Then HITPOINTS = 10
    If CHOICEC = 3 Then HITPOINTS = 4
    If CHOICEC = 4 Then HITPOINTS = 6

  DICE1 = Int(Rnd * 4) + 1
  DICE2 = Int(Rnd * 4) + 1
  DICE3 = Int(Rnd * 4) + 1
  DICE4 = Int(Rnd * 4) + 1
  DICE5 = Int(Rnd * 4) + 1
  GOLD = (DICE1 + DICE2 + DICE3 + DICE4 + DICE5) * 10

  GoSub CheckCon

  Print: Print "What is your Name"
  Input NAME$
  Print
  Print "D&D Character Sheet 1.0"
  Print "------------------------------": Print
  Print "Character Name: "; NAME$
  Print "Character Race: "; RACE$
  Print "Character Class: "; CLASS$
  Print "------------------------------"
  Print
  Print "STR: "; STRENGTH
  Print "INT: "; INTELLIGENCE
  Print "WIS: "; WISDOM
  Print "DEX: "; DEXTERITY
  Print "CON: "; CONSTITUTION
  Print "CHR: "; CHARISMA
  Print
  Print "Hit Points: "; HITPOINTS
  Print
  Print "Gold: "; GOLD
  Print "------------------------------"

  Print: Print "Save Character?"
  GoSub YesNo
  If YN = 2 GoTo FinishUp

  Open NAME$ + ".txt" For OUTPUT As #1
  Print #1,
  Print #1, "D&D Character Sheet 1.0"
  Print #1, "------------------------------": Print #1,
  Print #1, "Character Name: "; NAME$
  Print #1, "Character Race: "; RACE$
  Print #1, "Character Class: "; CLASS$
  Print #1, "------------------------------"
  Print #1,
  Print #1, "STR: "; STRENGTH
  Print #1, "INT: "; INTELLIGENCE
  Print #1, "WIS: "; WISDOM
  Print #1, "DEX: "; DEXTERITY
  Print #1, "CON: "; CONSTITUTION
  Print #1, "CHR: "; CHARISMA
  Print #1,
  Print #1, "Hit Points: "; HITPOINTS
  Print #1,
  Print #1, "Gold: "; GOLD
  Print #1, "------------------------------": Print #1,
  Print #1, "EQUIPMENT:"
  Close #1
  GoTo FinishUp

Roll4d6:
  DICE(1) = Int(Rnd * 6) + 1
  DICE(2) = Int(Rnd * 6) + 1
  DICE(3) = Int(Rnd * 6) + 1
  DICE(4) = Int(Rnd * 6) + 1

  Flips = 1
  Do
    Flips = 0
    For Count = 1 to 3
      If DICE(Count) > DICE(Count+1) Then
        Swap DICE(Count),DICE(Count+1)
        Flips = 1
      ENDIF
    Next
  Loop While Flips = 1
  TOTAL = DICE(2) + DICE(3) + DICE(4)
  Return

  Sub SWAP X,Y
    Local Z
    Z = X
    X = Y
    Y = Z
  End Sub

CheckCon:
  If CONSTITUTION = 15 Then HITPOINTS = HITPOINTS+1
  If CONSTITUTION = 16 Then HITPOINTS = HITPOINTS+2
  If CONSTITUTION = 17 Then HITPOINTS = HITPOINTS+2
  If CONSTITUTION = 18 Then HITPOINTS = HITPOINTS+2
  GoSub CheckFighter
  Return

CheckFighter:
  If CHOICEC <> 2 Then Return
  If CONSTITUTION = 17 Then HITPOINTS = HITPOINTS+1
  If CONSTITUTION = 18 Then HITPOINTS = HITPOINTS+2
  Return

ShowStat:
  Print "STR: "; STRENGTH
  Print "INT: "; INTELLIGENCE
  Print "WIS: "; WISDOM
  Print "DEX: "; DEXTERITY
  Print "CON: "; CONSTITUTION
  Print "CHR: "; CHARISMA
  Print
  Return

YesNo:
  Print "1 Yes"
  Print "2 No"
  Input YN
  Return

FinishUp:
End

Dungeons & Dragons News

There are a couple of things going on in the world of D&D, both on a personal level, and the world at large.

First off, I just started DMing again after a nice 6 month break. My group decided they wanted to play some good old fashion AD&D 1E. This game has been out of print since 1991, and has been out of favor longer than that. The core 3 players all said this was what they wanted to play, they said they were tired of bonus actions, reactions, feats and weird combinations of multiclassing that breaks the game. Back then there was not a lot of options, characters were not differentiated by their race, class, or attributes, but rather how the player played that character.It did not matter if you were a fighter with a Strength of 13 or 18, what mattered is what you did and what you contributed to the game.

The other thing that is slipping in, is The makers of D&D, Wizards of the Coast (WotC) has decided it is going to change the game to add more diversity by eliminating all evil races, not really eliminating them, but rather make races like orcs and drow just as morally and culturally complex as other peoples, meaning they will no longer be culturally evil. A lot of people are upset about this, you know because why not. Personally, I say play the game you want to play and don't worry about what WotC or anyone else wants. The bottom line is, this is our game, sure they publish the rules, but we are the ones who bring it to life. Really, it is not a big deal.

Sunday, June 7, 2020

Review: The Sparrow #1

The Sparrow (The Sparrow, #1)The Sparrow by Mary Doria Russell
My rating: 3 of 5 stars

The Sparrow is a somewhat difficult book to enjoy. This is not to say it is a bad book, it is in fact a very well written book with a very interesting first contact story. The reason it is difficult to enjoy is because some very terrible things happen to the primary character Emillio Sandoz. I am sure the author's intent was to write a modern day Book of Job. Father Emillio Sandoz is a Jesuit priest blessed with many friends and a happy successful career, serving God. When one of his friends detects radio transmission from space, this sets Father Sandoz on his path to destruction, where his friends, his freedom and his purpose in life are all stripped from him as he slips into slavery and degradation. Father Sandoz's faith is tested to the very limits.

The Sparrow is a story of how NOT to send people 4 light years to make first contact with an alien race. I get it, the idea that an organization like the Society of Jesus (Jesuits), has the resources and the ability to make a unilateral decision to send 8 people into space and make it happen, is an interesting one. The author explores this idea pretty well and makes it abundantly clear how bad of an idea it really is. None of these people were truly equipped to deal with cultural differences and their doom was inevitable, because they simply did not understand what was happening around them and why. Missionaries have historically always been on the leading edge of exploration, after all, bringing the word of God to heathens is part of the very DNA of almost all religions. This, however, does not make them the best candidates for such things.

From the point of view of speculative fiction, this is a really interesting book, from the view point of an empathetic human being, this book is rather depressing and it is difficult not to put the book down as the fate of the crew unfolds. At this point I have not decided if I am going to read the second book or not.

View all my reviews