1

I have a randomly generated sentence from 16 txt files and I'm trying to reverse engineer the function so that I could see which sentence corresponds to which txt file. I'm using if/else right now but it's very slow and I'm wondering if there's another way to do this? I'm using p5.js and rita.js libraries.

var lines, markov, data1, data2, data3, data4, data5, data6, data7,  x = 160, y = 240;
var mySound;
let myCanvas;
var randomImageLocation;
let img = [];
var index = 0;
var typed="";
var ellipsecolor = 44;
var timer = 10;
var nextTime = timer;
let button;
let anotherStrata;
let myfi;
let datta1;

function preload() {
  data1 = loadStrings('assets/newtxt/1.txt');
  data2 = loadStrings('assets/newtxt/2.txt');
  data3 = loadStrings('assets/newtxt/three.txt');
  data4 = loadStrings('assets/newtxt/four.txt');
  data5 = loadStrings('assets/newtxt/five.txt');
  data6 = loadStrings('assets/newtxt/six.txt');
  data7 = loadStrings('assets/newtxt/seven.txt');
  data8 = loadStrings('assets/newtxt/8.txt');
  data9 = loadStrings('assets/newtxt/9.txt');
  data10 = loadStrings('assets/newtxt/ten.txt');
  data11 = loadStrings('assets/newtxt/11.txt');
  data12 = loadStrings('assets/newtxt/12.txt');
  data13 = loadStrings('assets/newtxt/13.txt');
  data14 = loadStrings('assets/newtxt/14.txt');
  data15 = loadStrings('assets/newtxt/15.txt');
  data16 = loadStrings('assets/newtxt/16.txt');
  img[0] = loadImage("img/img0.png");
  img[1] =  loadImage("img/img1.png");
  bg = loadImage("img/background.jpg");
}


function setup() {
  let createcanvas = createCanvas(window.innerWidth /2 , window.innerHeight - 150);
  createcanvas.parent('mycanvas');
  bg = loadImage("img/background.jpg");
  textFont('avenir');
  textSize(20 + (mouseX / width)*72);
  frameRate(30);
   fill('beige');
   lines = ["click to place your order!"];

  // create a markov model w' n=4
  markov = new RiMarkov(8);

  datta1 = data1.join(' ');
  datta2 = data2.join(' ');
  datta3 = data3.join(' ');
  datta4 = data4.join(' ');
  datta5 = data5.join(' ');
  datta6 = data6.join(' ');
  datta7 = data7.join(' ');
  datta8 = data8.join(' ');
  datta9 = data9.join(' ');
  datta10 = data10.join(' ');
  datta11 = data11.join(' ');
  datta12 = data12.join(' ');
  datta13 = data13.join(' ');
  datta14 = data14.join(' ');
  datta15 = data15.join(' ');
  datta16 = data16.join(' ');
  // load text into the model
  markov.loadText(data1.join(' '));
  markov.loadText(data2.join(' '));
  markov.loadText(data3.join(' '));
  markov.loadText(data4.join(' '));
  markov.loadText(data5.join(' '));
  markov.loadText(data6.join(' '));
  markov.loadText(data7.join(' '));
  markov.loadText(data8.join(' '));
  markov.loadText(data9.join(' '));
  markov.loadText(data10.join(' '));
  markov.loadText(data11.join(' '));
  markov.loadText(data12.join(' '));
  markov.loadText(data13.join(' '));
  markov.loadText(data14.join(' '));
  markov.loadText(data15.join(' '));
  markov.loadText(data16.join(' '));
  drawText();
}
function ellipsee(){
   if (millis() > nextTime){
    ellipsecolor +=1;
    nextTime = millis() + timer;
    }
}
function draw(){
  image(anotherStrata, 0, 0)
  line(mouseX, mouseY, pmouseX, pmouseY);
  translate (mouseX, mouseY);
  fill(ellipsecolor);
  var value = random(0, 600);
  ellipse(mouseX, mouseY, 0.4, 0.4);
}
function drawText() {
  background(bg);
  textSize(20 + (mouseX / width)*33);
  myfi = text(lines.join(' '), 50, 201, 400, 530);
}

