জাভাস্ক্রিপ্ট - 6 টি ভাষা - উচ্চ নির্ভুলতা
বর্তমান ভাষা: জাভা, সি, এইচটিএমএল, পিএইচপি, সিএসএস, জাভাস্ক্রিপ্ট
আমি এই নীতিটি নিয়ে কাজ করি যে যখনই কোনও ইনপুট কোনও মানদণ্ডকে সন্তুষ্ট করে, তখন তাকে একটি স্কোর দেওয়া হয়, এবং সেই স্কোরের ভিত্তিতে ফলাফল দেওয়া হয়।
বৈশিষ্ট্য:
- কোনও অন্তর্নির্মিত ফাংশন নেই যা ব্যবহার করা ভাষার ধরন নির্ধারণ করে।
x
কোনও কীওয়ার্ড দেখার সময় ইনপুট পাঠ্যটিকে ভাষা হিসাবে সরাসরি ঘোষণা করা হয় না ।
- অন্যান্য সম্ভাব্য ভাষাও পরামর্শ দেয়।
আপনার যদি মনে হয় যে আপনার প্রোগ্রামগুলির কোনও ইনপুট (যা আমি এখনও অবধি করেছি) ধরা পড়ে না বা অবৈধ ফলাফল পায় তবে দয়া করে প্রতিবেদন করুন এবং আমি সেগুলি ঠিক করতে পেরে খুশি হব।
নমুনা ইনপুট 1:
class A{public static void main(String[]a){System.out.println("<?php");}}
নমুনা আউটপুট 1:
My program thinks you have :
Java with a chance of 100%
Php with a chance of 25%
----------------
ব্যাখ্যা:
এটি প্রোগ্রামটি ব্যর্থ হওয়া উচিত ছিল এবং আমি মুদ্রণ করতাম PHP
, তবে যেহেতু আমার প্রোগ্রামটি স্কোরের ভিত্তিতে কাজ করে, কিছুই ব্যর্থ হয় না এবং এটি সহজেই জাভা সনাক্ত করে প্রথম স্থান এবং তার পরে অন্যান্য সম্ভাব্য ফলাফল।
নমুনা ইনপুট 2:
class A{public static void main(String[]a){System.out.println("HelloWorld!");}}
নমুনা আউটপুট 2:
Java
----------------
নমুনা ইনপুট 3:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
নমুনা আউটপুট 3:
Language not catched! Sorry.
----------------
কোড:
// Helper functions
String.prototype.m = function(condition){
return this.match(condition);
};
String.prototype.capitalize = function(){
return this[0].toUpperCase() + this.substr(1);
};
function getFuncName(func){
var temp = func.toString();
temp = temp.substr( "function ".length);
temp = temp.substr( 0, temp.indexOf("("));
return temp.capitalize();
}
// Get input
var lang_input = prompt("Enter programming language");
// Max score of 4 per lang
function java(input){
var score = 0;
score += input.m(/class[\s\n]+[\w$]+[\s\n]*\{/) ? 1 : 0;
score += input.m(/public[\s\n]+static[\s\n]+void[\s\n]+main[\s\n]*/) ? 1 : 0;
score += input.m(/\}[\s\n]*\}[\s\n]*$/) ? 1 : 0;
score += input.m(/System[\s\n]*[.][\s\n]*out/) ? 1 : 0;
return score;
}
function c(input){
var score = 0;
// if java has passsed
if(checks[0][1] >= 3)return 0;
score += input.m(/^#include\s+<[\w.]+>\s*\n/) ? 1 : 0;
score += input.m(/main[\s\n]*\([\s\n]*(void)?[\s\n]*\)[\s\n]*\{/) ? 1 : 0;
score += input.m(/printf[\s\n]+\(/) || input.m(/%d/) ? 1 : 0;
score += input.m(/#include\s+<[\w.]+>\s*\n/) || input.m(/(%c|%f|%s)/) ? 1 : 0;
return score;
}
function PHP(input){
var score = 0;
score += input.m(/<\?php/) ? 1 : 0;
score += input.m(/\?>/) ? 1 : 0;
score += input.m(/echo/) ? 1 : 0;
score += input.m(/$[\w]+\s*=\s*/) ? 1 : 0;
return score;
}
function HTML(input){
var score = 0;
// if php has passed
if(checks[2][1] >= 2) return 0;
score += input.m(/<!DOCTYPE ["' \w:\/\/]*>/) ? 1 : 0;
score += input.m(/<html>/) && input.m(/<\/html>/) ? 1 : 0;
score += input.m(/<body>/) && input.m(/<\/body/) ? 1 : 0;
score += input.m(/<head>/) && input.m(/<\/head>/) ? 1 : 0;
return score;
}
function javascript(input){
var score = 0;
score += input.m(/console[\s\n]*[.][\s\n]*log[\s\n*]\(/) ? 1 : 0;
score += input.m(/[\s\n]*var[\s\n]+/) ? 1 : 0;
score += input.m(/[\s\n]*function[\s\n]+[\w]+[\s\n]+\(/) ? 1 : 0;
score += input.m(/document[\s\n]*[.]/) ||
( input.m(/\/\*/) && input.m(/\*\//) ) ||
( input.m(/\/\/.*\n/) )? 1 : 0;
return score;
}
function CSS(input){
var score = 0;
score += input.m(/[a-zA-Z]+[\s\n]*\{[\w\n]*[a-zA-Z\-]+[\s\n]*:/) ? 1 : 0;
// since color is more common, I give it a separate place
score += input.m(/color/) ? 1 : 0;
score += input.m(/height/) || input.m(/width/) ? 1 : 0;
score += input.m(/#[a-zA-Z]+[\s\n]*\{[\w\n]*[a-zA-Z\-]+[\s\n]*:/) ||
input.m(/[.][a-zA-Z]+[\s\n]*\{[\w\n]*[a-zA-Z\-]+[\s\n]*:/) ||
( input.m(/\/\*/) && input.m(/\*\//) ) ? 1 : 0;
return score;
}
// [Langs to check, scores]
var checks = [[java, 0], [c, 0], [PHP, 0], [HTML, 0], [javascript, 0], [CSS, 0]];
//Their scores
// Assign scores
for(var i = 0; i < checks.length; i++){
var func = checks[i][0];
checks[i][1] = func(lang_input);
}
// Sort the scores
checks.sort(function(a,b){ return b[1] - a[1]; });
var all_zero = true;
function check_all_zero(index){
if(checks[index][1] > 0){ all_zero = false; return 0; } // someone is above zero
// check next index only if it defined, else return zero
if(checks[index + 1])
check_all_zero(index + 1);
}
check_all_zero(0);
if(all_zero){
console.log("Language not catched! Sorry.");
}else {
var new_arr = []; // temp
checks.map(function(value, index){
if(value[1] > 0){
var temp = [getFuncName(value[0]), value[1]];
new_arr.push(temp);
}
});
checks = new_arr.slice(0); // array copy, because of mutation
if(checks.length === 1){
console.log(checks[0][0]);
}else{
console.log("My program thinks you have :");
checks.map(function(value){
var prob = (value[1]/4 * 100);
console.log(value[0] + " with a chance of " + prob + "%");
});
}
} // Main else block finish
console.log("----------------");
print("")
বিভিন্ন ভাষায় ব্যবহার করা যেতে পারে।