質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1523閲覧

javascriptでのオセロの石を反す機構について

-Soso-

総合スコア21

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/04/12 11:20

javascript

1const board_preference = {0: "+", 1: "○", 2: "●", 3: "■", 4: "+"}; 2let board= 3[[0,0,0,0,0,0,0,2], 4[0,0,0,0,0,0,0,2], 5[0,0,0,4,3,0,0,2], 6[0,0,4,1,2,3,0,2], 7[0,0,3,2,1,4,0,2], 8[0,0,0,3,4,0,0,2], 9[0,0,0,0,0,0,0,2], 10[1,2,2,2,2,2,2,3]]; 11//ban[index(縦)][index(横)] 12let board_evaluation= 13[[20,3,10,0,0,10,3,20], 14[3,3,0,0,0,0,3,3], 15[10,0,10,1,0,10,0,10], 16[0,0,1,0,0,0,0,0], 17[0,0,0,0,0,2,0,0], 18[10,0,10,0,1,10,0,10], 19[3,3,0,0,0,0,3,3], 20[20,3,10,0,0,10,3,20]]; 21 22const reset = () => {board=[[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x4,0x3,0x0,0x0,0x0],[0x0,0x0,0x4,0x1,0x2,0x3,0x0,0x0],[0x0,0x0,0x3,0x2,0x1,0x4,0x0,0x0],[0x0,0x0,0x0,0x3,0x4,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0],[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0]];} 23/*board_display()*/var _0x49ff=['am9pbg==','bWFw'];(function(_0xdedc5e,_0x49ff3a){var _0x4e46b9=function(_0x74ab93){while(--_0x74ab93){_0xdedc5e['push'](_0xdedc5e['shift']());}};_0x4e46b9(++_0x49ff3a);}(_0x49ff,0x9e));var _0x4e46=function(_0xdedc5e,_0x49ff3a){_0xdedc5e=_0xdedc5e-0x0;var _0x4e46b9=_0x49ff[_0xdedc5e];if(_0x4e46['Rkxcwg']===undefined){(function(){var _0x18c8e9=function(){var _0x1b3f3b;try{_0x1b3f3b=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x3a00b4){_0x1b3f3b=window;}return _0x1b3f3b;};var _0x360d09=_0x18c8e9();var _0x50fa33='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x360d09['atob']||(_0x360d09['atob']=function(_0x4b0b7d){var _0x49d38b=String(_0x4b0b7d)['replace'](/=+$/,'');var _0x545020='';for(var _0x27b1c7=0x0,_0x24e6cc,_0x14c530,_0x3d7291=0x0;_0x14c530=_0x49d38b['charAt'](_0x3d7291++);~_0x14c530&&(_0x24e6cc=_0x27b1c7%0x4?_0x24e6cc*0x40+_0x14c530:_0x14c530,_0x27b1c7++%0x4)?_0x545020+=String['fromCharCode'](0xff&_0x24e6cc>>(-0x2*_0x27b1c7&0x6)):0x0){_0x14c530=_0x50fa33['indexOf'](_0x14c530);}return _0x545020;});}());_0x4e46['BTpKSp']=function(_0x4fd43c){var _0x138871=atob(_0x4fd43c);var _0x2ba398=[];for(var _0x3b08aa=0x0,_0x286fb0=_0x138871['length'];_0x3b08aa<_0x286fb0;_0x3b08aa++){_0x2ba398+='%'+('00'+_0x138871['charCodeAt'](_0x3b08aa)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ba398);};_0x4e46['RFjWFU']={};_0x4e46['Rkxcwg']=!![];}var _0x74ab93=_0x4e46['RFjWFU'][_0xdedc5e];if(_0x74ab93===undefined){_0x4e46b9=_0x4e46['BTpKSp'](_0x4e46b9);_0x4e46['RFjWFU'][_0xdedc5e]=_0x4e46b9;}else{_0x4e46b9=_0x74ab93;}return _0x4e46b9;};function board_display(){var _0x49d38b=board['map'](_0x545020=>_0x545020[_0x4e46('0x1')](_0x27b1c7=>board_preference[_0x27b1c7])[_0x4e46('0x0')](''))[_0x4e46('0x0')]('\x0a');return _0x49d38b;} 24 25const user_turn = (user_x, user_y) => { 26 if (board[user_x][user_y] == 3) { 27 board[user_x][user_y] = 1; 28 let user_turn_flag = true; 29 let user_turn_count = 0; 30 while (user_turn_flag) { 31 if (user_x == 7 ) {break;} 32 user_turn_count++; 33 if (user_turn_count + user_x == 7) {break;} 34 if (board[user_x + user_turn_count][user_y] == 2) { 35 changehost(user_x + user_turn_count,user_y,1); 36 } 37 if (user_turn_count + user_x == 7) { 38 user_turn_flag = false; 39 } 40 } 41 user_turn_flag = true; 42 user_turn_count = 0; 43 while (user_turn_flag) { 44 if (user_x == 0) {break;} 45 user_turn_count++; 46 if (board[user_x - user_turn_count][user_y] == 2) { 47 changehost(user_x - user_turn_count,user_y,1); 48 } 49 if (user_turn_count - user_x == 0) { 50 user_turn_flag = false; 51 } 52 } 53 user_turn_flag = true; 54 user_turn_count = 0; 55 while (user_turn_flag) { 56 if (user_y == 7) {break;} 57 user_turn_count++; 58 if (board[user_x][user_y + user_turn_count] == 2) { 59 changehost(user_x,user_y + user_turn_count,1); 60 } 61 if (user_turn_count + user_y == 7) { 62 user_turn_flag = false; 63 } 64 } 65 user_turn_flag = true; 66 user_turn_count = 0; 67 while (user_turn_flag) { 68 if (user_y == 0) {break;} 69 user_turn_count++; 70 if (board[user_x][user_y - user_turn_count] == 2) { 71 changehost(user_x,user_y - user_turn_count,1); 72 } 73 if (user_turn_count - user_y == 0) { 74 user_turn_flag = false; 75 } 76 } 77 } 78}; 79 80const changehost = (host_selection_vertical, host_selection_horizontal,Human) => { 81 let host_x = host_selection_vertical; 82 let host_y = host_selection_horizontal; 83 board[host_x][host_y] = Human; 84} 85user_turn(7,7); 86console.log(board_display());

実装したい事

オセロの石を反す物は出来ています
しかしこれでは

log

1+ + + + + + + ● 2+ + + + + + + ● 3+ + + + + + + ● 4+ + + ○ ● + + ● 5+ + + ● ○ + + ● 6+ + + + + + + ● 7+ + + + + + + ● 8+ + + + + + + ○

上記のコードだとこれでも全てひっくり返ってしまいます
なのでひっくりかえせる

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問