function scrollToBottom(id){
   var div = document.getElementById(id);
   div.scrollTop = div.scrollHeight - div.clientHeight;
}



//this function

function findTxtFile() {

  var pf1 = datta1.includes(lines);
  var pf2 = datta2.includes(lines);
  var pf3 = datta3.includes(lines);
  var pf4 = datta4.includes(lines);
  var pf5 = datta5.includes(lines);
  var pf6 = datta6.includes(lines);
  var pf7 = datta7.includes(lines);
  var pf8 = datta8.includes(lines);
  var pf9 = datta9.includes(lines);
  var pf10 = datta10.includes(lines);
  var pf11 = datta11.includes(lines);
  var pf12 = datta12.includes(lines);
  var pf13 = datta13.includes(lines);
  var pf14 = datta14.includes(lines);
  var pf15 = datta15.includes(lines);
  var pf16 = datta16.includes(lines);

 let newa;
  if (pf1==true){
      newa = createA("assets/newtxt/1.txt", lines);
  }
  if (pf2==true){
      newa = createA("assets/newtxt/2.txt", lines);
  }
  if (pf3==true){
      newa = createA("assets/newtxt/three.txt", lines);
  }
  if (pf4==true){
     newa = createA("assets/newtxt/four.txt", lines);
  }
  if (pf5==true){
      newa = createA("assets/newtxt/five.txt", lines);
  }
  if (pf6==true){
      newa = createA("assets/newtxt/six.txt", lines);
  }
  if (pf7==true){
      newa = createA("assets/newtxt/seven.txt", lines);
  }
  if (pf8==true){
      newa = createA("assets/newtxt/8.txt", lines);
  }
  if (pf9==true){
     newa = createA("assets/newtxt/9.txt", lines);
  }
  if (pf10==true){
      newa = createA("assets/newtxt/ten.txt", lines);
  }
  if (pf11==true){
      newa = createA("assets/newtxt/11.txt", lines);
  }
  if (pf12==true){
      newa = createA("assets/newtxt/12.txt", lines);
  }
  if (pf13==true){
      newa = createA("assets/newtxt/13.txt", lines);
  }
  if (pf14==true){
     newa = createA("assets/newtxt/14.txt", lines);
  }
  if (pf15==true){
      newa = createA("assets/newtxt/15.txt", lines);
  }
  if (pf16==true){
      newa = createA("assets/newtxt/16.txt", lines);
  }

  newa.style('font-family', 'monospace');
  newa.style('color', 'green');
  newa.style('font-size', '12pt');
  newa.parent('consolog');
  newa.class('pulse');

  let newb = createElement('br');
  newb.parent('consolog');
  scrollToBottom('consolog');
  }
function mouseClicked() {
  typed="";
  x = 100;
  y = 220;
  lines = markov.generateSentences(1);
  drawText();
  mySound.play();
  anotherStrata.clear();
  findTxtFile();
}
function mouseReleased(){
           index = index + 1;
          if (index == img.length){
              index = index - img.length;
    }
}
Rabbid76
  • 202,892
  • 27
  • 131
  • 174
ntz
  • 13
  • 2

1 Answers1

0

In p5.js match() respectively matchAll() can be used to find occurrences of a Regular expression or a string in a text.

See the example:

function setup() {
    createCanvas(400, 200);
}

function draw() {
    var string = 'Hello World!';
    
    var str1 = match(string, "World");
    var str2 = match(string, "Dog");

    textSize(50);
    text(str1 ? str1 : "not found", 20, 70);
    text(str2 ? str2 : "not found", 20, 130);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.js"></script>
Rabbid76
  • 202,892
  • 27
  • 131
  • 174