Thursday, 28 May 2009

An Outside Context Problem …


You know, I realise that — if you’ve been reading me for a while — you’d’ve probably thought I’m a one horse sci-fi obsessed, pony.

Which I’m not.

Really.

I mean, I have read “Anna Karenina”, after all.

That sounds even worse, doesn’t it?

OK, I’ll happily admit to — outside of the Sci-Fi ghetto — I’m not exactly widely read. Possibly not even that.

But I will admit to a fondness for John Le Carré, Frederick Forsyth, and Ian Fleming; as divergent a bunch of thriller writer’s as it’s possible to find.

And then there’s a certain Mr Iain Menzies Banks; whose novel, “Excession”, is currently on my bedtime reading list, and does knock out a good ’un, I’m thinking.

Now, I’ll happily admit I’ve not read much of his mainstream stuff. But his science fiction?

I like it.

It’s that world-building thing, again.

Quite literally, in Mr B’s case; many of his novels take place in his Culture universe, where Dyson Sphere’s are, if not as common as muck, then certainly frequent enough to not cause to much comment*. Everyday Big Science, in other words …

And with The Culture and it’s universe, Iain M Banks has put a believable — and BIG — background together. The Culture itself is a collection of human, humanish, not-very-near-human, and outright alien species , all of whom living in a benevolent technocratic, and very technologically advanced union.

That’s very unlike the Federation, in “Star Trek”, before you mention it.

The Federation is idealistic, and dedicated to — if not spreading those ideals — then certainly making sure that bad peopleº don’t spread theirs.

Now, as Banks presents the Culture, the Culture’s idealistic …

It’s ideal is to party.

Is that too simplistic?

I should rephrase that, maybe; the citizens of the Culture seem, to an entity, to live to the old pagan law. That, so long as you’re not hurting anyone else, doing whatever you want to do s the order o the day.

Which is a point, while I’m on the subject of citizens; I mentioned the biological ones, earlier didn’t I?

Yes I did.

I didn’t mention the artificial ones.

The Culture quite happily has artificial intelligence's as citizens and members of the community. Ranging from the smallish Drones, through various size of artificially intelligent ships — with inhabitants ranging from ‘crew’ to ‘populationª’ — all the way up to artificial worlds, with Minds, as Banks calls them, actually doing the organising. You know, running the life support, atmosphere, sunshine … and knocking out poetry and building life-sized model’s of the Battle of Waterloo, in-between …

Those ships feature heavily in “Excession”.

Mostly because they’re key to finding the Excession of the title; and or at least finding, and responding to, it.

What ‘it’ is, is an perfect sphere, complete black, almost undetectable … and seemingly older than the universe, itself.

What worries both the Minds, and Special Circumstances — the Culture’s in-house dirty tricks department — is that this could well be an Outside Context Problem.

To qoute the novel itself … ?
“The usual example given to illustrate an Outside Context Problem was imagining you were a tribe on a largish, fertile island; you'd tamed the land, invented the wheel or writing or whatever, the neighbours were cooperative or enslaved but at any rate peaceful and you were busy raising temples to yourself with all the excess productive capacity you had, you were in a position of near-absolute power and control which your hallowed ancestors could hardly have dreamed of and the whole situation was just running along nicely like a canoe on wet grass … when suddenly this bristling lump of iron appears sailless and trailing steam in the bay and these guys carrying long funny-looking sticks come ashore and announce you've just been discovered, you're all subjects of the Emperor now, he's keen on presents called tax and these bright-eyed holy men would like a word with your priests.”
That’s just simplifying the issue, of course.

Another complication is the fact that many of the major character’s are the various Minds.

Which I think is where it gets interesting …

At any rate, I’ll say no more.

Except I think you should really check this out for yourself.




* What causes comment are the interesting variations. Bank’s latest Culture novel, “Matter”, features a Shellworld; a world that’s a series of Dyson Spheres, within Dyson Spheres, within Dyson Spheres. Much like an intergalactic Russian doll, in other words.

º You know, Klingons, Romulans, Communists, what-have you …

ª I’m assuming you’ve not got a problem about a lack of numbers? Just the fact that a ship has a population should tell you something about the size, if not the function …

Ежедневные дразнилку

Hmmm; so “Ежедневные дразнилку” is “Daily Teaser” in Russian?

Okkaaayy …

Right, without much further ado, here’s today’s questions and answer …

Q1) Today in 1936 saw scientist Alan Turing publish his paper that defined modern computers; he and his computers were used to break codes in which war?


