Wednesday, August 29, 2012

Guild Wars 2

This is a fun game. I'm usually a highly strategic gamer and rarely get pulled into the game and just play it. GW2 is different. I think it is the combination of MMO play and the dynamic world that keeps driving me forward. As to my game play, it could definitely use improvement.

My first experience of the game was in the first open beta weekend event. I was playing a Charr Guardian and the overall atmosphere hooked right into my warrior side like no other MMORPG has ever done. The over-riding impetus was just "Go! Go! Go!" and I found myself at level 2 before I even started seriously wondering what the powers I was using did. But then some dynamic event started and I dove right back into the action. I didn't actually force myself to stop and do so until level 4!

I still a fairly vaguest idea what any of my abilities do, but that isn't for want of being informed--it just isn't where my attention is directed. Fortunately the game is fairly forgiving at this point and some semblance of a strategy is slowly forming amid the frantic forward movement and mad button mashing.

The dynamic events are great because the never really get boring. Well, okay the stampeding monotar thing in the Norn staring area is starting to get old and I've begun to only fight the minotaurs I actually run into while I'm running across the map. But between beta and now I've participated in that event well over a dozen times. But I'm ready to move on to greener pastures anyway...well, I guess the next area is snow-covered hills actually.

My experience couldn't be farther from the original Guild Wars. And that is totally a good thing. I wanted to like Guild Wars since ArenaNet is local and I've been getting bored with WoW for quite some time. But GW was just... dead. Part of it was the instanced environment which meant only running into players in town and took most of the MMO feel out of the game. But largely it was the richness of the world that was created. The art was good, but it was static and rather sparse. The cities were sprawling and dead. A few PCs clustered here and there or running about, but no other sign tha the world of GW was a real place.

By contrast the cities of GW2 are vibrant and bustling. Everywhere one goes stuff is going on. It is a living breathing world that I love being a part of.

Monday, August 6, 2012

Code Typing Practice App

As my typing speed with normal text has improved, my disproportionately lower skill in typing the kinds of character combinations that are found in code (and in error messages in my help desk job) has begun to grate on me. I looked for a typing program specialized for coding but didn't find one. So I decided I would make it. This version establishes basic functionality. The only time pressure is my desire to type faster, so it isn't ideal, but it does work.

Initially I was hung up on the idea of using actual commands, which would have been a great learning tool, but also harder to implement. Then I realized what I really cared about was teaching my fingers to find the weird keys, and random text works fine for that. So I created the following. Characters I've been having trouble with are listed multiple times so I get more practice on them.

// TypingCode.cpp : Defines the entry point for the console application.
// by Jeff Fisher
// 7/30/2012
// This is a simple typing practice application.
// Data entry is not timed and speed is not measured.

#include "stdafx.h"
#include <iostream>
#include <string>
#include <time.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
   string goalStr; // The string we want to type
   string typedStr; // The string we do type
   const int numSymb = 122; // The total number of symbols in the array
   string symbStr[numSymb] = {"\"", "\'",
   
      "*", "-", "--","-=","_", "+", "+", "+=", "=", ",",
      ".", "?", "/", "<","<<","<=", ">", ">>",">=","->",
      "\\", "@","!","||", "]", "}", "}", "}", ")", ")", ")",
      "(","(", "(", "{", "{", "{", "[", ";", ":", "~", "`",
      "1", "1", "2", "2", "3", "3", "4", "4", "5", "5",
      "6", "6", "7", "7", "8", "8", "9", "9", "0", "0",
      "a", "A", "b", "B", "c", "C", "d", "D", "e", "E",
      "f", "F", "g", "G", "h", "H", "i", "I", "j", "J",
      "k", "K", "l", "L", "m", "M", "n", "N", "o", "O",
      "p", "P", "q", "Q", "r", "R", "s", "S", "T", "t",
      "u", "U", "v", "V", "x", "X", "y", "Y", "z", "Z"};
      // All of the symbols that initialize the numSymb array
   float score = 0; // Tracks the net number of correct words
   int strLength = 2; // The starting length of the string we need to type
   srand(time(NULL)); // Seeds the RAND function

   // Main game loop using do-while
   do{
      // for loop builds the string for the user to type
      for( int i=0; i<strLength; i++ ){
         goalStr += symbStr[ rand() % numSymb ];
      }


      cout << goalStr << endl; // Gives the user the goal
      cin >> typedStr; // User input

      // Checks if the typed string is correct
      if(typedStr==goalStr){
         cout << endl << "WIN!" << endl << endl; // Lets the user know
         score = score + 1; // Increments the score
         strLength = sqrt(score)+2; // Updates the length based on the current score
         goalStr = ""; // Clears the goal string
      } // If the string is not correct
      else{
         cout << endl << "FAIL!" << endl << endl; // Lets the user know
         score = score - 1; // Lowers the score
         strLength = sqrt(score)+2; // Updates the length based on the current score
         goalStr = ""; // Clears the goal string
      }
   }
   while( strLength < 12 ); // If the string length gets to 12 the game ends

   cout << endl << "Good job. I need to make this harder!"; // Lets the user know
   system("pause"); // Gives them a chance to revel in their glory
   return 0;
}