Gematria Primus (cicada) kod

0

Siemka,
Ostatnio trochę się nudziłem i napisałem program dekodujący 1 z szyfrów podanych przez organizacje cicada 3301.
Kod nie jest jakoś super uproszczony, ale działa :)

#include <iostream>
#include <windows.h>
using namespace std;
float second()
{

	cout<<"Hello"<<endl;
	cout<<"Give me letter value and I will give u value"<<endl;
	char letter;
	cin>>letter;
	
	
	if(letter=='F' || letter=='f')
	cout<<"Code numer is 2"<<endl;
	else if(letter=='U' || letter=='u')
	cout<<"Code numer is 3"<<endl;
	else if(letter=='TH' || letter=='th')
	cout<<"Code numer is 5"<<endl;
		else if(letter=='o' || letter=='O')
	cout<<"Code numer is 7"<<endl;
		else if(letter=='R' || letter=='r')
	cout<<"Code numer is 11"<<endl;
		else if(letter=='C' || letter=='c' || letter=='k' || letter=='K')
	cout<<"Code numer is 13"<<endl;
		else if(letter=='G' || letter=='g')
	cout<<"Code numer is 17"<<endl;
		else if(letter=='W' || letter=='w')
	cout<<"Code numer is 19"<<endl;
		else if(letter=='H' || letter=='h')
	cout<<"Code numer is 23"<<endl;
		else if(letter=='N' || letter=='n')
	cout<<"Code numer is 29"<<endl;
		else if(letter=='I' || letter=='i')
	cout<<"Code numer is 31"<<endl;
		else if(letter=='J' || letter=='j')
	cout<<"Code numer is 37"<<endl;
		else if(letter=='EO' || letter=='eo')
	cout<<"Code numer is 41"<<endl;
		else if(letter=='P' || letter=='p')
	cout<<"Code numer is 43"<<endl;
		else if(letter=='X' || letter=='x')
	cout<<"Code numer is 47"<<endl;
		else if(letter=='S' || letter=='s' || letter=='Z' || letter=='z')
	cout<<"Code numer is 53"<<endl;
		else if(letter=='T' || letter=='t')
	cout<<"Code numer is 59"<<endl;
		else if(letter=='B' || letter=='b')
	cout<<"Code numer is 61"<<endl;
		else if(letter=='E' || letter=='e')
	cout<<"Code numer is 67"<<endl;
		else if(letter=='M' || letter=='m')
	cout<<"Code numer is 71"<<endl;
		else if(letter=='L' || letter=='l')
	cout<<"Code numer is 73"<<endl;
		else if(letter=='NG' || letter=='ng' || letter=='ING' || letter=='ING')
	cout<<"Code numer is 79"<<endl;
		else if(letter=='OE' || letter=='oe')
	cout<<"Code numer is 83"<<endl;
		else if(letter=='D' || letter=='d')
	cout<<"Code numer is 89"<<endl;
		else if(letter=='A' || letter=='a')
	cout<<"Code numer is 97"<<endl;
		else if(letter=='AE' || letter=='ae')
	cout<<"Code numer is 101"<<endl;
		else if(letter=='Y' || letter=='y')
	cout<<"Code numer is 103"<<endl;
		else if(letter=='IA' || letter=='ia' || letter=='IO' || letter=='io')
	cout<<"Code numer is 107"<<endl;
		else if(letter=='EA' || letter=='ea')
	cout<<"Code numer is 109"<<endl;
	
	else
		cout<<"This letter does not exists"<<endl;

}
int main() 
	{
	system("color 2");
	cout<<"Hello \n"<<endl;
	start:
	cout<<"1 - Do you want to decode value to letter? "<<endl;
	cout<<"2 - Do you want to code letter into value? "<<endl;
	cout<<"3 - Do you want to exit ?"<<endl;
	int chose;
	cin>>chose;
	switch(chose)
	{
		case 1:
		
		int value[1000];
		while(value[1000]!=0)
		{
		
		cin>>value[1000];
		
		if(value[1000]==2)
		cout<<"F"<<endl;
		else if(value[1000]==3)
		cout<<"U"<<endl;
		else if(value[1000]==5)
		cout<<"TH"<<endl;
		else if(value[1000]==7)
		cout<<"O"<<endl;
		else if(value[1000]==11)
		cout<<"R"<<endl;
		else if(value[1000]==13)
		cout<<"C/K"<<endl;
		else if(value[1000]==17)
		cout<<"G"<<endl;
		else if(value[1000]==19)
		cout<<"W"<<endl;
		else if(value[1000]==23)
		cout<<"H"<<endl;
		else if(value[1000]==29)
		cout<<"N"<<endl;
		else if(value[1000]==31)
		cout<<"I"<<endl;
		else if(value[1000]==37)
		cout<<"J"<<endl;
		else if(value[1000]==41)
		cout<<"EO"<<endl;
		else if(value[1000]==43)
		cout<<"P"<<endl;
		else if(value[1000]==47)
		cout<<"X"<<endl;
		else if(value[1000]==53)
		cout<<"S/Z"<<endl;
		else if(value[1000]==59)
		cout<<"T"<<endl;
		else if(value[1000]==61)
		cout<<"B"<<endl;
		else if(value[1000]==67)
		cout<<"E"<<endl;
		else if(value[1000]==71)
		cout<<"M"<<endl;
		else if(value[1000]==73)
		cout<<"L"<<endl;
		else if(value[1000]==79)
		cout<<"NG/ING"<<endl;
		else if(value[1000]==83)
		cout<<"OE"<<endl;
		else if(value[1000]==89)
		cout<<"D"<<endl;
		else if(value[1000]==97)
		cout<<"A"<<endl;
		else if(value[1000]==101)
		cout<<"AE"<<endl;
		else if(value[1000]==103)
		cout<<"Y"<<endl;
		else if(value[1000]==107)
		cout<<"IA/IO"<<endl;
		else if(value[1000]==109)
		cout<<"EA"<<endl;
		else
		cout<<"This value does not exists"<<endl;
		goto start;
		}
		break;
		case 2:
			second();
			goto start;
			break;
		case 3:
			break;
	}
	
	
	
	
	return 0;
}
 
5

Wygląda słabo.

  1. goto? zamień na pętlę
  2. musi być tyle ifów? tam nie ma żadnej reguły w tym algorytmie? (pytam bo nie znam)
0

No własnie nie tam żadnej reguły :/
A goto zrobiłem z lenistwa :D

0

@noscope skoro to jest szyfr to musi być jakaś reguła. Na tym właśnie polegają szyfry.

1 użytkowników online, w tym zalogowanych: 0, gości: 1