using System;
using System.Collections .Generic ;
namespace ConsoleApp1
{
public class Question
{
public Question( string p1, string p2, string p3, string p4, string a)
{
prompt1 = p1;
prompt2 = p2;
prompt3 = p3;
prompt4 = p4;
answer = a;
}
public override string ToString( )
{
return "a) " + prompt1 + "\n b) " + prompt2 + "\n c) " + prompt3 + "\n d) " + prompt4 + "\n " + answer + "\n " ;
}
private string prompt1;
private string prompt2;
private string prompt3;
private string prompt4;
private string answer;
}
class Program
{
static void Main( string[ ] args)
{
List< Question> l = new List< Question> ( ) ;
l.Add ( new Question( "q1prompt1" , "q1prompt2" , "q1prompt3" , "q1prompt4" , "q1answer" ) ) ;
l.Add ( new Question( "q2prompt1" , "q2prompt2" , "q2prompt3" , "q2prompt4" , "q2answer" ) ) ;
l.Add ( new Question( "q3prompt1" , "q3prompt2" , "q3prompt3" , "q3prompt4" , "q3answer" ) ) ;
l.Add ( new Question( "q4prompt1" , "q4prompt2" , "q4prompt3" , "q4prompt4" , "q4answer" ) ) ;
l.Add ( new Question( "q5prompt1" , "q5prompt2" , "q5prompt3" , "q5prompt4" , "q5answer" ) ) ;
l.Add ( new Question( "q6prompt1" , "q6prompt2" , "q6prompt3" , "q6prompt4" , "q6answer" ) ) ;
PrintList( l) ;
Console.WriteLine ( ) ;
Shuffle( l) ;
PrintList( l) ;
Console.WriteLine ( ) ;
}
private static Random rng = new Random( ) ;
public static void Shuffle< T> ( IList< T> list)
{
int n = list.Count ;
while ( n > 1 )
{
n--;
int k = rng.Next ( n + 1 ) ;
T value = list[ k] ;
list[ k] = list[ n] ;
list[ n] = value;
}
}
public static void PrintList< T> ( IList< T> list)
{
foreach( T el in list)
{
Console.WriteLine ( el.ToString ( ) ) ;
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCm5hbWVzcGFjZSBDb25zb2xlQXBwMQp7CiAgIHB1YmxpYyBjbGFzcyBRdWVzdGlvbgogICB7CiAgICAgIHB1YmxpYyBRdWVzdGlvbihzdHJpbmcgcDEsIHN0cmluZyBwMiwgc3RyaW5nIHAzLCBzdHJpbmcgcDQsIHN0cmluZyBhKQogICAgICB7CiAgICAgICAgIHByb21wdDEgPSBwMTsKICAgICAgICAgcHJvbXB0MiA9IHAyOwogICAgICAgICBwcm9tcHQzID0gcDM7CiAgICAgICAgIHByb21wdDQgPSBwNDsKICAgICAgICAgYW5zd2VyID0gYTsKICAgICAgfQoKICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBUb1N0cmluZygpCiAgICAgIHsKICAgICAgICAgcmV0dXJuICJhKSAiICsgcHJvbXB0MSArICJcbmIpICIgKyBwcm9tcHQyICsgIlxuYykgIiArIHByb21wdDMgKyAiXG5kKSAiICsgcHJvbXB0NCArICJcbiIgKyBhbnN3ZXIgKyAiXG4iOwogICAgICB9CgogICAgICBwcml2YXRlIHN0cmluZyBwcm9tcHQxOwogICAgICBwcml2YXRlIHN0cmluZyBwcm9tcHQyOwogICAgICBwcml2YXRlIHN0cmluZyBwcm9tcHQzOwogICAgICBwcml2YXRlIHN0cmluZyBwcm9tcHQ0OwogICAgICBwcml2YXRlIHN0cmluZyBhbnN3ZXI7CiAgIH0KCiAgICBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgewogICAgICAgICBMaXN0PFF1ZXN0aW9uPiBsID0gbmV3IExpc3Q8UXVlc3Rpb24+KCk7CiAgICAgICAgIGwuQWRkKG5ldyBRdWVzdGlvbigicTFwcm9tcHQxIiwgInExcHJvbXB0MiIsICJxMXByb21wdDMiLCAicTFwcm9tcHQ0IiwgInExYW5zd2VyIikpOwogICAgICAgICBsLkFkZChuZXcgUXVlc3Rpb24oInEycHJvbXB0MSIsICJxMnByb21wdDIiLCAicTJwcm9tcHQzIiwgInEycHJvbXB0NCIsICJxMmFuc3dlciIpKTsKICAgICAgICAgbC5BZGQobmV3IFF1ZXN0aW9uKCJxM3Byb21wdDEiLCAicTNwcm9tcHQyIiwgInEzcHJvbXB0MyIsICJxM3Byb21wdDQiLCAicTNhbnN3ZXIiKSk7CiAgICAgICAgIGwuQWRkKG5ldyBRdWVzdGlvbigicTRwcm9tcHQxIiwgInE0cHJvbXB0MiIsICJxNHByb21wdDMiLCAicTRwcm9tcHQ0IiwgInE0YW5zd2VyIikpOwogICAgICAgICBsLkFkZChuZXcgUXVlc3Rpb24oInE1cHJvbXB0MSIsICJxNXByb21wdDIiLCAicTVwcm9tcHQzIiwgInE1cHJvbXB0NCIsICJxNWFuc3dlciIpKTsKICAgICAgICAgbC5BZGQobmV3IFF1ZXN0aW9uKCJxNnByb21wdDEiLCAicTZwcm9tcHQyIiwgInE2cHJvbXB0MyIsICJxNnByb21wdDQiLCAicTZhbnN3ZXIiKSk7CgoKICAgICAgICAgUHJpbnRMaXN0KGwpOwogICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgICAgICBTaHVmZmxlKGwpOwogICAgICAgICBQcmludExpc3QobCk7CiAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICAgIH0KCiAgICAgIHByaXZhdGUgc3RhdGljIFJhbmRvbSBybmcgPSBuZXcgUmFuZG9tKCk7CgogICAgICBwdWJsaWMgc3RhdGljIHZvaWQgU2h1ZmZsZTxUPihJTGlzdDxUPiBsaXN0KQogICAgICB7CiAgICAgICAgIGludCBuID0gbGlzdC5Db3VudDsKICAgICAgICAgd2hpbGUgKG4gPiAxKQogICAgICAgICB7CiAgICAgICAgICAgIG4tLTsKICAgICAgICAgICAgaW50IGsgPSBybmcuTmV4dChuICsgMSk7CiAgICAgICAgICAgIFQgdmFsdWUgPSBsaXN0W2tdOwogICAgICAgICAgICBsaXN0W2tdID0gbGlzdFtuXTsKICAgICAgICAgICAgbGlzdFtuXSA9IHZhbHVlOwogICAgICAgICB9CiAgICAgIH0KCiAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBQcmludExpc3Q8VD4oSUxpc3Q8VD4gbGlzdCkKICAgICAgewogICAgICAgICBmb3JlYWNoKFQgZWwgaW4gbGlzdCkKICAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShlbC5Ub1N0cmluZygpKTsKICAgICAgICAgfQogICAgICB9CiAgIH0KfQo=