Q2) 28th May, 1979, saw which country join the EU?


Q3) 28th May also saw the opening of which office block; the Chrysler Building, or the Empire State Building?


Q4) 28th May, 1999, saw which of Leonardo Da Vinci’s painting’s go back on display?


Q5) Which of the Brontë sister’s died today, in 1849?


And here’s yesterday’s questions and answers …

Q1) Wild Bill Hickok was born, today, in 1837; what card game was he famously playing, when he was shot?

A1) Poker. (The hand he was holding —two pairs, aces and eights — is now known as the Dead Man’s Hand.)


Q2) May 27th, 1933, saw Disney release “Three Little Pigs” cartoon; what was the name of that cartoon’s famous song?

A2) “Who’s Afraid of the Big Bad Wolf”.


Q3) Which Irish poet was imprisoned for Sodomy, today, in 1895?

A3) Oscar Wilde.


Q4) On the birthday front, today saw the birth of rapper, André Lauren Benjamin; which member of OutKast is he?

A4) André 3000.


Q5) And finally, who became the first PM of Kenya, today, in 1963?

A5) Jomo Kenyatta.


Enjoy!






Wednesday, 27 May 2009

The script …

You know, I think I’ve finally — ish — cracked what I set out to do. I’ve finally managed to finish … the Character Generator!

So you know, this is a Character Generation script for 5th Edition “Tunnels and Trolls”, written in Applescript on on Script Utility version 2.2.1, on a Mac Mini using Mac OS X 10.5.7

Now I could’ve probably used OS X’s onboard version’s of Java or Python for this; except I don’t actually know either.

And I’ve a little — very little — familiarity with Applescript to put this together. I think I can probably refine, but …

Well, here’s the first part, used to generate the random numbers that you’ll need as the basis for your character’s statistics, height, and weight, and finds out what sex, and species you want to be.

display dialog "Would you like to generate a T & T character?" buttons {"No", "Yes"} default button 2

if the button returned of the result is "No" then

say "Ok, that’s cool." using "Vicki"

else

set numberslist to {3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 17, 17, 17, 18}

set Strength1 to some item of numberslist

set Intelligence1 to some item of numberslist

set Luck1 to some item of numberslist

set Constitution1 to some item of numberslist

set Dexterity1 to some item of numberslist

set Charisma1 to some item of numberslist

set Height1 to some item of numberslist

set Weight1 to some item of numberslist

end if


display dialog "Would you like to be Human, Elf, or Dwarf?" default answer "Your Character’s Race"

set playerRace to the text returned of result



The next part actually manipulates those figures, based on what you’ve told it, to find out what your actual characteristics will be.

if playerRace is "Human" or "human" then set Strength2 to Strength1

if playerRace is "Human" or "human" then set Intelligence2 to Intelligence1

if playerRace is "Human" or "human" then set Luck2 to Luck1

if playerRace is "Human" or "human" then set Constitution2 to Constitution1

if playerRace is "Human" or "human" then set Dexterity2 to Dexterity1

if playerRace is "Human" or "human" then set Charisma2 to Charisma1

if playerRace is "Human" or "human" then set Height2 to Height1

if playerRace is "Human" or "human" then set Weight2 to Weight1


if playerRace is "Elf" or "elf" then set Strength2 to Strength1

if playerRace is "Elf" or "elf" then set Intelligence2 to round (Intelligence1 * (3 / 2)) rounding down

if playerRace is "Elf" or "elf" then set Luck2 to Luck1

if playerRace is "Elf" or "elf" then set Constitution2 to round (Constitution1 * (2 / 3)) rounding down

if playerRace is "Elf" or "elf" then set Dexterity2 to round (Dexterity1 * (3 / 2)) rounding down

if playerRace is "Elf" or "elf" then set Charisma2 to (Charisma1 * 2)

if playerRace is "Elf" or "elf" then set Height2 to (round Height1 * (11 / 10) rounding down)

if playerRace is "Elf" or "elf" then set Weight2 to round (Weight1 * (7 / 8)) rounding down


if playerRace is "Dwarf" or "dwarf" then set Strength2 to (Strength1 * 2)

if playerRace is "Dwarf" or "dwarf" then set Intelligence2 to Intelligence1

if playerRace is "Dwarf" or "dwarf" then set Luck2 to Luck1

if playerRace is "Dwarf" or "dwarf" then set Constitution2 to (Constitution1 * 2)

