広島大学じゃんけん
サークル

第1回関数じゃんけん大会開催!

とくめい

とくめいです

皆さん関数じゃんけんはご存知でしょうか

Twitterを見てくれている方ならわかると思いますが、
名前の通り関数を作ってじゃんけんをしようというものです

そしてタイトルにもある通り

第1回関数じゃんけん大会をやります!

プログラミングの知識がないとダメなんてことはありません
数式だけでも構いません

だれでも参加できるので、よかったら応募してみてください!
団体での参加もOKです!

応募方法は下のほうに乗せておくので、ルールを確認してから関数を送ってください

関数じゃんけんのルール

C言語に触れたことない人や自信のない人もどうか目を通してください
わからないとこは飛ばしてください





・C言語を使用

・0から1づつ増える整数n, 現在の勝利数w(どちらもunsigned long int型)を引数に取り、返り値が0, 1, 2のいずれかとなる関数を作成

・0はグー、1はチョキ、2はパーとして扱う

・関数の名前はpとして作成(対戦時はこちら側で別のものに書き換える p内で呼び出した関数pも書き換え対象)

・ ヘッダファイルはstdio.h, math.hを使用する

・n=0のとき(最初)は0(グー)を返さなければならない(ifなどを使ってもOK)

・擬似乱数の使用は禁止

・相手の手の情報の使用は禁止(勝利数は可)

・マシンの破壊、不具合発生を目的としたコードを含んでいると判断された場合は失格

・勝利数が先に10000に達した方の勝利

・nが1000000に達した時点で勝者が決定していない場合は引き分け
 勝敗を決めなければならない場合は事前に決めておいた手で代理じゃんけんを行う(詳しくは応募方法へ)

上記のルールを自分の関数が満たすかテストしてから送るようにしてください(一応こちらでチェックします 多少の間違いであれば修正もします)

↓簡単なものではありますが、サンプルです


int p(unsigned long int n, unsigned long int w){
    if(w < 500){
        return (n * (n + 2)) % 3
    }
    else{
        return n % 3;
    }
}
            

上のルールがわからなかった人へ

関数とは要するにf(x)みたいなやつです
今回で言えばp(n)ですね

nは0から始まって1づつ増えていく整数です

p(n)=0でグー、1でチョキ、2がパーを表します

そのp(n)を作って戦わせるのが関数じゃんけんです

p(n)は0,1,2のいずれかでないといけませんが、最終的に3で割った余りを出すようにするので大丈夫です

整数にならなくても小数点以下は切り捨てるので問題ありません

しかし、負の値になってしまうとどうしようもなくなるので注意してください

そしてもう一つ
aのb乗はa^bとしてください

√(ルート)とかは変換で出てきますが、これはどうしようもないので・・・

n+1の3乗とかしたいときは
(n+1)^3
という風にまとまりは()で閉じるようにしてください

例を載せておきます

例1.p(n)=2n+5
例2.p(n)=(5n+2)^(n+1)
例3.p(n)=√((n+3)×n)+5n

3で割ったあまりを出したりコードに書き換えたりするのはこちらでやります

応募方法

以下のようにメールを送ってください

メールアドレス:jankenhu@gmail.com
件名:第1回関数じゃんけん大会
本文:
(Cのコードを書ける人)
1行目に名前(ニックネーム可)または団体名と読み方、2行目に引き分けになった時用のじゃんけんの手を0,1,2で50個記入し、コードをテキストファイル(.txt, .c)にして添付(名前はなんでもOK)
(数式で参加する人)
1行目に名前(ニックネーム可)または団体名と読み方、2行目には上の例のように数式、3行目には引き分けになった時用のじゃんけんの手を0,1,2で50個記入

返信する場合があるので、jankenhu@gmail.comからのメールが届くようにしておいてください

応募期間は5/6(月)23:59まで
ゴールデンウィーク中が期間となります

質問などはTwitter問い合わせページへメッセージを送ってください



少人数でやるのはさみしいので、どうか参加してください
よろしくお願いします

優勝すれば何かいいことがあるかも



Tweet

次の記事

関数じゃんけんって…

前の記事

100連戦