普段の生活の中から大好きなパソコンや植物のことなどを書いています 最近ではyoutubeにも動画をアップしていますのでよかったらみてくださいませm(_ _)m https://www.youtube.com/user/xtoran1
いきあたりばったりでプログラミング 少しずつで章
そしてモンスターと遭遇(名前はまだない)
ようやく戦闘準備の準備ができようとしています
毎日ちょっとずつしかできませんが締切があるわけでもなし
まったりと楽しんで進めていきます
コードはツッコミどころ満載(自分ではツッコむところすらもわかりません><)
がひとまずはエラーがでなければいいなぁなんておもっているところです
ゲームは只今サイコロをふってイベント or mobを表示したところまで
やってきました
mobのところは歩数によって出現モンスターを振り分けたいななんておもっているので
moblistをLV別に分けていけばいいのかなぁと考えているところです
密かにmob出現のイラストカットインや音とか出来たら.....
いいのにな......とか....
これはもう少しあとで考えることにします
今日はベタ貼り自分用ウエイト無しバージョンです
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import random
from time import sleep
class Syokki:
def __init__(self,name,num,val,hp,maxdam,mindam,gold):
self.name = name
self.num = num
self.val = val
self.hp = hp
self.maxdam = maxdam
self.mindam = mindam
self.gold = gold
##################################################################################################
#name=mobname num=mobnumber val=討伐経験値 hp=moblifepoint maxdam=mobmaxdamage mindam=mobmindamage #
#gold=会得ゴールド name num val hp max min gold #
##################################################################################################
ryoutenabe = Syokki("両手ナベンナー",1,3,5,1,3,3)
denkinabe = Syokki("エレキプレードン",2,3,7,1,3,4)
furaipandai = Syokki("フライパンタロン",3,6,6,2,5,2)
furaipancyu = Syokki("フライパンダ",4,7,8,3,7,3)
furaipansyo = Syokki("フライパンツァー",5,12,11,4,8,10)
furaipanfuta = Syokki("フライトン",6,14,14,8,12,7)
nabefuta = Syokki("ナベトン",7,20,16,4,14,18)
katatenabedai =Syokki("片手ナベンナー",8,20,18,10,15,18)
katatenabecyu = Syokki("片手ナベンナー哀",9,25,24,8,16,1)
katatenabesyo = Syokki("片手ナベンナー喜",10,20,26,8,16,50)
donburicyu = Syokki("ドンブリャー青",11,30,22,10,13,15)
donburisyo = Syokki("ドンブリャー赤",12,30,22,11,14,16)
ball = Syokki("タマボール",13,200,200,1,200,200)
zaru = Syokki("サルザルモンキー",14,38,40,25,30,37)
saradai = Syokki("ソーサラ魔",15,36,50,30,35,30)
saracyu = Syokki("ソーサラ天",16,36,60,30,38,32)
sarasyo = Syokki("ソーサラ破",17,36,65,28,40,35)
houcyou = Syokki ("ホー蝶",18,40,47,40,45,32)
manaita = Syokki("マナボード",19,50,52,30,50,32)
hashietc = Syokki("スプーン",20,50,65,45,55,30)
syamoji = Syokki("シャモ人",21,120,200,100,150,30)
pira = Syokki("ピーラーヒーラー",22,150,300,100,300,100)
shinktarai = Syokki("シンクタライオン",23,180,400,300,500,100)
akikan = Syokki("秋カンナ",24,190,600,500,800,150)
pura = Syokki("プラゴミン",25,50,120,200,300,100)
mu = Syokki("エクストラン",0,2000,2000,1000,5000,5000000)
syokkilist = [ "終了",ryoutenabe.name,denkinabe.name,furaipandai.name,
furaipancyu.name,furaipansyo.name,furaipanfuta.name,nabefuta.name,
katatenabedai.name,katatenabecyu.name,katatenabesyo.name,donburicyu.name,
donburisyo.name,ball.name,zaru.name,saradai.name,saracyu.name,
sarasyo.name,houcyou.name,manaita.name,hashietc.name,syamoji.name,
pira.name,shinktarai.name,akikan.name,pura.name,mu.name]
syokkivallist= ["no",ryoutenabe.val,denkinabe.val,furaipandai.val,
furaipancyu.val,furaipansyo.val,furaipanfuta.val,nabefuta.val,
katatenabedai.val,katatenabecyu.val,katatenabesyo.val,donburicyu.val,
donburisyo.val,ball.val,zaru.val,saradai.val,saracyu.val,
sarasyo.val,houcyou.val,manaita.val,hashietc.val,syamoji.val,
pira.val,shinktarai.val,akikan.val,pura.val,mu.val]
print("もう何日ここをさまよっただろう....")
#sleep(2)
print("・・・・・")
#sleep(2)
for i in range(3):
print("えええ.....まわりを見渡すとそこはただ広い平原だった........")
#sleep(2)
print(" ")
print(" ")
print("勇者の名前を入れてください")
yusya_name = input()
print(" ")
#sleep(2)
print("私の名前は "+ yusya_name+ " 。")
#sleep(2)
print("しかしまわりの状況がわからないのは不安である....")
#sleep(2)
print("....しばらく歩く事にしよう")
for i in range(3):
print(" ")
#sleep(3)
print("******************************")
print("******キッチンクエスト(仮)****** by xtoran")
print("******************************")
for i in range(3):
print(" ")
#sleep(2)
print(yusya_name+ "のステータスを抽選中............")
#sleep(3)
class yusya_fastste:
def __init__(self,num,val,hp,gold,mindam,maxdam):
self.num = num
self.val = val
self.hp = hp
self.gold = gold
self.mindam = mindam
self.maxdam = maxdam
yusya1 = yusya_fastste(1,0,5,200,1,10)
yusya2 = yusya_fastste(2,0,6,180,1,9)
yusya3 = yusya_fastste(3,0,7,150,1,8)
yusya4 = yusya_fastste(4,0,8,80,1,7)
yusya5 = yusya_fastste(5,0,9,70,1,6)
yusya6 = yusya_fastste(6,0,10,60,1,5)
yusya7 = yusya_fastste(7,0,11,50,1,4)
yusya8 =yusya_fastste(8,0,12,40,1,3)
yusya9 =yusya_fastste(9,0,13,30,1,2)
yusya10 = yusya_fastste(10,0,14,20,1,1)
yusya_hplist = [yusya1.hp,yusya2.hp,yusya3.hp,yusya4.hp,yusya5.hp,
yusya6.hp,yusya7.hp,yusya8.hp,yusya9.hp,yusya10.hp]
yusya_goldlist = [yusya1.gold,yusya2.gold,yusya3.gold,yusya4.gold,
yusya5.gold,yusya6.gold,yusya7.gold,yusya8.gold,yusya9.gold,yusya10.gold]
yusya_maxdamlist = [yusya1.maxdam,yusya2.maxdam,yusya3.maxdam,yusya4.maxdam,
yusya5.maxdam,yusya6.maxdam,yusya7.maxdam,yusya8.maxdam,
yusya9.maxdam,yusya10.maxdam]
yusya_mindamlist = [yusya1.mindam,yusya2.mindam,yusya3.mindam,yusya4.mindam,
yusya5.mindam,yusya6.mindam,yusya7.mindam,yusya8.mindam,
yusya9.mindam,yusya10.mindam]
nameval = len(yusya_name)
for i in range(nameval):
steval = random.randint(1,10)
my_hp = yusya_hplist[steval-1]
my_gold = yusya_goldlist[steval-1]
my_mindam = yusya_mindamlist[steval-1]
my_maxdam = yusya_maxdamlist[steval-1]
my_lv = 1
my_val =0
print(" ")
print(yusya_name+"のステータスは")
print("(LV):"+str(my_lv)+ "(経験値):"+str(my_val)+ " "+
"(HP):" + str(my_hp) + " "+ "(gold):"+ str(my_gold) +" "+ "(mindam):"
+str(my_mindam)+" "+ "(maxdam):"+ str(my_maxdam)+"になりました。")
saikorolist = ["足が痛い","歌をうたってみた","道草を食べた..すぐにはきだした。",
"何も考えられないので空をみあげた。","川をみつけた","石をなげてみた","険しい山だ",
"屈伸運動をした","傾いた像がある","火をおこしたい","花のようなものが咲いている",
"コンビニないかな...","遠くでガンッとゆう音がした","大木がある","苦笑してみた",
"なにか獣臭い","遠くで何かが光った","大声を出してみた","ちかくでガサガサ音がする",
"ちょっと寒い","背中がかゆい","知らない間に足のツメが剥がれている","ガスの元栓占めたかなぁ",
"涙がでてきた",]
#print(len(saikorolist))
#sleep(1)
def startchoice():
print("なにをしますか?")
print("1:ゲームを始める")
start_sentaku = input(":")
if start_sentaku == 1:
print("ゲームを初めます")
sugoroku()
startchoice()
def sugoroku():
print("サイコロを振りますか?")
sai = input("y or n :")
if sai == "y":
global saikoro
global yusya_hosu
yusya_hosu = int(0)
saikoro = random.randint(1,6)
a = yusya_hosu+int(saikoro)
print("サイコロの目は"+ str(saikoro)+ "です")
print("歩数は"+str(a) +"です")
elif sai == "n":
startchoice()
sugoroku()
else:
print("y or nだよ")
sugoroku()
sugoroku()
def eventlot():
global evelot
for i in range(saikoro):
evelot = random.randint(1,1000)
if evelot <= 400:
print("mob"+"があらわれた")
else:
print(random.choice(saikorolist))
eventlot()
input()
どっか散歩にいってこよ....
いきあたりばったりでプログラミング 混沌de章
こんなはずでは...
当初 考えていたのは自分でつけた名前の敵が出る。倒す。
ぐらいの数行で終わる感じにしたかったのですが...
こんなのあったらちょっとおもしろいかも.....
なんてことをちょこちょこ考えていたら
170行を超えてきてしまっていました^^;
自分的にはこれからが面白いところです(しかし難しいのでできるかどうかは....)
当初 エリア別で選択してMOBの強さを分けようとおもっていたのですが
サイコロを振って歩数にプラスしてゆく方法になった(した)ので
歩数がすすめば進むほど強い敵になるように設定してゆけばよいのかな
なんておもっています
ターミナルで進む物語ですが一生懸命に打ち込んだテキストの表示が早すぎで
趣に欠けるという事もあり調べてみると
from time import sleep
timeモジュールの中にsleepというのがありこれでウエイトを
付けることにしました
なんかいい感じになってきたんじゃないか....
今の所サイコロの目を出す所までできているのでこれを
なんとかしてコメント or 戦闘 に振り分けたいなぁ
なんておもっています あとはメインストーリーを考えて....
ってどうやってだすんだろ....
いきあたりばったりでプログラミング 勇者ノ章
勇者降臨
今日はとりあえず勇者のステータスを作ってみました
名前によって変化するようにしてみました
簡単なRPG ですのでHP.マックスダメージ.マインダメージ
位でいこうとおもいます
ああ
いま 重大な事に気づきました orz
このゲームHPを戻すすべを考えていません
.....むむむ ヒールか薬草を実装しなければならないかもしれません
いや もしくは戦いが起こるたびに....
いや やはり自分で戻したい
今の所ゴールドは飾りです
ゴールドなど持っていても役に立たない世界なのです
捨てることもできませんのでどんどん貯まっていくのです
とりあえずステータス表示までを.....
キッチンクエスト(仮)できるかなぁ
mobのパラメータをいれてみた
仕事が終わったので...
パラメーターをそそくさとつくってみました
えいっ
class Syokki:
def __init__(self,name,num,val,hp,maxdam,mindam,gold):
self.name = name
self.num = num
self.val = val
self.hp = hp
self.maxdam = maxdam
self.mindam = mindam
self.gold = gold
##################################################################################################
#name=mobname num=mobnumber val=討伐経験値 hp=moblifepoint maxdam=mobmaxdamage mindam=mobmindamage #
#gold=会得ゴールド name num val hp max min gold #
##################################################################################################
ryoutenabe = Syokki("両手ナベンナー",1,3,5,1,1,3)
denkinabe = Syokki("エレキプレードン",2,3,7,1,3,4)
furaipandai = Syokki("フライパンタロン",3,6,6,2,5,2)
furaipancyu = Syokki("フライパンダ",4,7,8,3,7,3)
furaipansyo = Syokki("フライパンツァー",5,12,11,4,8,10)
furaipanfuta = Syokki("フライトン",6,14,14,8,12,7)
nabefuta = Syokki("ナベトン",7,20,16,4,14,18)
katatenabedai =Syokki("片手ナベンナー",8,20,18,10,15,18)
katatenabecyu = Syokki("片手ナベンナー哀",9,25,24,8,16,1)
katatenabesyo = Syokki("片手ナベンナー喜",10,20,26,8,16,50)
donburicyu = Syokki("ドンブリャー青",11,30,22,10,13,15)
donburisyo = Syokki("ドンブリャー赤",12,30,22,11,14,16)
ball = Syokki("タマボール",13,200,200,1,200,200)
zaru = Syokki("サルザルモンキー",14,38,40,25,30,37)
saradai = Syokki("ソーサラ魔",15,36,50,30,35,30)
saracyu = Syokki("ソーサラ天",16,36,60,30,38,32)
sarasyo = Syokki("ソーサラ破",17,36,65,28,40,35)
houcyou = Syokki ("ホー蝶",18,40,47,40,45,32)
manaita = Syokki("マナボード",19,50,52,30,50,32)
hashietc = Syokki("スプーン",20,50,65,45,55,30)
syamoji = Syokki("シャモ人",21,120,200,100,150,30)
pira = Syokki("ピーラーヒーラー",22,150,300,100,300,100)
shinktarai = Syokki("シンクタライオン",23,180,400,300,500,100)
akikan = Syokki("秋カンナ",24,190,600,500,800,150)
pura = Syokki("プラゴミン",25,50,120,200,300,100)
mu = Syokki("エクストラン",0,2000,2000,1000,5000,5000000)
このしたは食器をあらうプログラムと同じものですので
いま時点で使うと経験値順になって出力します^^
コメントは自分で見ながら入れるために書いたものですのでいらなくなったら
けそうかなぁ
上から弱い順になってます
タマボールを某メ◯ルスライムのようなレアmobに位置づけています
遭遇確率は設定しないつもり?ですので
LVが低いうちに出会ったら生きるか死ぬかの攻撃力を設定してみました^^
最低攻撃力1 最高攻撃力200と幅を持たせてあります
こちらのHPが200より低い場合ランダムな攻撃力でスリリングな戦闘を
楽しめるのではないかななんて思っています
自分のキャラもこっそりいれてしまっています
経験値2000 HP2000 最大攻撃力5000 討伐時ドロップゴールド5000000
という値を設定しました(自分大好きか?)
名前だけ見ると空き缶の秋カンナさんがマスコットガールに抜擢されそうです
ゴホン....妄想はこのへんにしてと...
まあ できるかどうか謎ですけどもう少し作っていきます
またまた構想
またまた構想
主人公と作ったmobをたたかわせるため少しパラメータ
をふやすことにしてみました
class Syokki:
def __init__(self,name,num,val,hp,maxdam,mindam,gold):
self.name = name
self.num = num
self.val = val
self.hp = hp
self.maxdam = maxdam
self.mindam = mindam
self.gold = gold
##################################################################################################
#name=mobname num=mobnumber val=討伐経験値 hp=moblifepoint maxdam=mobmaxdamage mindam=mobmindamage #
#gold=会得ゴールド name num val hp max min gold #
##################################################################################################
普段遊んでいるRPGの敵のパラメータを見るともっといろいろな値があるようですが
とりあえず敵のHPから此方が与えたLVに応じたランダムなダメージを引いて0にする
もしくは敵のランダムな(min~max)攻撃力で此方がやられる
ようにしてみてはどうだろうかと考えています
ゲームの流れも考えてみています
1 フィールド選択(戦闘レベル選択)→mobnumでグループ分け
2 サイコロですすむ
3 テキスト(暑い,寒い,オアシスを見つけた,転んだ,歌をうたってみた,...etc)
or 敵と遭遇(画像,音が出たら面白いだろうなぁ)
4 戦闘 勝利 or 敗北 経験値,gold会得LVUP
5 主人公ステータス表示
6 フィールド選択 or サイコロ
こんな感じのものが出来たらいいのになぁ
まぁいきあたりばったりですので技術的に難しいようならやめちゃいます
とりあえずmobのパラメータを考えてみよ〜っと
いきあたりばったりでプログラム作成 命名の章
名前を思うままに変えてみた
両手鍋 → 両手ナベンナー
電気プレート鍋 → エレキプレードン
フライパン(大) → フライパンタロン
フライパン(中) → フライパンダ
フライパン(小) → フライパンツァー
フライパン蓋 → フライトン
鍋蓋 → ナベトン
片手鍋(大) → 片手ナベンナー
片手鍋(中) → 片手ナベンナー哀
片手鍋(小) → 片手ナベンナー喜
どんぶり(中) → ドンブリャー青
どんぶり(小) → ドンブリャー赤
ボール → タマボール
ざる → サルザルモンキー
皿(大) → ソーサラ魔
皿(中) → ソーサラ天
皿(小) → ソーサラ破
包丁 → ホー蝶
まな板 → マナボード
スプーン等 → スプーン
しゃもじ → シャモ人
ピーラー → ピーラーヒーラー
シンクたらい → シンクタライオン
空き缶 → 秋カンナ
プラゴミ → プラゴミン
なまえを変えただけでゲームの雰囲気になってきました
名前をつけながらMOBの姿やプロフィールを考えると面白いですねぇ
とりあえず簡単なテキストゲームができたらいいかなぁ
登録:
投稿 (Atom)
久しぶりの更新です 備忘録 使っているarchlinuxにnvidiaのドライバを入れたところドライバがあっていなかったのかxが起動せずこれをアンインストールしたがその後xf86-video-nouveauが入っているにもかかわらずxが起動しなくなったのでarchwikiにて調...
-
スプライトの座標確認と ウインドウの端についたら反対側から出てくるようにしてみた #!/usr/bin/python # -*- coding: utf-8 -*- import pyglet from pyglet.window import mouse f...
-
前のブログでのアクセスが一番多かった記事です(文字のみ) またアップしてみました 記事が古いので現在の仕様とことなる場合があるかもしれません AUTHOR: xtoran TITLE: lubuntuファイルマネージャーを管理者権限でたちあげてみた ...
-
1〜6のキーが押されたときは魔法を発動 それ以外のキーが押されたらもう一度インプットを促す ようなものが出来たらいいなと思っていたのですが... 結局関数def jyumon()で処理をくくって elseの行で戻してやることにしました 数字のインプットには...