if playerRace is "Dwarf" or "dwarf" then set Dexterity2 to Dexterity1

if playerRace is "Dwarf" or "dwarf" then set Charisma2 to round (Charisma1 * (2 / 3)) rounding down

if playerRace is "Dwarf" or "dwarf" then set Height2 to round (Height1 * (2 / 3)) rounding down

if playerRace is "Dwarf" or "dwarf" then set Weight2 to round (Weight1 * (7 / 8)) rounding down


display dialog "Would you like to be male or female?" default answer "Male"

set playerSex to the text returned of result


set w to 0

set x to 0

set y to 0

set z to 0

if Strength2 is greater than 12 then set w to Strength2 - 12

if Strength2 is less than 9 then set w to 9 - Strength2

if Intelligence2 is greater than 12 then set x to Intelligence2 - 12

if Intelligence2 is less than 9 then set x to 9 - Intelligence2

if Luck2 is greater than 12 then set y to Luck2 - 12

if Luck2 is less than 9 then set y to 9 - Luck2

if Dexterity2 is greater than 12 then set z to Dexterity2 - 12

if Dexterity2 is less than 9 then set z to 9 - Dexterity2


set CombatAdds to w + x + y + z


if Height2 is 3 and playerSex is "Male" or "male" then set height to "4 foot"

if Height2 is 3 and playerSex is "Female" or "female" then set height to "3 foot 10"

if Height2 is 4 and playerSex is "Male" or "male" then set height to "4 foot 3"

if Height2 is 4 and playerSex is "Female" or "female" then set height to "4 foot 1"

if Height2 is 5 and playerSex is "Male" or "male" then set height to "4 foot 5"

if Height2 is 5 and playerSex is "Female" or "female" then set height to "4 foot 3"

if Height2 is 6 and playerSex is "Male" or "male" then set height to "4 foot 8"

if Height2 is 6 and playerSex is "Female" or "female" then set height to "4 foot 6"

if Height2 is 7 and playerSex is "Male" or "male" then set height to "4 foot 10"

if Height2 is 7 and playerSex is "Female" or "female" then set height to "4 foot 8"

if Height2 is 8 and playerSex is "Male" or "male" then set height to "5 foot 1"

if Height2 is 8 and playerSex is "Female" or "female" then set height to "4 foot 11"

if Height2 is 9 and playerSex is "Male" or "male" then set height to "5 foot 3"

if Height2 is 9 and playerSex is "Female" or "female" then set height to "5 foot 1"

if Height2 is 10 and playerSex is "Male" or "male" then set height to "5 foot 6"

if Height2 is 10 and playerSex is "Female" or "female" then set height to "5 foot 4"

if Height2 is 11 and playerSex is "Male" or "male" then set height to "5 foot 8"

if Height2 is 11 and playerSex is "Female" or "female" then set height to "5 foot 6"

if Height2 is 12 and playerSex is "Male" or "male" then set height to "5 foot 11"

if Height2 is 12 and playerSex is "Female" or "female" then set height to "5 foot 9"

if Height2 is 13 and playerSex is "Male" or "male" then set height to "6 foot 1"

if Height2 is 13 and playerSex is "Female" or "female" then set height to "5 foot 11"

if Height2 is 14 and playerSex is "Male" or "male" then set height to "6 foot 4"

if Height2 is 14 and playerSex is "Female" or "female" then set height to "6 foot 2"

if Height2 is 15 and playerSex is "Male" or "male" then set height to "6 foot 6"

if Height2 is 15 and playerSex is "Female" or "female" then set height to "6 foot 4"

if Height2 is 16 and playerSex is "Male" or "male" then set height to "6 foot 9"

if Height2 is 16 and playerSex is "Female" or "female" then set height to "6 foot 7"

if Height2 is 17 and playerSex is "Male" or "male" then set height to "6 foot 11"

if Height2 is 17 and playerSex is "Female" or "female" then set height to "6 foot 9"

if Height2 is 18 and playerSex is "Male" or "male" then set height to "7 foot 2"

if Height2 is 18 and playerSex is "Female" or "female" then set height to "7 foot"


if Weight2 is 3 and playerSex is "Male" or "male" then set weight to "75"

if Weight2 is 3 and playerSex is "Female" or "female" then set weight to "65"


if Weight2 is 4 and playerSex is "Male" or "male" then set weight to "90"

if Weight2 is 4 and playerSex is "Female" or "female" then set weight to "80"


