Um recht zu behalten.
It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
+------------------------------------------+
|_VLfNs^@`*uej4jL6fFt;V*g$pBQJ==4LuM2k3=W,J|
|9vB%E)LFKiBw:gry}U7%.?BoWqx,v'!ZGc@e5h({IU|
|p9tpme;&ck=`8xax(#B7a93oe:!,3Vnc4LB0b60Sjn|
|4BM=)i6-PePSs[y;6:8J&E[*LqTBDLghJxf(i8%m=_|
|^9%*T9TkMZTeVC66&"3s.=*9d?Tu*W]/rH?v'umWSP|
|+e^V3\'mYX=!0(fF.XSM%l7k4n]V;pOut/OsR.U][^|
|.3x03lK$/>T`O_QPy_JNu8^}A51jpr_vK*BTlhotoa|
|R"zk^-\U<(TU'DgCrKN*1U-:L=2ym_0GKu7`|}i},z|
|pO"pe)&o'7#`|usgN1Q=QrJUHtwHA].2]|j|,9F)#(|
|^sLAT"b}tisQJ/xi-+P4Fb>Mt:e9#MCaK4D[\H2?6s|
|;e\L.EkGI*,c"8k6}M]@_Rb`=[zbOn"#e"A"a*g4+h|
|zDbe^Q0t[[.sC|&NQ#=:fWy(u/Jgd*Rv6n`rneSN:B|
|huR}*Ymz{POtl.xoU|lB>Oze-Q1zVfb?j|E}\($j:t|
|sTrk|rN,"iT4\ENd(G85|'o$&i2lhlNuol*@[;]kZ\AH{8Gh{C04")bz(EA3w25|
|p`kX7Z#FqIv?>Slj{e(334t?]7e8OIH#pR,q;X(iNF|
|^o#e3ZYs^6v2)T]+2I#SH-YX011sf#esD*XEN%43{t|
|yG.4Cw&{dY@A:O#7LD{,qV9PC\3b3t{Fp^S}qG1z4Z|
|/Y-]TT)`q0Ih!0Kkd-+c4HRHRu`d:cr?)6;CpL_?[;|
|M/FgL|f|sL,4Y#hrG]es|X(WK5/JSZyi5$T-8/5h6l9U,FY0uxo*@[h{itg\*^k|
|'BuhYzQ^7CO,\v28`w2QCO`azyy#}N6ld9h5h)Y,ju|
|Fbj!Bt)o5!{T{Y>gnte.HL{*SPU)`Z_g(puIk;ancF|
|aVJF_^00AebR%5>p0r1&qo5;z,3YTyH):jyZ5EX^,u|
|!5CGu0F4Z1A9Ji8N{vumEfCRS|
+------------------------------------------+
+------------------------------------------+
| * | 15
| * | 13
| * | 9
| |
| * | 1
| |
| * | 6
| |
| |
| * *| 4 14
| |
| * | 2
| |
| |
| * * * | 17 12 11
| |
| * * | 5 3
| * | 8
| * | 7
| * | 16
| * | 10
| |
| |
| |
| |
+------------------------------------------+
+------------------------------------------+
| * | 17
| |
| |
| * | 14
| * | 13
| * | 12
| * | 8
| |
| |
| * | 16
| |
| * * | 3 5
|* | 11
| * | 7
| * | 1
| |
| |
| |
| * | 10
| * | 15
| * | 4
| * * | 2 18
| * | 6
| |
| *| 9
+------------------------------------------+
+------------------------------------------+
| |
| |
| * | 6
| |
| * | 7
| |
| |
| |
| |
| * | 3
| * * *| 10 14 11
| |
| * | 18
|* * | 15 1
| |
| * | 12
| * *| 16 5
| * | 4
| * * | 13 2
| |
| |
| |
| * | 9
| * * | 8 17
| |
+------------------------------------------+
import java.util.*;
public class Main {
private Random rand;
/**
* @param args
*/
public static void main(String[] args) {
// main method
Random rand = new Random();
// size of text array
int n = 25; //new Integer(args[0]);
int m = 42; //new Integer(args[1]);
// keys to encrypt
//String[] keys = new String[args.length - 2];
//for (int i = 0; i < args.length - 2; i++)
// keys[i] = args[i + 2];
String[] keys = new String[]{"erster_Schluessel", "zweiter_Schluessel", "dritter_Schluessel"};
// as many grilles as keys
char[][][] grilles = new char[keys.length][n][m];
// as many lists for character number as keys
int[][][] lists = new int[keys.length][n][m];
// array for text
char[][] text = new char[n][m];
// array for already used cells of array
boolean[][] set = new boolean[n][m];
// fill array with random text
for (int j = 0; j < m; j++){
for (int i = 0; i < n; i++){
int r = rand.nextInt(93) + 33;
text[i][j] = (char)r;
}
}
// encrypt keys
for (int k = 0; k < keys.length; k++){
// create empty grille
for (int j = 0; j < m; j++)
for (int i = 0; i < n; i++)
grilles[k][i][j] = ' ';
// key to be encrypted
String key = keys[k];
// encrypt key
insertText(key, text, grilles[k], set, lists[k], rand);
}
// print text
printArray(text, null);
// print grilles
for (int k = 0; k < keys.length; k++)
printArray(grilles[k], lists[k]);
}
public static void insertText(String key, char[][] text, char[][] grille, boolean[][] set, int[][] list, Random rand){
// encodes key in text and marks grille, set and list with the corresponding character
int n = text.length; // vertical size of text
int m = text[0].length; // horizontal size of text
// encrypt key
for (int j = 0; j < key.length(); j++){
// sample some cell of text array
int ri = rand.nextInt(n);
int rj = rand.nextInt(m);
// make sure that it is not already used
while (set[ri][rj]){
ri = rand.nextInt(n);
rj = rand.nextInt(m);
}
list[ri][rj] = j + 1; // save character number of key
text[ri][rj] = key.charAt(j); // put character into text
grille[ri][rj] = '*'; // mark hole of current grille
set[ri][rj] = true; // mark cell as being used
}
}
public static void printArray(char[][] array, int[][] list){
// prints text and grilles on the screen
// print horizontal boarder on the top
System.out.print("+");
for (int j = 0; j < array[0].length; j++)
System.out.print("-");
System.out.println("+");
// print text and left and right boarder as well as character number
for (int i = 0; i < array.length; i++){
System.out.print("|");
for (int j = 0; j < array[0].length; j++)
System.out.print(array[i][j]);
System.out.print("| ");
// print character numbers in the current line
if (list != null)
for (int j = 0; j < list[0].length; j++)
if (list[i][j] != 0)
System.out.print(list[i][j] + " ");
System.out.println();
}
// print horizontal boarder on the bottom
System.out.print("+");
for (int j = 0; j < array[0].length; j++)
System.out.print("-");
System.out.println("+");
System.out.println();
}
}