- 投稿日:2022年01月23日 22時45分28秒
- 更新日:2022年02月02日 08時09分25秒

依存度の検証方法がマジキチすぎる件
以前テレビで「お酒の依存度は薬物ぐらいやばい!」ってやっていました。
その時に数値でどのぐらいやばいのかを説明していて、タバコが1,200ぐらいだったかな。お酒は5,500ぐらいで、これが禁止薬物と同じぐらいみたいなことを言っていました。
私はそれを見ていた時「そもそもこの数値の意味がわからんから、数値だけ比べられてもよくわからんし」とか思っていると、出演している学者さんがちゃんと説明してくれました。
「これは特定回数ボタンを押すと対象の物資を提供するという実験で、最初は1回、次は2回、その次は3回と特定回数を増やしていくと何回目で押すのを止めるか。という実験で、猿(だったと思う)が何回目で諦めたかという数値です。」
なんて恐ろし実験だと思いました。
ちなみにこの実験をjavascriptで表すとこんな感じでしょうか。
class reliance{
name;
cost;
giveUp = false; // 最初はやめていない状態とする
/**
* 依存のスタート
* @param {物資名} _name
*/
constructor(_name){
this.name = _name;
this.cost = 0;
}
/**
* 依存しているものの名称を取得
* @returns
*/
Get_relianceName(){
return this.name;
}
/**
* 現在の依存度数を取得
* @returns
*/
Get_relianceCost(){
return this.cost;
}
/**
* 依存を辞めたかどうか
* @returns
*/
Get_giveUp(){
return this.giveUp;
}
/**
* 依存しているものを取得
* @returns
*/
Get_relianceObj(){
if(this.giveUp == true){
alert('私達はいつでもあなたを歓迎します。\r\nさあ、' + this.name + 'のある豊かな生活を謳歌しましょう。');
this.giveUp = false;
}
for(var idx = 0; idx < this.cost; idx++){
var result = window.confirm('あなたは'+ this.name + 'を欲していますか?');
if(result == false){
var resultConsent = window.confirm('ここで諦めると今後一生' + this.name + 'は手に入りません。\r\n本当によろしいでしょうか?');
if(resultConsent == true){
alert('あなたの' + this.name + 'に対する依存度は' + this.cost + 'です。');
this.giveUp = true;
return; // 止める決意をしました
}else{
var remainingCount = this.cost - idx;
alert('あと' + remainingCount + 'で' + this.name + 'が手に入ります。\r\n頑張ってください。');
}
}
}
// 前回より+1しておく
this.cost = ++this.cost;
alert('あなたは'+ this.name + 'を得ることが出来ました。');
}
}
クラスのインスタンスを作る時に依存度を図るものの名前を渡しています。こうすることで調べるものが変わっても大丈夫。
ユーザにくれ(Get_relianceObj())と言われれば特定回数OKボタンを押させる処理を行い、クリアすれば報酬を渡し次回の特定回数を設定して終了します。
途中で諦めるときは本当にいいのか脅し文句をつけて確認し(Yes/Noを反転させることも大事)、よければ処理を抜けます。
他に気をつけたところは特定回数をユーザに操作させないとか、名称を変えさせないとかです。
これやってみると地獄のような作業でした。猿の気持ちになってみたい方は是非スマホで試して見てください。キーボードだとEnter押し放しでもいけちゃうので。
それにしても、タバコはやめれたけどお酒はやめれないって普通なんだな。