if Weight2 is 5 and playerSex is "Male" or "male" then set weight to "105"

if Weight2 is 5 and playerSex is "Female" or "female" then set weight to "95"


if Weight2 is 6 and playerSex is "Male" or "male" then set weight to "120"

if Weight2 is 6 and playerSex is "Female" or "female" then set weight to "110"


if Weight2 is 7 and playerSex is "Male" or "male" then set weight to "135"

if Weight2 is 7 and playerSex is "Female" or "female" then set weight to "125"


if Weight2 is 8 and playerSex is "Male" or "male" then set weight to "150"

if Weight2 is 8 and playerSex is "Female" or "female" then set weight to "140"


if Weight2 is 9 and playerSex is "Male" or "male" then set weight to "160"

if Weight2 is 9 and playerSex is "Female" or "female" then set weight to "150"


if Weight2 is 10 and playerSex is "Male" or "male" then set weight to "170"

if Weight2 is 10 and playerSex is "Female" or "female" then set weight to "160"


if Weight2 is 11 and playerSex is "Male" or "male" then set weight to "180"

if Weight2 is 11 and playerSex is "Female" or "female" then set weight to "170"


if Weight2 is 12 and playerSex is "Male" or "male" then set height to "190"

if Weight2 is 12 and playerSex is "Female" or "female" then set weight to "180"


if Weight2 is 13 and playerSex is "Male" or "male" then set weight to "200"

if Weight2 is 13 and playerSex is "Female" or "female" then set weight to "190"


if Weight2 is 14 and playerSex is "Male" or "male" then set weight to "225"

if Weight2 is 14 and playerSex is "Female" or "female" then set weight to "215"


if Weight2 is 15 and playerSex is "Male" or "male" then set weight to "250"

if Weight2 is 15 and playerSex is "Female" or "female" then set weight to "240"


if Weight2 is 16 and playerSex is "Male" or "male" then set weight to "280"

if Weight2 is 16 and playerSex is "Female" or "female" then set weight to "270"


if Weight2 is 17 and playerSex is "Male" or "male" then set weight to "310"

if Weight2 is 17 and playerSex is "Female" or "female" then set weight to "300"


if Weight2 is 18 and playerSex is "Male" or "male" then set weight to "350"

if Weight2 is 18 and playerSex is "Female" or "female" then set weight to "340"


As you can see, I’ve also included the basic calculation of your character’s combat adds; that’s the bonus — or negative number — that’s added to the amount of hits you roll, for your weapon in combat. It also generates your height and weight.

say "Your Strength is" using "Vicki"

say Strength2 using "Vicki"

say "Your Inteligence is" using "Vicki"

say Intelligence2 using "Vicki"

say "Your Luck is" using "Vicki"

say Luck2 using "Vicki"

say "Your Constitution is" using "Vicki"

say Constitution2 using "Vicki"

say "Your Dexterity is" using "Vicki"

say Dexterity2 using "Vicki"

say "Your Charisma is" using "Vicki"

say Charisma2 using "Vicki"


if CombatAdds is greater than 0 then say "You have a combat bonus of plus" using "Vicki"

if CombatAdds is greater than 0 then say CombatAdds using "Vicki"


if CombatAdds is less than 0 then say "You have a combat modifier of minus" using "Vicki"

if CombatAdds is less than 0 then say CombatAdds


if CombatAdds is equal to 0 then say "You do not have a combat modifier" using "Vicki"



set Gold to (some item of numberslist) * 10


say "You have " using "Vicki"

say Gold using "Vicki"

say " gold pieces" using "Vicki"


say "You are a " using "Vicki"

say height using "Vicki"

say weight using "Vicki"

say "pound" using "Vicki"

say playerSex using "Vicki"

say playerRace using "Vicki"


say "Please enjoy your" using "Vicki"

if playerRace is "Human" or "human" then say "fantasy adventure" using "Vicki"

if playerRace is "Elf" or "elf" then say "Elven adventure" using "Vicki"

if playerRace is "Dwarf" or "dwarf" then say "dwarven adventure" using "Vicki"


That final part tells you what your stats are, as well as your height, weight and sex. And how much money you’ve got.

Phew!

Now I know I could probably have handled the height and weight section a little better; I think it’s throwing up some oddities.

Like a female elf, and a male dwarf the same height and weight!

But feel free to copy and paste, folks!!!!

And I’m sorry about the adverts, but I always think they’re fun …