// Obtain an instance of JavaScript engine
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
try {
// Set value in the global name space of the engine
engine.put("name","Nashorn");
// Execute an hardcoded script
engine.eval("var value='Hello '+name+'!';");
// Get value
String value=(String)engine.get("value");
System.out.println(value);
} catch (ScriptException ex) {
// This is the generic Exception subclass for the Scripting API
ex.printStackTrace();
/********************
* じゃんけんゲーム *
********************/
/** グローバル変数 */
let isStart = false;
let cpuTe = 0;
let janAudi = new Audio("/audio/sample/Jan.m4a");
let kenAudi = new Audio("/audio/sample/Ken.m4a");
let ponAudi = new Audio("/audio/sample/Pon.m4a");
let aikoAudi = new Audio("/audio/sample/Aiko.m4a");
let showAudi = new Audio("/audio/sample/Show.m4a");
let isAiko = false;
let isPlay = false;
/** オーディオファイル選択 */
function selectAudi() {
// 音の再生中、じゃんけんルーレットが回っている最中は何もしない
if (isPlay || isStart) {
return;
// 再生ファイル(オブジェクト)を開放する
janAudi = null;
kenAudi = null;
ponAudi = null;
aikoAudi = null;
showAudi = null;
// 選択している先生の名前を取得する
var selectBox = document.getElementById("select");
var teacherName = selectBox.value;
// 再生ファイルを再度セットする
janAudi = new Audio("/audio/" + teacherName + "/Jan.m4a");
kenAudi = new Audio("/audio/" + teacherName + "/Ken.m4a");
ponAudi = new Audio("/audio/" + teacherName + "/Pon.m4a");
aikoAudi = new Audio("/audio/" + teacherName + "/Aiko.m4a");
showAudi = new Audio("/audio/" + teacherName + "/Show.m4a");
/** スタートボタン押下時の処理 */
async function start() {
if (isStart) {
return;
let resImg = document.getElementById("resultImage");
resImg.style.display = "none";
if (isAiko == false) {
janken();
isStart = true;
loopCpuTe();
/** CPUの手をルーレットのように回す */
async function loopCpuTe() {
let pathArray = ["/img/Goo.png", "/img/Choki.png", "/img/Pa.png"];
let img = document.getElementById("targetImage");
img.src = pathArray[0];
var count = 0;
while (isStart) {
cpuTe = count;
img.src = pathArray[cpuTe];
await sleep(150);
count++
if (count > 2) {
count = 0;
/** 各手を押下したときの処理 */
async function stop(te) {
if (isPlay) {
return;
janAudi.paused = true;
kenAudi.paused = true;
let result = 0;
setCpuTe();
if (te == cpuTe) {
isPlay = true;
setWords("あいこで!");
aikoAudi.play();
await sleep(1500);
isPlay = false;
isAiko = true;
start();
return;
pon();
isStart = false;
isAiko = false;
if ((te + 1) % 3 == cpuTe) {
result = 1; // YOU_WIN
if ((te + 2) % 3 == cpuTe) {
result = 2; // YOU_LOOSE
await sleep(500);
let img = document.getElementById("resultImage");
img.style.disoplay = "block";
var message = document.getElementById("words");
if (result == 1) {
message.innerText = "YOU WIN";
img.src = "/img/YouWin.png";
} else if (result == 2) {
message.innerText = "YOU LOOSE";
img.src = "/img/YouLoose.png";
img.style.display = "block";
/** 処理を一時停止する */
function sleep(mSec) {
return new Promise(resolve => setTimeout(resolve, mSec));
/** じゃんけんの再生 */
async function janken() {
isPlay = true;
setWords("じゃん!");
janAudi.play();
await sleep(800);
setWords("けん!");
kenAudi.play();
await sleep(300);
isPlay = false;
/** ポン!(ショ!)の再生 */
async function pon() {
isPlay = true;
if (isAiko) {
showAudi.play();
setWords("SHOW!");
} else {
ponAudi.play();
setWords("ポン!");
isPlay = false;
/** CPUの手を表示 */
function setCpuTe() {
let pathArray = ["/img/Goo.png", "/img/Choki.png", "/img/Pa.png"];
let img = document.getElementById("targetImage");
img.src = pathArray[cpuTe];
/** 文言の表示切り替え */
function setWords(moji) {
let tag = document.getElementById("words").innerText = moji;
こちらからJavaで扱うJavaScritptのチュートリアルが見れました。
でわでわ。。。
音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑)
Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。
Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。
SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。
takunoji の投稿をすべて表示