Letter Roller

Computer Science | Artificial Intelligence | Computational Biology | Chess | Blender

Letter Roller

This is a simple console-based program that rolls letters in a string. The program takes a string randomly chosen by the computer and it displays them in a loop designed in the Terminal.

Letter Roller

#include <iostream>
#include <ctime>
#include <chrono>
#include <thread>
#include <unistd.h>
#include <cmath>
#include <iomanip>
bool gameOn = true;
const int width = 90;
const int height = 44;
int score, boxesPos = 30;
int computer1 = rand() % 26;
int computer2 = rand() % 26;
int computer3 = rand() % 26;
char chances[] = {'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A',
            'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V',
            'B', 'N', 'M'};
enum choices {'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 
            'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B',
            'N', 'M'};

std::string player = "BOM";
void drawBoard()
{
  system("clear");
  for (int i = 0; i < width + 2; i++)
  {
    std::cout << '*';
  }
  std::cout << std::endl;
  for (int i = 0; i < height; i++)
  {
    for (int j = 0; j < width; j++)
    {
      if (j == 0)
      {
        std::cout << 'T';
      }
      else if (j == width - 1)
      {
        std::cout << 'T';
      }
      else if (j == 15 && i == 22)
      {
        srand(time(NULL));
        computer1 = rand() % 26;
        switch (computer1)
        {
        case Q:
          std::cout << chances[0];
          break;
        case W:
          std::cout << chances[1];
          break;
        case E:
          std::cout << chances[2];
          break;
        case R:
          std::cout << chances[3];
          break;
        case T:
          std::cout << chances[4];
          break;
        case Y:
          std::cout << chances[5];
          break;
        case U:
          std::cout << chances[6];
          break;
        case I:
          std::cout << chances[7];
          break;
        case O:
          std::cout << chances[8];
          break;
        case P:
          std::cout << chances[9];
          break;
        case A:
          std::cout << chances[10];
          break;
       case S:
          std::cout << chances[11];
          break;
        case D:
          std::cout << chances[12];
          break;
        case F:
          std::cout << chances[13];
          break;
        case G:
          std::cout << chances[14];
          break;
        case H:
          std::cout << chances[15];
          break;
        case J:
          std::cout << chances[16];
          break;
        case K:
          std::cout << chances[17];
          break;
        case L:
          std::cout << chances[18];
          break;
        case Z:
          std::cout << chances[19];
          break;
        case X:
          std::cout << chances[20];
          break;
        case C:
          std::cout << chances[21];
          break;
        case V:
          std::cout << chances[22];
          break;
        case B:
          std::cout << chances[23];
          break;
        case N:
          std::cout << chances[24];
          break;
        case M:
          std::cout << chances[25];
          break;
        default:
          break;
        }
      }
      else if (j == 45 && i == 22)
      {
        computer2 = rand() % 26;
        switch (computer2)
        {
        case Q:
          std::cout << chances[0];
          break;
        case W:
          std::cout << chances[1];
          break;
        case E:
          std::cout << chances[2];
          break;
        case R:
          std::cout << chances[3];
          break;
        case T:
          std::cout << chances[4];
          break;
        case Y:
          std::cout << chances[5];
          break;
        case U:
          std::cout << chances[6];
          break;
        case I:
          std::cout << chances[7];
          break;
        case O:
          std::cout << chances[8];
          break;
        case P:
          std::cout << chances[9];
          break;
        case A:
          std::cout << chances[10];
          break;
       case S:
          std::cout << chances[11];
          break;
        case D:
          std::cout << chances[12];
          break;
        case F:
          std::cout << chances[13];
          break;
        case G:
          std::cout << chances[14];
          break;
        case H:
          std::cout << chances[15];
          break;
        case J:
          std::cout << chances[16];
          break;
        case K:
          std::cout << chances[17];
          break;
        case L:
          std::cout << chances[18];
          break;
        case Z:
          std::cout << chances[19];
          break;
        case X:
          std::cout << chances[20];
          break;
        case C:
          std::cout << chances[21];
          break;
        case V:
          std::cout << chances[22];
          break;
        case B:
          std::cout << chances[23];
          break;
        case N:
          std::cout << chances[24];
          break;
        case M:
          std::cout << chances[25];
          break;
        default:
          break;
        }
      }
      else if (j == 75 && i == 22)
      {
        computer3 = rand() % 26;
        switch (computer3)
        {
        case Q:
          std::cout << chances[0];
          break;
        case W:
          std::cout << chances[1];
          break;
        case E:
          std::cout << chances[2];
          break;
        case R:
          std::cout << chances[3];
          break;
        case T:
          std::cout << chances[4];
          break;
        case Y:
          std::cout << chances[5];
          break;
        case U:
          std::cout << chances[6];
          break;
        case I:
          std::cout << chances[7];
          break;
        case O:
          std::cout << chances[8];
          break;
        case P:
          std::cout << chances[9];
          break;
        case A:
          std::cout << chances[10];
          break;
       case S:
          std::cout << chances[11];
          break;
        case D:
          std::cout << chances[12];
          break;
        case F:
          std::cout << chances[13];
          break;
        case G:
          std::cout << chances[14];
          break;
        case H:
          std::cout << chances[15];
          break;
        case J:
          std::cout << chances[16];
          break;
        case K:
          std::cout << chances[17];
          break;
        case L:
          std::cout << chances[18];
          break;
        case Z:
          std::cout << chances[19];
          break;
        case X:
          std::cout << chances[20];
          break;
        case C:
          std::cout << chances[21];
          break;
        case V:
          std::cout << chances[22];
          break;
        case B:
          std::cout << chances[23];
          break;
        case N:
          std::cout << chances[24];
          break;
        case M:
          std::cout << chances[25];
          break;
        default:
          break;
        }
      }
      else
      {
        for (int k = boxesPos; k < 90; k += boxesPos)
        {
          if (j == k)
          {
            std::cout << '|';
          }
        }
        if (j != width || j != 0)
        {
          std::cout << ' ';
        }
      }
    }
    std::cout << std::endl;
  }
  for (int i = 0; i < width + 2; i++)
  {
    std::cout << '*';
  }
  std::cout << std::endl;
}
void input() 
{
  // std::cout << "Enter your 3-letter-lucky word; ";
  // std::getline(std::cin >> std::ws,player);
}
void logic()
{
  if (chances[computer1] == player[0] && chances[computer2] == player[1] &&
   chances[computer3] == player[2])
  {
    std::cout << "BAM!\n";
    gameOn = false;
  }
  else
  {
    std::cout << "OOPS!\n";
  }
}

int main()
{
  system("clear");
  input();
  while (gameOn)
  {
    drawBoard();
    logic();
    // std::this_thread::sleep_for(std::chrono::milliseconds(1000));
  }

  return 0;
}